Maemo Leste Wiki
leste_wiki
https://leste.maemo.org/Main_Page
MediaWiki 1.36.0
first-letter
Media
Special
Talk
User
User talk
Maemo Leste
Maemo Leste talk
File
File talk
MediaWiki
MediaWiki talk
Template
Template talk
Help
Help talk
Category
Category talk
Module
Module talk
Main Page
0
1
1
2018-04-05T22:10:53Z
MediaWiki default
0
wikitext
text/x-wiki
<strong>MediaWiki has been installed.</strong>
Consult the [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents User's Guide] for information on using the wiki software.
== Getting started ==
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Learn how to combat spam on your wiki]
5702e4d5fd9173246331a889294caf01a3ad3706
2
1
2018-04-05T23:26:04Z
Parazyd
1
Add our links.
wikitext
text/x-wiki
<strong>Welcome to the Maemo Leste Wiki.</strong>
Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io Maemo Leste Blog]
Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/ Maemo Leste Github]
b13acedb91e8a3e88c83edf632ca00340ddf7833
3
2
2018-04-05T23:26:47Z
Parazyd
1
wikitext
text/x-wiki
<strong>Welcome to the Maemo Leste Wiki.</strong>
Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io]
Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/]
d1e585e2533a4c33fd389d085d42c5c3551c9434
4
3
2018-04-05T23:27:53Z
Parazyd
1
Add bugtracker link.
wikitext
text/x-wiki
<strong>Welcome to the Maemo Leste Wiki.</strong>
Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io]
Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues]
Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/]
8eb4c4ff4d087b3f278be7b9eb8e0de3315ecb50
5
4
2018-04-05T23:45:09Z
Parazyd
1
Add IRC info.
wikitext
text/x-wiki
<strong>Welcome to the Maemo Leste Wiki.</strong>
Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io]
Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues]
Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/]
The central point of meeting and talking is IRC. You can find us on '''freenode''', channel '''#maemo-leste'''.
61183febce61838cc8cbf5228e5dc65ea216adaa
6
5
2018-04-06T09:04:07Z
Wizzup
4
wikitext
text/x-wiki
<strong>Welcome to the Maemo Leste Wiki.</strong>
Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io]
Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues]
Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/]
The central point of meeting and talking is IRC and this thread: https://talk.maemo.org/showthread.php?t=100192.
You can find us on '''freenode''', channel '''#maemo-leste'''.
7c0abc9068098183c504595aa1870e6fd2dfc586
9
6
2018-04-23T15:21:40Z
Halftux
7
added link to images
wikitext
text/x-wiki
<strong>Welcome to the Maemo Leste Wiki.</strong>
Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io]
Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues]
Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/]
Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/]
The central point of meeting and talking is IRC and this thread: https://talk.maemo.org/showthread.php?t=100192.
You can find us on '''freenode''', channel '''#maemo-leste'''.
8598df372c49f7d92a694f059026eecb7207cbe6
10
9
2018-04-27T17:04:32Z
Halftux
7
created basic structure
wikitext
text/x-wiki
= Description =
Welcome to the Maemo Leste website; Maemo Leste continues the legacy of Maemo. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more.
You can find us on '''freenode''', channel '''#maemo-leste'''.
= Supported Devices =
== N900 ==
[https://maemo-leste.github.io/pages/n900-status.html Status]
== N9/N950 ==
== Droid 4 ==
== Generic AMD64 ==
== Allwinner A20 LIME2 ==
== Allwinner A33 Tablet ==
== Raspberry 2 or 3 ==
= Development =
= Links =
<div>
*Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io]
*Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues]
*Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/]
*Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/]
The central point of meeting and talking is IRC and this thread: https://talk.maemo.org/showthread.php?t=100192.
</div>
6b5fcd33934a3153ddce8a0134d8d595d7b21ab2
11
10
2018-04-27T19:49:13Z
Halftux
7
structure, description update
wikitext
text/x-wiki
= Description =
Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more.
You can find us on '''freenode''', channel '''#maemo-leste'''.
Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels.
The project is not usable as a daily driver for your device, Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available - such as the N900.
So far we have set up devuan/debian repositories for our packages, with builds for armel, armhf and amd64. We have FOSS replacements for some closed maemo packages, further building on the Maemo community efforts to replace all closed bits by open software.
= Supported Devices =
== N900 ==
[https://maemo-leste.github.io/pages/n900-status.html Status]
=== Installation ===
''' U-Boot from sdcard '''
''' Boot through flasher from sdcard'''
=== Kernel development ===
Status: [https://elinux.org/N900 https://elinux.org/N900]
Sources: [https://github.com/pali/linux-n900 https://github.com/pali/linux-n900]
== N9/N950 ==
== Droid 4 ==
== Generic AMD64 ==
== Allwinner A20 LIME2 ==
== Allwinner A33 Tablet ==
== Raspberry 2 or 3 ==
= Development =
== Set up a VM ==
== Packages needed testing ==
== Packages needed building ==
== Packages needed porting ==
= Links =
<div>
*Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io]
*Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues]
*Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/]
*Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/]
The central point of meeting and talking is IRC and this thread: https://talk.maemo.org/showthread.php?t=100192.
</div>
229b83246bad10b39b9b79b4e960665c53718f52
12
11
2018-04-28T21:29:41Z
Derby
3
/* N9/N950 */
wikitext
text/x-wiki
= Description =
Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more.
You can find us on '''freenode''', channel '''#maemo-leste'''.
Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels.
The project is not usable as a daily driver for your device, Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available - such as the N900.
So far we have set up devuan/debian repositories for our packages, with builds for armel, armhf and amd64. We have FOSS replacements for some closed maemo packages, further building on the Maemo community efforts to replace all closed bits by open software.
= Supported Devices =
== N900 ==
[https://maemo-leste.github.io/pages/n900-status.html Status]
=== Installation ===
''' U-Boot from sdcard '''
''' Boot through flasher from sdcard'''
=== Kernel development ===
Status: [https://elinux.org/N900 https://elinux.org/N900]
Sources: [https://github.com/pali/linux-n900 https://github.com/pali/linux-n900]
== N9/N950 ==
[https://github.com/maemo-leste/bugtracker/issues/121 Status]
=== Installation ===
''' [http://www.swagman.org/juice/ubiboot/ubiboot-02/ ubiboot] from eMMC '''
=== Kernel development ===
Linux 4.16.4 plus patches ([https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n950-patches N950], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n9-patches N9])
N950 status: https://elinux.org/N950
N9 status: https://elinux.org/N9
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.16.y linux-stable 4.16.y]
== Droid 4 ==
== Generic AMD64 ==
== Allwinner A20 LIME2 ==
== Allwinner A33 Tablet ==
== Raspberry 2 or 3 ==
= Development =
== Set up a VM ==
== Packages needed testing ==
== Packages needed building ==
== Packages needed porting ==
= Links =
<div>
*Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io]
*Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues]
*Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/]
*Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/]
The central point of meeting and talking is IRC and this thread: https://talk.maemo.org/showthread.php?t=100192.
</div>
615fbccf97d48b6f600f6f37f8617d0d1cbb089a
13
12
2018-04-28T21:32:57Z
Derby
3
/* Kernel development */ Link to tree used for Leste kernel
wikitext
text/x-wiki
= Description =
Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more.
You can find us on '''freenode''', channel '''#maemo-leste'''.
Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels.
The project is not usable as a daily driver for your device, Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available - such as the N900.
So far we have set up devuan/debian repositories for our packages, with builds for armel, armhf and amd64. We have FOSS replacements for some closed maemo packages, further building on the Maemo community efforts to replace all closed bits by open software.
= Supported Devices =
== N900 ==
[https://maemo-leste.github.io/pages/n900-status.html Status]
=== Installation ===
''' U-Boot from sdcard '''
''' Boot through flasher from sdcard'''
=== Kernel development ===
Status: [https://elinux.org/N900 https://elinux.org/N900]
Sources: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip
== N9/N950 ==
[https://github.com/maemo-leste/bugtracker/issues/121 Status]
=== Installation ===
''' [http://www.swagman.org/juice/ubiboot/ubiboot-02/ ubiboot] from eMMC '''
=== Kernel development ===
Linux 4.16.4 plus patches ([https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n950-patches N950], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n9-patches N9])
N950 status: https://elinux.org/N950
N9 status: https://elinux.org/N9
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.16.y linux-stable 4.16.y]
== Droid 4 ==
== Generic AMD64 ==
== Allwinner A20 LIME2 ==
== Allwinner A33 Tablet ==
== Raspberry 2 or 3 ==
= Development =
== Set up a VM ==
== Packages needed testing ==
== Packages needed building ==
== Packages needed porting ==
= Links =
<div>
*Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io]
*Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues]
*Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/]
*Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/]
The central point of meeting and talking is IRC and this thread: https://talk.maemo.org/showthread.php?t=100192.
</div>
077163b37da73a7d628b10d460fc0624ac55bf97
14
13
2018-04-28T21:37:13Z
Derby
3
/* Kernel development */
wikitext
text/x-wiki
= Description =
Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more.
You can find us on '''freenode''', channel '''#maemo-leste'''.
Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels.
The project is not usable as a daily driver for your device, Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available - such as the N900.
So far we have set up devuan/debian repositories for our packages, with builds for armel, armhf and amd64. We have FOSS replacements for some closed maemo packages, further building on the Maemo community efforts to replace all closed bits by open software.
= Supported Devices =
== N900 ==
[https://maemo-leste.github.io/pages/n900-status.html Status]
=== Installation ===
''' U-Boot from sdcard '''
''' Boot through flasher from sdcard'''
=== Kernel development ===
Status: [https://elinux.org/N900 https://elinux.org/N900]
Sources: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip
== N9/N950 ==
[https://github.com/maemo-leste/bugtracker/issues/121 Status]
=== Installation ===
''' [http://www.swagman.org/juice/ubiboot/ubiboot-02/ ubiboot] from eMMC '''
=== Kernel development ===
Linux 4.16.4 plus patches
N950 status: https://elinux.org/N950
N9 status: https://elinux.org/N9
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.16.y linux-stable 4.16.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n950-patches N950 patches], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n9-patches N9 patches]
== Droid 4 ==
== Generic AMD64 ==
== Allwinner A20 LIME2 ==
== Allwinner A33 Tablet ==
== Raspberry 2 or 3 ==
= Development =
== Set up a VM ==
== Packages needed testing ==
== Packages needed building ==
== Packages needed porting ==
= Links =
<div>
*Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io]
*Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues]
*Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/]
*Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/]
The central point of meeting and talking is IRC and this thread: https://talk.maemo.org/showthread.php?t=100192.
</div>
d28c1d68502889af309643752d41f72459fbeb11
15
14
2018-04-28T21:56:51Z
Derby
3
/* Droid 4 */
wikitext
text/x-wiki
= Description =
Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more.
You can find us on '''freenode''', channel '''#maemo-leste'''.
Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels.
The project is not usable as a daily driver for your device, Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available - such as the N900.
So far we have set up devuan/debian repositories for our packages, with builds for armel, armhf and amd64. We have FOSS replacements for some closed maemo packages, further building on the Maemo community efforts to replace all closed bits by open software.
= Supported Devices =
== N900 ==
[https://maemo-leste.github.io/pages/n900-status.html Status]
=== Installation ===
''' U-Boot from sdcard '''
''' Boot through flasher from sdcard'''
=== Kernel development ===
Status: [https://elinux.org/N900 https://elinux.org/N900]
Sources: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip
== N9/N950 ==
[https://github.com/maemo-leste/bugtracker/issues/121 Status]
=== Installation ===
''' [http://www.swagman.org/juice/ubiboot/ubiboot-02/ ubiboot] from eMMC '''
=== Kernel development ===
Linux 4.16.4 plus patches
N950 status: https://elinux.org/N950
N9 status: https://elinux.org/N9
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.16.y linux-stable 4.16.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n950-patches N950 patches], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n9-patches N9 patches]
== Droid 4 ==
[https://maemo-leste.github.io/pages/droid-4-status.html Status]
=== Installation ===
''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card '''
(This is the boot method currently being used but we'll probably replace this with [https://github.com/tmlind/droid4-kexecboot droid4-kexecboot] to aid kernel updates via deb package)
=== Kernel development ===
Linux 4.14 plus patches
Status: http://elektranox.org/droid4/
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]
== Generic AMD64 ==
== Allwinner A20 LIME2 ==
== Allwinner A33 Tablet ==
== Raspberry 2 or 3 ==
= Development =
== Set up a VM ==
== Packages needed testing ==
== Packages needed building ==
== Packages needed porting ==
= Links =
<div>
*Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io]
*Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues]
*Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/]
*Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/]
The central point of meeting and talking is IRC and this thread: https://talk.maemo.org/showthread.php?t=100192.
</div>
abcfb03099eeeaf490bc46f6f59efe16a77e00fb
16
15
2018-04-29T16:00:16Z
JLIT99
8
/* Links */
wikitext
text/x-wiki
= Description =
Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more.
You can find us on '''freenode''', channel '''#maemo-leste'''.
Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels.
The project is not usable as a daily driver for your device, Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available - such as the N900.
So far we have set up devuan/debian repositories for our packages, with builds for armel, armhf and amd64. We have FOSS replacements for some closed maemo packages, further building on the Maemo community efforts to replace all closed bits by open software.
= Supported Devices =
== N900 ==
[https://maemo-leste.github.io/pages/n900-status.html Status]
=== Installation ===
''' U-Boot from sdcard '''
''' Boot through flasher from sdcard'''
=== Kernel development ===
Status: [https://elinux.org/N900 https://elinux.org/N900]
Sources: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip
== N9/N950 ==
[https://github.com/maemo-leste/bugtracker/issues/121 Status]
=== Installation ===
''' [http://www.swagman.org/juice/ubiboot/ubiboot-02/ ubiboot] from eMMC '''
=== Kernel development ===
Linux 4.16.4 plus patches
N950 status: https://elinux.org/N950
N9 status: https://elinux.org/N9
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.16.y linux-stable 4.16.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n950-patches N950 patches], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n9-patches N9 patches]
== Droid 4 ==
[https://maemo-leste.github.io/pages/droid-4-status.html Status]
=== Installation ===
''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card '''
(This is the boot method currently being used but we'll probably replace this with [https://github.com/tmlind/droid4-kexecboot droid4-kexecboot] to aid kernel updates via deb package)
=== Kernel development ===
Linux 4.14 plus patches
Status: http://elektranox.org/droid4/
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]
== Generic AMD64 ==
== Allwinner A20 LIME2 ==
== Allwinner A33 Tablet ==
== Raspberry 2 or 3 ==
= Development =
== Set up a VM ==
== Packages needed testing ==
== Packages needed building ==
== Packages needed porting ==
= Links =
<div>
*Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io]
*Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues]
*Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/]
*Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/]
The central point of meeting and talking is IRC and this thread: https://talk.maemo.org/showthread.php?t=100192.
</div>
*[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)]
e14dcfe7807943644a1f181afbf26d4853949cfb
17
16
2018-04-30T14:52:05Z
Derby
3
Added Roadmap section with milestones link
wikitext
text/x-wiki
= Description =
Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more.
You can find us on '''freenode''', channel '''#maemo-leste'''.
Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels.
The project is not usable as a daily driver for your device, Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available - such as the N900.
So far we have set up devuan/debian repositories for our packages, with builds for armel, armhf and amd64. We have FOSS replacements for some closed maemo packages, further building on the Maemo community efforts to replace all closed bits by open software.
= Supported Devices =
== N900 ==
[https://maemo-leste.github.io/pages/n900-status.html Status]
=== Installation ===
''' U-Boot from sdcard '''
''' Boot through flasher from sdcard'''
=== Kernel development ===
Status: [https://elinux.org/N900 https://elinux.org/N900]
Sources: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip
== N9/N950 ==
[https://github.com/maemo-leste/bugtracker/issues/121 Status]
=== Installation ===
''' [http://www.swagman.org/juice/ubiboot/ubiboot-02/ ubiboot] from eMMC '''
=== Kernel development ===
Linux 4.16.4 plus patches
N950 status: https://elinux.org/N950
N9 status: https://elinux.org/N9
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.16.y linux-stable 4.16.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n950-patches N950 patches], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n9-patches N9 patches]
== Droid 4 ==
[https://maemo-leste.github.io/pages/droid-4-status.html Status]
=== Installation ===
''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card '''
(This is the boot method currently being used but we'll probably replace this with [https://github.com/tmlind/droid4-kexecboot droid4-kexecboot] to aid kernel updates via deb package)
=== Kernel development ===
Linux 4.14 plus patches
Status: http://elektranox.org/droid4/
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]
== Generic AMD64 ==
== Allwinner A20 LIME2 ==
== Allwinner A33 Tablet ==
== Raspberry 2 or 3 ==
= Development =
== Set up a VM ==
== Packages needed testing ==
== Packages needed building ==
== Packages needed porting ==
= Roadmap =
== Project milestones ==
https://github.com/maemo-leste/bugtracker/milestones
= Links =
<div>
*Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io]
*Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues]
*Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/]
*Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/]
The central point of meeting and talking is IRC and this thread: https://talk.maemo.org/showthread.php?t=100192.
</div>
*[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)]
99f0b168207860a3870ef6347530956d59831f69
18
17
2018-05-05T16:06:26Z
Derby
3
/* Installation */ Add installation instructions for N9/N950
wikitext
text/x-wiki
= Description =
Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more.
You can find us on '''freenode''', channel '''#maemo-leste'''.
Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels.
The project is not usable as a daily driver for your device, Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available - such as the N900.
So far we have set up devuan/debian repositories for our packages, with builds for armel, armhf and amd64. We have FOSS replacements for some closed maemo packages, further building on the Maemo community efforts to replace all closed bits by open software.
= Supported Devices =
== N900 ==
[https://maemo-leste.github.io/pages/n900-status.html Status]
=== Installation ===
''' U-Boot from sdcard '''
''' Boot through flasher from sdcard'''
=== Kernel development ===
Status: [https://elinux.org/N900 https://elinux.org/N900]
Sources: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip
== N9/N950 ==
[https://github.com/maemo-leste/bugtracker/issues/121 Status]
=== Installation ===
''' [http://www.swagman.org/juice/ubiboot/ubiboot-02/ ubiboot] from eMMC '''
# [http://www.swagman.org/juice/ubiboot/README Install ubiboot].
# [https://talk.maemo.org/showthread.php?t=91914 Create a new slice on the eMMC] and format it to ext4.
# Mount your new ext4 slice and unpack the .tar.gz dist ([https://maedevu.maemo.org/images/n9/20180425/maemo-leste-1.0-armhf-n9-20180425.tar.gz N9 - 20180424], [https://maedevu.maemo.org/images/n950/20180425/maemo-leste-1.0-armhf-n950-20180424.tar.gz N950 - 20180424]) to it.
# Configure <code>ubiboot.conf</code>. This guide assumes you will use slot 5 for Maemo Leste ([https://github.com/dderby/ubiboot-animatronics/blob/master/ubiboot.conf example]):
#* Set '''G_OS5_INITSCRIPT''' to <code>\/sbin\/preinit</code>
#* Set '''G_OS5_NUM''' to <code>1</code>
#* Set '''G_OS5_PARTITION''' to the partition number of your Maemo Leste slice
#* Set '''G_OS5_NAME''' to <code>Maemo</code>
#* Set '''G_OS5_1_LABEL''' to <code>Maemo Leste - Linux 4.16</code> or whatever description you like
#* Set '''G_OS5_1_FILE''' to <code>/boot/Maemo/boot/zImage</code>
# Reboot to ubiboot and select the slot for Maemo Leste.
If you don't want to repartition your eMMC, there are two alternatives:
* Use [https://talk.maemo.org/showthread.php?t=94042 N9 Easy Boot].
* Unpack the dist to Harmattan's <code>/home</code> directory and set '''G_OS5_PARTITION''' in ubiboot.conf to <code>3</code>. This will result in Maemo Leste sharing a slice with Harmattan's <code>/home</code>. Be careful when removing Maemo Leste, not to remove Harmatan's <code>user</code> or <code>developer</code> home directories.
=== Kernel development ===
Linux 4.16.4 plus patches
N950 status: https://elinux.org/N950
N9 status: https://elinux.org/N9
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.16.y linux-stable 4.16.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n950-patches N950 patches], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n9-patches N9 patches]
== Droid 4 ==
[https://maemo-leste.github.io/pages/droid-4-status.html Status]
=== Installation ===
''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card '''
(This is the boot method currently being used but we'll probably replace this with [https://github.com/tmlind/droid4-kexecboot droid4-kexecboot] to aid kernel updates via deb package)
=== Kernel development ===
Linux 4.14 plus patches
Status: http://elektranox.org/droid4/
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]
== Generic AMD64 ==
== Allwinner A20 LIME2 ==
== Allwinner A33 Tablet ==
== Raspberry 2 or 3 ==
= Development =
== Set up a VM ==
== Packages needed testing ==
== Packages needed building ==
== Packages needed porting ==
= Roadmap =
== Project milestones ==
https://github.com/maemo-leste/bugtracker/milestones
= Links =
<div>
*Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io]
*Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues]
*Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/]
*Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/]
The central point of meeting and talking is IRC and this thread: https://talk.maemo.org/showthread.php?t=100192.
</div>
*[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)]
cdc2cd7f9acd0ad5fbb3aee6a07b5c987ae53ecc
19
18
2018-05-05T20:32:50Z
Derby
3
/* N9/N950 */
wikitext
text/x-wiki
= Description =
Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more.
You can find us on '''freenode''', channel '''#maemo-leste'''.
Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels.
The project is not usable as a daily driver for your device, Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available - such as the N900.
So far we have set up devuan/debian repositories for our packages, with builds for armel, armhf and amd64. We have FOSS replacements for some closed maemo packages, further building on the Maemo community efforts to replace all closed bits by open software.
= Supported Devices =
== N900 ==
[https://maemo-leste.github.io/pages/n900-status.html Status]
=== Installation ===
''' U-Boot from sdcard '''
''' Boot through flasher from sdcard'''
=== Kernel development ===
Status: [https://elinux.org/N900 https://elinux.org/N900]
Sources: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip
== N9/N950 ==
[https://github.com/maemo-leste/bugtracker/issues/121 Status]
=== Installation ===
''' [http://www.swagman.org/juice/ubiboot/ubiboot-02/ ubiboot] from eMMC '''
# [http://www.swagman.org/juice/ubiboot/README Install ubiboot].
# [https://talk.maemo.org/showthread.php?t=91914 Create a new slice on the eMMC] and format it to ext4.
# Mount your new ext4 slice and unpack the .tar.gz dist ([https://maedevu.maemo.org/images/n9/20180425/maemo-leste-1.0-armhf-n9-20180425.tar.gz N9 - 20180424], [https://maedevu.maemo.org/images/n950/20180425/maemo-leste-1.0-armhf-n950-20180424.tar.gz N950 - 20180424]) to it.
# Configure <code>ubiboot.conf</code>. This guide assumes you will use slot 5 for Maemo Leste ([https://github.com/dderby/ubiboot-animatronics/blob/master/ubiboot.conf example]):
#* Set '''G_OS5_INITSCRIPT''' to <code>\/sbin\/preinit</code>
#* Set '''G_OS5_NUM''' to <code>1</code>
#* Set '''G_OS5_PARTITION''' to the partition number of your Maemo Leste slice
#* Set '''G_OS5_NAME''' to <code>Maemo</code>
#* Set '''G_OS5_1_LABEL''' to <code>Maemo Leste - Linux 4.16</code> or whatever description you like
#* Set '''G_OS5_1_FILE''' to <code>/boot/Maemo/boot/zImage</code>
# Reboot to ubiboot and select the slot for Maemo Leste.
If you don't want to repartition your eMMC, there are two alternatives:
* Use [https://talk.maemo.org/showthread.php?t=94042 N9 Easy Boot].
* Unpack the dist to Harmattan's <code>/home</code> directory and set '''G_OS5_PARTITION''' in ubiboot.conf to <code>3</code>. This will result in Maemo Leste sharing a slice with Harmattan's <code>/home</code>. Be careful when removing Maemo Leste, not to remove Harmattan's <code>user</code> or <code>developer</code> home directories.
=== Kernel development ===
Linux 4.16.4 plus patches
N950 status: https://elinux.org/N950
N9 status: https://elinux.org/N9
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.16.y linux-stable 4.16.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n950-patches N950 patches], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n9-patches N9 patches]
== Droid 4 ==
[https://maemo-leste.github.io/pages/droid-4-status.html Status]
=== Installation ===
''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card '''
(This is the boot method currently being used but we'll probably replace this with [https://github.com/tmlind/droid4-kexecboot droid4-kexecboot] to aid kernel updates via deb package)
=== Kernel development ===
Linux 4.14 plus patches
Status: http://elektranox.org/droid4/
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]
== Generic AMD64 ==
== Allwinner A20 LIME2 ==
== Allwinner A33 Tablet ==
== Raspberry 2 or 3 ==
= Development =
== Set up a VM ==
== Packages needed testing ==
== Packages needed building ==
== Packages needed porting ==
= Roadmap =
== Project milestones ==
https://github.com/maemo-leste/bugtracker/milestones
= Links =
<div>
*Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io]
*Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues]
*Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/]
*Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/]
The central point of meeting and talking is IRC and this thread: https://talk.maemo.org/showthread.php?t=100192.
</div>
*[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)]
95ff523c10e0bc029faa9abd977097da3a9c8196
20
19
2018-05-12T20:24:31Z
Sicelo
5
wikitext
text/x-wiki
= Description =
Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo (Fremantle). We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more.
You can find us on '''freenode''', channel '''#maemo-leste'''.
Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels.
The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available, such as the N900.
So far we have set up devuan/debian repositories for our packages, with builds for armel, armhf and amd64. We have FOSS replacements for some closed maemo packages, further building on the Maemo community efforts to replace all closed bits by open software.
= Supported Devices =
== N900 ==
[https://maemo-leste.github.io/pages/n900-status.html Status]
=== Installation ===
''' U-Boot from sdcard '''
''' Boot through flasher from sdcard'''
=== Known Issues and workarounds ===
=== Kernel development ===
Status: [https://elinux.org/N900 https://elinux.org/N900]
Sources: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip
== N9/N950 ==
[https://github.com/maemo-leste/bugtracker/issues/121 Status]
=== Installation ===
''' [http://www.swagman.org/juice/ubiboot/ubiboot-02/ ubiboot] from eMMC '''
# [http://www.swagman.org/juice/ubiboot/README Install ubiboot].
# [https://talk.maemo.org/showthread.php?t=91914 Create a new slice on the eMMC] and format it to ext4.
# Mount your new ext4 slice and unpack the .tar.gz dist ([https://maedevu.maemo.org/images/n9/20180425/maemo-leste-1.0-armhf-n9-20180425.tar.gz N9 - 20180424], [https://maedevu.maemo.org/images/n950/20180425/maemo-leste-1.0-armhf-n950-20180424.tar.gz N950 - 20180424]) to it.
# Configure <code>ubiboot.conf</code>. This guide assumes you will use slot 5 for Maemo Leste ([https://github.com/dderby/ubiboot-animatronics/blob/master/ubiboot.conf example]):
#* Set '''G_OS5_INITSCRIPT''' to <code>\/sbin\/preinit</code>
#* Set '''G_OS5_NUM''' to <code>1</code>
#* Set '''G_OS5_PARTITION''' to the partition number of your Maemo Leste slice
#* Set '''G_OS5_NAME''' to <code>Maemo</code>
#* Set '''G_OS5_1_LABEL''' to <code>Maemo Leste - Linux 4.16</code> or whatever description you like
#* Set '''G_OS5_1_FILE''' to <code>/boot/Maemo/boot/zImage</code>
# Reboot to ubiboot and select the slot for Maemo Leste.
If you don't want to repartition your eMMC, there are two alternatives:
* Use [https://talk.maemo.org/showthread.php?t=94042 N9 Easy Boot].
* Unpack the dist to Harmattan's <code>/home</code> directory and set '''G_OS5_PARTITION''' in ubiboot.conf to <code>3</code>. This will result in Maemo Leste sharing a slice with Harmattan's <code>/home</code>. Be careful when removing Maemo Leste, not to remove Harmattan's <code>user</code> or <code>developer</code> home directories.
=== Kernel development ===
Linux 4.16.4 plus patches
N950 status: https://elinux.org/N950
N9 status: https://elinux.org/N9
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.16.y linux-stable 4.16.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n950-patches N950 patches], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n9-patches N9 patches]
== Droid 4 ==
[https://maemo-leste.github.io/pages/droid-4-status.html Status]
=== Installation ===
''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card '''
(This is the boot method currently being used but we'll probably replace this with [https://github.com/tmlind/droid4-kexecboot droid4-kexecboot] to aid kernel updates via deb package)
=== Kernel development ===
Linux 4.14 plus patches
Status: http://elektranox.org/droid4/
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]
== Generic AMD64 ==
== Allwinner A20 LIME2 ==
== Allwinner A33 Tablet ==
== Raspberry 2 or 3 ==
= Development =
== Set up a VM ==
== Packages needed testing ==
== Packages needed building ==
== Packages needed porting ==
= Roadmap =
== Project milestones ==
https://github.com/maemo-leste/bugtracker/milestones
= Links =
<div>
*Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io]
*Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues]
*Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/]
*Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/]
The central point of meeting and talking is IRC and this thread: https://talk.maemo.org/showthread.php?t=100192.
</div>
*[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)]
bb3b011dd5851a7f820488b1b2c779bca9046395
User talk:Mike727
3
2
7
2018-04-06T11:39:45Z
Mike727
6
Created page with "'''Background''' A majority of consumer hand-held devices have been designed to run Android or iOS (~consequently, the hardware architecture is generally not an ideal platfor..."
wikitext
text/x-wiki
'''Background'''
A majority of consumer hand-held devices have been designed to run Android or iOS (~consequently, the hardware architecture is generally not an ideal platform for running a Linux distro). For some, these platforms are not ideal since they clash with certain ideologies; which can deem them inadequate or restrictive. There has been various initiatives for creating or branching from these platforms where various communities strive to make (~improvements/overcome flaws).
Some initiatives have achieved installing a Linux distribution on top of the Android kernel.
Cite:
http://talk.maemo.org/showpost.php?p=1542529&postcount=44
----
'''FAQ'''
Q. How does Maemo Leste (7) differ to Maemo 5?
Q. What is 'mainline Linux' support?
fe294ded8c85c2abfd5eeb044e4b328a156fdc1d
8
7
2018-04-06T11:48:26Z
Mike727
6
wikitext
text/x-wiki
'''Background'''
A majority of consumer hand-held devices have been designed to run Android or iOS (~consequently, the hardware architecture is generally not an ideal platform for running a Linux distro). For some, these platforms are not ideal since they clash with certain ideologies; which can deem them inadequate or restrictive. There has been various initiatives for creating or branching from these platforms where various communities strive to make (~improvements/overcome flaws).
Some initiatives have achieved installing a Linux distribution on top of the Android kernel.
Cite:
http://talk.maemo.org/showpost.php?p=1542529&postcount=44
----
'''FAQ'''
Q. How does Maemo Leste (7) differ to Maemo 5?
Q. What is 'mainline Linux' support?
Q. Will Maemo Leste work on ...(device)?
A. (cite: http://talk.maemo.org/showpost.php?p=1540157&postcount=20)
9a81161a88525d21fcbd84e834704ed584704bef
MediaWiki:Common.css
8
3
21
2018-05-21T20:30:50Z
Wizzup
4
Created page with "/* Reset italic styling set by user agent */ cite, dfn { font-style: inherit; } /* Straight quote marks for <q> */ q { quotes: '"' '"' "'" "'"; } /* Avoid collision of blo..."
css
text/css
/* Reset italic styling set by user agent */
cite, dfn {
font-style: inherit;
}
/* Straight quote marks for <q> */
q {
quotes: '"' '"' "'" "'";
}
/* Avoid collision of blockquote with floating elements by swapping margin and padding */
blockquote {
overflow: hidden;
margin: 1em 0;
padding: 0 40px;
}
/* Prevent the 'double bold' bug in Firefox when using DirectWrite */
strong.selflink {
font-weight: 700;
}
/* Consistent size for <small>, <sub> and <sup> */
small {
font-size: 85%;
}
.mw-body-content sub,
.mw-body-content sup,
span.reference /* for Parsoid */ {
font-size: 80%;
}
/* Same spacing for indented and unidented paragraphs on talk pages */
.ns-talk .mw-body-content dd {
margin-top: 0.4em;
margin-bottom: 0.4em;
}
/* Main page fixes */
#interwiki-completelist {
font-weight: bold;
}
/* Reduce page jumps by hiding collapsed/dismissed content */
.client-js .mw-special-Watchlist #watchlist-message,
.client-js .NavFrame.collapsed .NavContent,
.client-js .collapsible.collapsed > tbody > tr:not(:first-child) {
display: none;
}
/* Edit window toolbar */
#toolbar {
margin-bottom: 6px;
}
/* Hide charinsert base for those not using the gadget */
#editpage-specialchars {
display: none;
}
/* Highlight linked elements (such as clicked references) in blue */
body.action-info .mw-body-content :target,
.citation:target {
background-color: #DEF; /* Fallback */
background-color: rgba(0, 127, 255, 0.133);
}
/* Styling for citations. Breaks long urls, etc., rather than overflowing box */
.citation {
word-wrap: break-word;
}
/* For linked citation numbers and document IDs, where the number need not be shown
on a screen or a handheld, but should be included in the printed version */
@media screen, handheld {
.citation .printonly {
display: none;
}
}
/* Make the list of references smaller */
ol.references,
div.reflist,
div.refbegin {
font-size: 90%; /* Default font-size */
margin-bottom: 0.5em;
}
div.refbegin-100 {
font-size: 100%; /* Option for normal fontsize in {{refbegin}} */
}
div.reflist ol.references {
font-size: 100%; /* Reset font-size when nested in div.reflist */
margin-bottom: 0; /* Avoid double margin when nested in div.reflist */
list-style-type: inherit; /* Enable custom list style types */
}
/* Ensure refs in table headers and the like aren't bold or italic */
sup.reference {
font-weight: normal;
font-style: normal;
}
/* Allow hidden ref errors to be shown by user CSS */
span.brokenref {
display: none;
}
/* Hanging indentation for Template:Refbegin */
.refbegin-hanging-indents > ul {
list-style-type: none;
margin-left: 0;
}
.refbegin-hanging-indents > ul > li,
.refbegin-hanging-indents > dl > dd {
margin-left: 0;
padding-left: 3.2em;
text-indent: -3.2em;
list-style: none;
}
/* Reset top margin for lists embedded in columns */
div.columns {
margin-top: 0.3em;
}
div.columns dl,
div.columns ol,
div.columns ul {
margin-top: 0;
}
/* Avoid elements from breaking between columns */
.nocolbreak,
div.columns li,
div.columns dd dd {
-webkit-column-break-inside: avoid;
page-break-inside: avoid;
break-inside: avoid-column;
}
/* Style for [[Template:Flowlist]] that Lets lists flow around floating objecs */
.flowlist ul {
overflow-x: hidden;
margin-left: 0;
padding-left: 1.6em;
}
.flowlist ol {
overflow-x: hidden;
margin-left: 0;
padding-left: 3.2em;
}
.flowlist dl {
overflow-x: hidden;
}
/* Style for horizontal lists (separator following item).
@source mediawiki.org/wiki/Snippets/Horizontal_lists
@revision 8 (2016-05-21)
@author [[User:Edokter]]
*/
.hlist dl,
.hlist ol,
.hlist ul {
margin: 0;
padding: 0;
}
/* Display list items inline */
.hlist dd,
.hlist dt,
.hlist li {
margin: 0;
display: inline;
}
/* Display nested lists inline */
.hlist.inline,
.hlist.inline dl,
.hlist.inline ol,
.hlist.inline ul,
.hlist dl dl, .hlist dl ol, .hlist dl ul,
.hlist ol dl, .hlist ol ol, .hlist ol ul,
.hlist ul dl, .hlist ul ol, .hlist ul ul {
display: inline;
}
/* Hide empty list items */
.hlist .mw-empty-li {
display: none;
}
/* Generate interpuncts */
.hlist dt:after {
content: ": ";
}
.hlist dd:after,
.hlist li:after {
content: " · ";
font-weight: bold;
}
.hlist dd:last-child:after,
.hlist dt:last-child:after,
.hlist li:last-child:after {
content: none;
}
/* Add parentheses around nested lists */
.hlist dd dd:first-child:before, .hlist dd dt:first-child:before, .hlist dd li:first-child:before,
.hlist dt dd:first-child:before, .hlist dt dt:first-child:before, .hlist dt li:first-child:before,
.hlist li dd:first-child:before, .hlist li dt:first-child:before, .hlist li li:first-child:before {
content: " (";
font-weight: normal;
}
.hlist dd dd:last-child:after, .hlist dd dt:last-child:after, .hlist dd li:last-child:after,
.hlist dt dd:last-child:after, .hlist dt dt:last-child:after, .hlist dt li:last-child:after,
.hlist li dd:last-child:after, .hlist li dt:last-child:after, .hlist li li:last-child:after {
content: ")";
font-weight: normal;
}
/* Put ordinals in front of ordered list items */
.hlist ol {
counter-reset: listitem;
}
.hlist ol > li {
counter-increment: listitem;
}
.hlist ol > li:before {
content: " " counter(listitem) "\a0";
}
.hlist dd ol > li:first-child:before,
.hlist dt ol > li:first-child:before,
.hlist li ol > li:first-child:before {
content: " (" counter(listitem) "\a0";
}
/* Unbulleted lists */
.plainlist ol,
.plainlist ul {
line-height: inherit;
list-style: none none;
margin: 0;
}
.plainlist ol li,
.plainlist ul li {
margin-bottom: 0;
}
/* Default style for navigation boxes */
.navbox { /* Navbox container style */
box-sizing: border-box;
border: 1px solid #a2a9b1;
width: 100%;
clear: both;
font-size: 88%;
text-align: center;
padding: 1px;
margin: 1em auto 0; /* Prevent preceding content from clinging to navboxes */
}
.navbox .navbox {
margin-top: 0; /* No top margin for nested navboxes */
}
.navbox + .navbox {
margin-top: -1px; /* Single pixel border between adjacent navboxes */
}
.navbox-inner,
.navbox-subgroup {
width: 100%;
}
.navbox-group,
.navbox-title,
.navbox-abovebelow {
padding: 0.25em 1em; /* Title, group and above/below styles */
line-height: 1.5em;
text-align: center;
}
th.navbox-group { /* Group style */
white-space: nowrap;
/* @noflip */
text-align: right;
}
.navbox,
.navbox-subgroup {
background: #fdfdfd; /* Background color */
}
.navbox-list {
line-height: 1.5em;
border-color: #fdfdfd; /* Must match background color */
}
/* cell spacing for navbox cells */
tr + tr > .navbox-abovebelow,
tr + tr > .navbox-group,
tr + tr > .navbox-image,
tr + tr > .navbox-list { /* Borders above 2nd, 3rd, etc. rows */
border-top: 2px solid #fdfdfd; /* Must match background color */
}
.navbox th,
.navbox-title {
background: #ccccff; /* Level 1 color */
}
.navbox-abovebelow,
th.navbox-group,
.navbox-subgroup .navbox-title {
background: #ddddff; /* Level 2 color */
}
.navbox-subgroup .navbox-group,
.navbox-subgroup .navbox-abovebelow {
background: #e6e6ff; /* Level 3 color */
}
.navbox-even {
background: #f7f7f7; /* Even row striping */
}
.navbox-odd {
background: transparent; /* Odd row striping */
}
.navbox .hlist td dl,
.navbox .hlist td ol,
.navbox .hlist td ul,
.navbox td.hlist dl,
.navbox td.hlist ol,
.navbox td.hlist ul {
padding: 0.125em 0; /* Adjust hlist padding in navboxes */
}
/* Default styling for Navbar template */
.navbar {
display: inline;
font-size: 88%;
font-weight: normal;
}
.navbar ul {
display: inline;
white-space: nowrap;
}
.mw-body-content .navbar ul {
line-height: inherit;
}
.navbar li {
word-spacing: -0.125em;
}
.navbar.mini li abbr[title] {
font-variant: small-caps;
border-bottom: none;
text-decoration: none;
cursor: inherit;
}
/* Navbar styling when nested in infobox and navbox */
.infobox .navbar {
font-size: 100%;
}
.navbox .navbar {
display: block;
font-size: 100%;
}
.navbox-title .navbar {
/* @noflip */
float: left;
/* @noflip */
text-align: left;
/* @noflip */
margin-right: 0.5em;
}
/* 'show'/'hide' buttons created dynamically by the CollapsibleTables javascript
in [[MediaWiki:Common.js]] are styled here so they can be customised. */
.collapseButton {
/* @noflip */
float: right;
font-weight: normal;
/* @noflip */
margin-left: 0.5em;
/* @noflip */
text-align: right;
width: auto;
}
/* Styling for JQuery makeCollapsible, matching that of collapseButton */
.mw-parser-output .mw-collapsible-toggle {
font-weight: normal;
/* @noflip */
text-align: right;
padding-right: 0.2em;
padding-left: 0.2em;
}
.mw-collapsible-leftside-toggle .mw-collapsible-toggle {
/* @noflip */
float: left;
/* @noflip */
text-align: left;
}
/* Infobox template style */
.infobox {
border: 1px solid #a2a9b1;
border-spacing: 3px;
background-color: #f8f9fa;
color: black;
/* @noflip */
margin: 0.5em 0 0.5em 1em;
padding: 0.2em;
/* @noflip */
float: right;
/* @noflip */
clear: right;
font-size: 88%;
line-height: 1.5em;
}
.infobox caption {
font-size: 125%;
font-weight: bold;
padding: 0.2em;
text-align: center;
}
.infobox td,
.infobox th {
vertical-align: top;
/* @noflip */
text-align: left;
}
.infobox.bordered {
border-collapse: collapse;
}
.infobox.bordered td,
.infobox.bordered th {
border: 1px solid #a2a9b1;
}
.infobox.bordered .borderless td,
.infobox.bordered .borderless th {
border: 0;
}
.infobox.sisterproject {
width: 20em;
font-size: 90%;
}
.infobox.standard-talk {
border: 1px solid #c0c090;
background-color: #f8eaba;
}
.infobox.standard-talk.bordered td,
.infobox.standard-talk.bordered th {
border: 1px solid #c0c090;
}
/* styles for bordered infobox with merged rows */
.infobox.bordered .mergedtoprow td,
.infobox.bordered .mergedtoprow th {
border: 0;
border-top: 1px solid #a2a9b1;
/* @noflip */
border-right: 1px solid #a2a9b1;
}
.infobox.bordered .mergedrow td,
.infobox.bordered .mergedrow th {
border: 0;
/* @noflip */
border-right: 1px solid #a2a9b1;
}
/* Styles for geography infoboxes, eg countries,
country subdivisions, cities, etc. */
.infobox.geography {
border-collapse: collapse;
line-height: 1.2em;
font-size: 90%;
}
.infobox.geography td,
.infobox.geography th {
border-top: 1px solid #a2a9b1;
padding: 0.4em 0.6em 0.4em 0.6em;
}
.infobox.geography .mergedtoprow td,
.infobox.geography .mergedtoprow th {
border-top: 1px solid #a2a9b1;
padding: 0.4em 0.6em 0.2em 0.6em;
}
.infobox.geography .mergedrow td,
.infobox.geography .mergedrow th {
border: 0;
padding: 0 0.6em 0.2em 0.6em;
}
.infobox.geography .mergedbottomrow td,
.infobox.geography .mergedbottomrow th {
border-top: 0;
border-bottom: 1px solid #a2a9b1;
padding: 0 0.6em 0.4em 0.6em;
}
.infobox.geography .maptable td,
.infobox.geography .maptable th {
border: 0;
padding: 0;
}
/* Normal font styling for table row headers with scope="row" tag */
.wikitable.plainrowheaders th[scope=row] {
font-weight: normal;
/* @noflip */
text-align: left;
}
/* Lists in data cells are always left-aligned */
.wikitable td ul,
.wikitable td ol,
.wikitable td dl {
/* @noflip */
text-align: left;
}
/* ...unless they also use the hlist class */
.toc.hlist ul,
#toc.hlist ul,
.wikitable.hlist td ul,
.wikitable.hlist td ol,
.wikitable.hlist td dl {
text-align: inherit;
}
/* Icons for medialist templates [[Template:Listen]],
[[Template:Multi-listen_start]], [[Template:Video]],
[[Template:Multi-video_start]] */
div.listenlist {
background: url("//upload.wikimedia.org/wikipedia/commons/4/47/Sound-icon.svg") no-repeat scroll 0 0 transparent;
background-size: 30px;
padding-left: 40px;
}
/* Fix for hieroglyphs specificality issue in infoboxes ([[Phabricator:43869]]) */
table.mw-hiero-table td {
vertical-align: middle;
}
/* Style rules for media list templates */
div.medialist {
min-height: 50px;
margin: 1em;
/* @noflip */
background-position: top left;
background-repeat: no-repeat;
}
div.medialist ul {
list-style-type: none;
list-style-image: none;
margin: 0;
}
div.medialist ul li {
padding-bottom: 0.5em;
}
div.medialist ul li li {
font-size: 91%;
padding-bottom: 0;
}
/* Change the external link icon to an Adobe icon for all PDF files
in browsers that support these CSS selectors, like Mozilla and Opera */
div#content a[href$=".pdf"].external,
div#content a[href*=".pdf?"].external,
div#content a[href*=".pdf#"].external,
div#content a[href$=".PDF"].external,
div#content a[href*=".PDF?"].external,
div#content a[href*=".PDF#"].external,
div#mw_content a[href$=".pdf"].external,
div#mw_content a[href*=".pdf?"].external,
div#mw_content a[href*=".pdf#"].external,
div#mw_content a[href$=".PDF"].external,
div#mw_content a[href*=".PDF?"].external,
div#mw_content a[href*=".PDF#"].external {
background: url("//upload.wikimedia.org/wikipedia/commons/2/23/Icons-mini-file_acrobat.gif") no-repeat right;
/* @noflip */
padding-right: 18px;
}
/* Content in columns with CSS instead of tables ([[Template:Columns]]) */
div.columns-2 div.column {
/* @noflip */
float: left;
width: 50%;
min-width: 300px;
}
div.columns-3 div.column {
/* @noflip */
float: left;
width: 33.3%;
min-width: 200px;
}
div.columns-4 div.column {
/* @noflip */
float: left;
width: 25%;
min-width: 150px;
}
div.columns-5 div.column {
/* @noflip */
float: left;
width: 20%;
min-width: 120px;
}
/* Messagebox templates */
.messagebox {
border: 1px solid #a2a9b1;
background-color: #f8f9fa;
width: 80%;
margin: 0 auto 1em auto;
padding: .2em;
}
.messagebox.merge {
border: 1px solid #c0b8cc;
background-color: #f0e5ff;
text-align: center;
}
.messagebox.cleanup {
border: 1px solid #9f9fff;
background-color: #efefff;
text-align: center;
}
.messagebox.standard-talk {
border: 1px solid #c0c090;
background-color: #f8eaba;
margin: 4px auto;
}
/* For old WikiProject banners inside banner shells. */
.mbox-inside .standard-talk,
.messagebox.nested-talk {
border: 1px solid #c0c090;
background-color: #f8eaba;
width: 100%;
margin: 2px 0;
padding: 2px;
}
.messagebox.small {
width: 238px;
font-size: 85%;
/* @noflip */
float: right;
clear: both;
/* @noflip */
margin: 0 0 1em 1em;
line-height: 1.25em;
}
.messagebox.small-talk {
width: 238px;
font-size: 85%;
/* @noflip */
float: right;
clear: both;
/* @noflip */
margin: 0 0 1em 1em;
line-height: 1.25em;
background: #F8EABA;
}
/* Cell sizes for ambox/tmbox/imbox/cmbox/ombox/fmbox/dmbox message boxes */
th.mbox-text, td.mbox-text { /* The message body cell(s) */
border: none;
/* @noflip */
padding: 0.25em 0.9em; /* 0.9em left/right */
width: 100%; /* Make all mboxes the same width regardless of text length */
}
td.mbox-image { /* The left image cell */
border: none;
/* @noflip */
padding: 2px 0 2px 0.9em; /* 0.9em left, 0px right */
text-align: center;
}
td.mbox-imageright { /* The right image cell */
border: none;
/* @noflip */
padding: 2px 0.9em 2px 0; /* 0px left, 0.9em right */
text-align: center;
}
td.mbox-empty-cell { /* An empty narrow cell */
border: none;
padding: 0;
width: 1px;
}
/* Article message box styles */
table.ambox {
margin: 0 10%; /* 10% = Will not overlap with other elements */
border: 1px solid #a2a9b1;
/* @noflip */
border-left: 10px solid #36c; /* Default "notice" blue */
background: #fbfbfb;
}
table.ambox + table.ambox { /* Single border between stacked boxes. */
margin-top: -1px;
}
.ambox th.mbox-text,
.ambox td.mbox-text { /* The message body cell(s) */
padding: 0.25em 0.5em; /* 0.5em left/right */
}
.ambox td.mbox-image { /* The left image cell */
/* @noflip */
padding: 2px 0 2px 0.5em; /* 0.5em left, 0px right */
}
.ambox td.mbox-imageright { /* The right image cell */
/* @noflip */
padding: 2px 0.5em 2px 0; /* 0px left, 0.5em right */
}
table.ambox-notice {
/* @noflip */
border-left: 10px solid #36c; /* Blue */
}
table.ambox-speedy {
/* @noflip */
border-left: 10px solid #b32424; /* Red */
background: #fee7e6; /* Pink */
}
table.ambox-delete {
/* @noflip */
border-left: 10px solid #b32424; /* Red */
}
table.ambox-content {
/* @noflip */
border-left: 10px solid #f28500; /* Orange */
}
table.ambox-style {
/* @noflip */
border-left: 10px solid #fc3; /* Yellow */
}
table.ambox-move {
/* @noflip */
border-left: 10px solid #9932cc; /* Purple */
}
table.ambox-protection {
/* @noflip */
border-left: 10px solid #a2a9b1; /* Gray-gold */
}
/* Image message box styles */
table.imbox {
margin: 4px 10%;
border-collapse: collapse;
border: 3px solid #36c; /* Default "notice" blue */
background: #fbfbfb;
}
.imbox .mbox-text .imbox { /* For imboxes inside imbox-text cells. */
margin: 0 -0.5em; /* 0.9 - 0.5 = 0.4em left/right. */
display: block; /* Fix for webkit to force 100% width. */
}
.mbox-inside .imbox { /* For imboxes inside other templates. */
margin: 4px;
}
table.imbox-notice {
border: 3px solid #36c; /* Blue */
}
table.imbox-speedy {
border: 3px solid #b32424; /* Red */
background: #fee7e6; /* Pink */
}
table.imbox-delete {
border: 3px solid #b32424; /* Red */
}
table.imbox-content {
border: 3px solid #f28500; /* Orange */
}
table.imbox-style {
border: 3px solid #fc3; /* Yellow */
}
table.imbox-move {
border: 3px solid #9932cc; /* Purple */
}
table.imbox-protection {
border: 3px solid #a2a9b1; /* Gray-gold */
}
table.imbox-license {
border: 3px solid #88a; /* Dark gray */
background: #f7f8ff; /* Light gray */
}
table.imbox-featured {
border: 3px solid #cba135; /* Brown-gold */
}
/* Category message box styles */
table.cmbox {
margin: 3px 10%;
border-collapse: collapse;
border: 1px solid #a2a9b1;
background: #DFE8FF; /* Default "notice" blue */
}
table.cmbox-notice {
background: #D8E8FF; /* Blue */
}
table.cmbox-speedy {
margin-top: 4px;
margin-bottom: 4px;
border: 4px solid #b32424; /* Red */
background: #FFDBDB; /* Pink */
}
table.cmbox-delete {
background: #FFDBDB; /* Red */
}
table.cmbox-content {
background: #FFE7CE; /* Orange */
}
table.cmbox-style {
background: #FFF9DB; /* Yellow */
}
table.cmbox-move {
background: #E4D8FF; /* Purple */
}
table.cmbox-protection {
background: #EFEFE1; /* Gray-gold */
}
/* Other pages message box styles */
table.ombox {
margin: 4px 10%;
border-collapse: collapse;
border: 1px solid #a2a9b1; /* Default "notice" gray */
background: #f8f9fa;
}
table.ombox-notice {
border: 1px solid #a2a9b1; /* Gray */
}
table.ombox-speedy {
border: 2px solid #b32424; /* Red */
background: #fee7e6; /* Pink */
}
table.ombox-delete {
border: 2px solid #b32424; /* Red */
}
table.ombox-content {
border: 1px solid #f28500; /* Orange */
}
table.ombox-style {
border: 1px solid #fc3; /* Yellow */
}
table.ombox-move {
border: 1px solid #9932cc; /* Purple */
}
table.ombox-protection {
border: 2px solid #a2a9b1; /* Gray-gold */
}
/* Talk page message box styles */
table.tmbox {
margin: 4px 10%;
border-collapse: collapse;
border: 1px solid #c0c090; /* Default "notice" gray-brown */
background: #f8eaba;
min-width: 80%;
}
.tmbox.mbox-small {
min-width: 0; /* reset the min-width of tmbox above */
}
.mediawiki .mbox-inside .tmbox { /* For tmboxes inside other templates. The "mediawiki" class ensures that */
margin: 2px 0; /* this declaration overrides other styles (including mbox-small above) */
width: 100%; /* For Safari and Opera */
}
.mbox-inside .tmbox.mbox-small { /* "small" tmboxes should not be small when */
line-height: 1.5em; /* also "nested", so reset styles that are */
font-size: 100%; /* set in "mbox-small" above. */
}
table.tmbox-speedy {
border: 2px solid #b32424; /* Red */
background: #fee7e6; /* Pink */
}
table.tmbox-delete {
border: 2px solid #b32424; /* Red */
}
table.tmbox-content {
border: 2px solid #f28500; /* Orange */
}
table.tmbox-style {
border: 2px solid #fc3; /* Yellow */
}
table.tmbox-move {
border: 2px solid #9932cc; /* Purple */
}
table.tmbox-protection,
table.tmbox-notice {
border: 1px solid #c0c090; /* Gray-brown */
}
/* Disambig and set index box styles */
table.dmbox {
clear: both;
margin: 0.9em 1em;
border-top: 1px solid #ccc;
border-bottom: 1px solid #ccc;
background: transparent;
}
/* Footer and header message box styles */
table.fmbox {
clear: both;
margin: 0.2em 0;
width: 100%;
border: 1px solid #a2a9b1;
background: #f8f9fa; /* Default "system" gray */
}
table.fmbox-system {
background: #f8f9fa;
}
table.fmbox-warning {
border: 1px solid #bb7070; /* Dark pink */
background: #ffdbdb; /* Pink */
}
table.fmbox-editnotice {
background: transparent;
}
/* Div based "warning" style fmbox messages. */
div.mw-warning-with-logexcerpt,
div.mw-lag-warn-high,
div.mw-cascadeprotectedwarning,
div#mw-protect-cascadeon,
div.titleblacklist-warning,
div.locked-warning {
clear: both;
margin: 0.2em 0;
border: 1px solid #bb7070;
background: #ffdbdb;
padding: 0.25em 0.9em;
}
/* These mbox-small classes must be placed after all other
ambox/tmbox/ombox etc classes. "html body.mediawiki" is so
they override "table.ambox + table.ambox" above. */
html body.mediawiki .mbox-small { /* For the "small=yes" option. */
/* @noflip */
clear: right;
/* @noflip */
float: right;
/* @noflip */
margin: 4px 0 4px 1em;
box-sizing: border-box;
width: 238px;
font-size: 88%;
line-height: 1.25em;
}
html body.mediawiki .mbox-small-left { /* For the "small=left" option. */
/* @noflip */
margin: 4px 1em 4px 0;
box-sizing: border-box;
overflow: hidden;
width: 238px;
border-collapse: collapse;
font-size: 88%;
line-height: 1.25em;
}
/* Style for compact ambox */
/* Hide the images */
.compact-ambox table .mbox-image,
.compact-ambox table .mbox-imageright,
.compact-ambox table .mbox-empty-cell {
display: none;
}
/* Remove borders, backgrounds, padding, etc. */
.compact-ambox table.ambox {
border: none;
border-collapse: collapse;
background: transparent;
margin: 0 0 0 1.6em !important;
padding: 0 !important;
width: auto;
display: block;
}
body.mediawiki .compact-ambox table.mbox-small-left {
font-size: 100%;
width: auto;
margin: 0;
}
/* Style the text cell as a list item and remove its padding */
.compact-ambox table .mbox-text {
padding: 0 !important;
margin: 0 !important;
}
.compact-ambox table .mbox-text-span {
display: list-item;
line-height: 1.5em;
list-style-type: square;
list-style-image: url(/w/skins/MonoBook/bullet.gif);
}
.skin-vector .compact-ambox table .mbox-text-span {
list-style-type: disc;
list-style-image: url(/w/skins/Vector/images/bullet-icon.svg);
list-style-image: url(/w/skins/Vector/images/bullet-icon.png)\9;
}
/* Allow for hiding text in compact form */
.compact-ambox .hide-when-compact {
display: none;
}
/* Remove default styles for [[MediaWiki:Noarticletext]]. */
div.noarticletext {
border: none;
background: transparent;
padding: 0;
}
/* Hide (formatting) elements from screen, but not from screenreaders */
.visualhide {
position: absolute;
left: -10000px;
top: auto;
width: 1px;
height: 1px;
overflow: hidden;
}
/* suppress missing interwiki image links where #ifexist cannot
be used due to high number of requests see .hidden-redlink on
[[m:MediaWiki:Common.css]] */
.check-icon a.new {
display: none;
speak: none;
}
/* Removes underlines from certain links */
.nounderlines a,
.IPA a:link, .IPA a:visited {
text-decoration: none !important;
}
/* Standard Navigationsleisten, aka box hiding thingy
from .de. Documentation at [[Wikipedia:NavFrame]]. */
div.NavFrame {
margin: 0;
padding: 4px;
border: 1px solid #a2a9b1;
text-align: center;
border-collapse: collapse;
font-size: 95%;
}
div.NavFrame + div.NavFrame {
border-top-style: none;
border-top-style: hidden;
}
div.NavPic {
background-color: #fff;
margin: 0;
padding: 2px;
/* @noflip */
float: left;
}
div.NavFrame div.NavHead {
line-height: 1.6em;
font-weight: bold;
background-color: #ccf;
position: relative;
}
div.NavFrame p,
div.NavFrame div.NavContent,
div.NavFrame div.NavContent p {
font-size: 100%;
}
div.NavEnd {
margin: 0;
padding: 0;
line-height: 1px;
clear: both;
}
a.NavToggle {
position: absolute;
top: 0;
/* @noflip */
right: 3px;
font-weight: normal;
font-size: 90%;
}
/* Hatnotes and disambiguation notices */
.hatnote {
font-style: italic;
}
.hatnote i {
font-style: normal;
}
div.hatnote {
/* @noflip */
padding-left: 1.6em;
margin-bottom: 0.5em;
}
div.hatnote + div.hatnote {
margin-top: -0.5em;
}
/* Allow transcluded pages to display in lists rather than a table. */
.listify td { display: list-item; }
.listify tr { display: block; }
.listify table { display: block; }
/* Geographical coordinates defaults. See [[Template:Coord/link]]
for how these are used. The classes "geo", "longitude", and
"latitude" are used by the [[Geo microformat]]. */
.geo-default, .geo-dms, .geo-dec { display: inline; }
.geo-nondefault, .geo-multi-punct { display: none; }
.longitude, .latitude { white-space: nowrap; }
/* Temporary(!) fix for horizontal TOC in Blink (Chrone/Opera) */
.hlist .tocnumber,
.hlist .toctext {
display: inline;
}
/* When <div class="nonumtoc"> is used on the table of contents,
the ToC will display without numbers */
.nonumtoc .tocnumber {
display: none;
}
.nonumtoc #toc ul,
.nonumtoc .toc ul {
line-height: 1.5em;
list-style: none none;
margin: .3em 0 0;
padding: 0;
}
.hlist.nonumtoc #toc ul ul,
.hlist.nonumtoc .toc ul ul {
/* @noflip */
margin: 0;
}
/* Allow limiting of which header levels are shown in a TOC;
<div class="toclimit-3">, for instance, will limit to
showing ==headings== and ===headings=== but no further
(as long as there are no =headings= on the page, which
there shouldn't be according to the MoS). */
.toclimit-2 .toclevel-1 ul,
.toclimit-3 .toclevel-2 ul,
.toclimit-4 .toclevel-3 ul,
.toclimit-5 .toclevel-4 ul,
.toclimit-6 .toclevel-5 ul,
.toclimit-7 .toclevel-6 ul {
display: none;
}
/* Styling for Template:Quote */
blockquote.templatequote div.templatequotecite {
line-height: 1.5em;
/* @noflip */
text-align: left;
/* @noflip */
padding-left: 1.6em;
margin-top: 0;
}
/* User block messages */
div.user-block {
padding: 5px;
margin-bottom: 0.5em;
border: 1px solid #A9A9A9;
background-color: #FFEFD5;
}
/* Prevent line breaks in silly places:
1) Where desired
2) Links when we don't want them to
3) Bold "links" to the page itself */
.nowrap,
.nowraplinks a,
.nowraplinks .selflink {
white-space: nowrap;
}
.nowrap pre {
white-space: pre;
}
/* But allow wrapping where desired: */
.wrap,
.wraplinks a {
white-space: normal;
}
/* For template documentation */
.template-documentation {
clear: both;
margin: 1em 0 0 0;
border: 1px solid #a2a9b1;
background-color: #ecfcf4;
padding: 1em;
}
/* Increase the height of the image upload box */
#wpUploadDescription {
height: 13em;
}
/* Minimum thumb width */
.thumbinner {
min-width: 100px;
}
/* Prevent floating boxes from overlapping any category listings,
file histories, edit previews, and edit [Show changes] views. */
#mw-subcategories, #mw-pages, #mw-category-media,
#filehistory, #wikiPreview, #wikiDiff {
clear: both;
}
/* Selectively hide headers in WikiProject banners */
.wpb .wpb-header { display: none; }
.wpbs-inner .wpb .wpb-header { display: block; } /* for IE */
.wpbs-inner .wpb .wpb-header { display: table-row; } /* for real browsers */
.wpbs-inner .wpb-outside { display: none; } /* hide things that should only display outside shells */
/* Styling for Abuse Filter tags */
.mw-tag-markers {
font-style:italic;
font-size:90%;
}
/* Hide stuff meant for accounts with special permissions. Made visible again in
[[MediaWiki:Group-sysop.css]], [[MediaWiki:Group-patroller.css]],
[[MediaWiki:Group-templateeditor.css]], [[MediaWiki:Group-extendedmover.css]] and [[Mediawiki:Group-autoconfirmed.css]]. */
.sysop-show,
.templateeditor-show,
.extendedmover-show,
.patroller-show,
.autoconfirmed-show,
.user-show {
display: none;
}
/**
* Hide the redlink generated by {{Editnotice}},
* this overrides the ".sysop-show { display: none; }" above that applies
* to the same link as well. See [[phab:T45013]]
*
* Hide the images in editnotices to keep them readable in VE view.
* Long term, editnotices should become a core feature so that they can be designed responsive.
*/
.ve-ui-mwNoticesPopupTool-item .editnotice-redlink,
.ve-ui-mwNoticesPopupTool-item .mbox-image,
.ve-ui-mwNoticesPopupTool-item .mbox-imageright {
display: none !important;
}
/* Remove bullets when there are multiple edit page warnings */
ul.permissions-errors > li {
list-style: none none;
}
ul.permissions-errors {
margin: 0;
}
/* Pie chart: transparent borders */
.transborder {
border: solid transparent;
}
/* Generic class for Times-based serif, texhtml class for inline math */
.times-serif,
span.texhtml {
font-family: "Nimbus Roman No9 L", "Times New Roman", Times, serif;
font-size: 118%;
line-height: 1;
}
span.texhtml {
white-space: nowrap;
}
span.texhtml span.texhtml {
font-size: 100%;
}
span.mwe-math-mathml-inline {
font-size: 118%;
}
/* Force tabular and lining display for digits and texhtml */
.digits,
.texhtml {
-moz-font-feature-settings: "lnum", "tnum", "kern" 0;
-webkit-font-feature-settings: "lnum", "tnum", "kern" 0;
font-feature-settings: "lnum", "tnum", "kern" 0;
font-variant-numeric: lining-nums tabular-nums;
font-kerning: none;
}
/* Make <math display="block"> be left aligned with one space indent for compatibility with style conventions */
.mwe-math-fallback-image-display,
.mwe-math-mathml-display {
margin-left: 1.6em !important;
margin-top: 0.6em;
margin-bottom: 0.6em;
}
.mwe-math-mathml-display math {
display: inline;
}
/* Fix styling of transcluded prefindex tables */
table#mw-prefixindex-list-table,
table#mw-prefixindex-nav-table {
width: 98%;
}
/* For portals, added 2011-12-07 -bv
On wide screens, show these as two columns
On narrow and mobile screens, let them collapse into a single column */
.portal-column-left {
float: left;
width: 50%;
}
.portal-column-right {
float: right;
width: 49%;
}
.portal-column-left-wide {
float: left;
width: 60%;
}
.portal-column-right-narrow {
float: right;
width: 39%;
}
.portal-column-left-extra-wide {
float: left;
width: 70%;
}
.portal-column-right-extra-narrow {
float: right;
width: 29%;
}
@media only screen and (max-width: 800px) {
/* Decouple the columns on narrow screens */
.portal-column-left,
.portal-column-right,
.portal-column-left-wide,
.portal-column-right-narrow,
.portal-column-left-extra-wide,
.portal-column-right-extra-narrow {
float: inherit;
width: inherit;
}
}
/* Formerly for announcements, now used intermittently */
#bodyContent .letterhead {
background-image:url('//upload.wikimedia.org/wikipedia/commons/e/e0/Tan-page-corner.png');
background-repeat:no-repeat;
padding: 2em;
background-color: #faf9f2;
}
/* Tree style lists */
.treeview ul {
padding: 0;
margin: 0;
}
.treeview li {
padding: 0;
margin: 0;
list-style-type: none;
list-style-image: none;
}
.treeview li li {
background: url("//upload.wikimedia.org/wikipedia/commons/f/f2/Treeview-grey-line.png") no-repeat 0 -2981px;
/* @noflip */
padding-left: 20px;
text-indent: 0.3em;
}
.treeview li li.lastline {
background-position: 0 -5971px
}
.treeview li.emptyline > ul {
/* @noflip */
margin-left: -1px;
}
/* first line here deals with new situation after RemexHTML switch,
* where emptyline cause the first child to become the 2nd child. Such a mess
*/
.mw-parsermigration-right .treeview li.emptyline > ul > .mw-empty-elt:first-child + .emptyline,
.treeview li.emptyline > ul > li:first-child {
background-position: 0 9px
}
/* hidden sortkey for tablesorter */
td .sortkey,
th .sortkey {
display: none;
speak: none;
}
/* Make it possible to hide checkboxes in <inputbox> */
.inputbox-hidecheckboxes form .inputbox-element,
.inputbox-hidecheckboxes .mw-ui-checkbox {
display: none !important;
}
/* Work-around for [[Phabricator:25965]] (Kaltura advertisement) */
.k-player .k-attribution {
visibility: hidden;
}
/* Move 'play' button of video player to bottom left corner */
.PopUpMediaTransform a .play-btn-large {
margin: 0;
top: auto;
right: auto;
bottom: 0;
left: 0;
}
/* Hide FlaggedRevs notice UI when there are no pending changes */
.flaggedrevs_draft_synced,
.flaggedrevs_stable_synced {
display: none;
}
/* Gallery styles background changes are restricted to screen view. In printing we should avoid applying backgrounds. */
@media screen {
/* The backgrounds for galleries. */
#content .gallerybox div.thumb {
/* Light gray padding */
background-color: #f8f9fa;
}
/* Put a chequered background behind images, only visible if they have transparency.
'.filehistory a img' and '#file img:hover' are handled by MediaWiki core (as of 1.19) */
.gallerybox .thumb img {
background: #fff url(//upload.wikimedia.org/wikipedia/commons/5/5d/Checker-16x16.png) repeat;
}
/* But not on articles, user pages, portals or with opt-out. */
.ns-0 .gallerybox .thumb img,
.ns-2 .gallerybox .thumb img,
.ns-100 .gallerybox .thumb img,
.nochecker .gallerybox .thumb img {
background: #fff;
}
/* T178626 */
#contentSub:empty,
#contentSub2:empty {
display: block !important;
}
#contentSub:empty ~ #jump-to-nav,
#contentSub2:empty ~ #jump-to-nav {
margin-top: -1.4em !important;
margin-bottom: 1.4em !important;
}
}
635a0d0c4f92e42d709b993530b5a4fedb4d9e87
Template:Infobox
10
4
23
22
2018-05-21T20:35:55Z
Wizzup
4
1 revision imported
wikitext
text/x-wiki
{{#invoke:Infobox|infobox}}<includeonly>{{#ifeq:{{NAMESPACE}}|Template|{{#ifeq:{{str left|{{SUBPAGENAME}}|7}}|Infobox|[[Category:Infobox templates|{{remove first word|{{SUBPAGENAME}}}}]]}}}}</includeonly><noinclude>
{{documentation}}
<!-- Categories go in the /doc subpage, and interwikis go in Wikidata. -->
</noinclude>
e6db96a81f994b02e93b537be937d443c0890566
Template:Clear
10
5
25
24
2018-05-21T20:35:56Z
Wizzup
4
1 revision imported
wikitext
text/x-wiki
<div style="clear:{{{1|both}}};"></div><noinclude>
{{documentation}}
</noinclude>
38bab3e3d7fbd3d6800d46556e60bc6bac494d72
Template:Distinguish
10
6
27
26
2018-05-21T20:35:56Z
Wizzup
4
1 revision imported
wikitext
text/x-wiki
{{#invoke:Distinguish|distinguish}}<noinclude><!-- splitting these lines causes {{Documentation}} template to terminate green shading when Distinguish is used in /doc pages. -->
{{Documentation}}
<!-- Add categories to the /doc subpage and interwikis to Wikidata, not here! -->
</noinclude>
f949a4cbfd6eb0ab77b832e69059a40a964b1fd8
Template:Documentation
10
7
29
28
2018-05-21T20:35:56Z
Wizzup
4
1 revision imported
wikitext
text/x-wiki
{{#invoke:documentation|main|_content={{ {{#invoke:documentation|contentTitle}}}}}}<noinclude>
<!-- Categories go on the /doc subpage, and interwikis go on Wikidata. -->
</noinclude>
ce7fd93f18c46b4fa871bf679afd05cbda72d8c4
Template:Documentation subpage
10
8
31
30
2018-05-21T20:35:57Z
Wizzup
4
1 revision imported
wikitext
text/x-wiki
<includeonly><!--
-->{{#ifeq:{{lc:{{SUBPAGENAME}}}} |{{{override|doc}}}
| <!--(this template has been transcluded on a /doc or /{{{override}}} page)-->
</includeonly><!--
-->{{#ifeq:{{{doc-notice|show}}} |show
| {{Mbox
| type = notice
| style = margin-bottom:1.0em;
| image = [[File:Edit-copy green.svg|40px|alt=|link=]]
| text =
'''This is a [[Wikipedia:Template documentation|documentation]] [[Wikipedia:Subpages|subpage]] for {{{1|[[:{{SUBJECTSPACE}}:{{BASEPAGENAME}}]]}}}'''.<br />It contains usage information, [[Wikipedia:Categorization|categories]] and other content that is not part of the original {{#if:{{{text2|}}} |{{{text2}}} |{{#if:{{{text1|}}} |{{{text1}}} |{{#ifeq:{{SUBJECTSPACE}} |{{ns:User}} |{{lc:{{SUBJECTSPACE}}}} template page |{{#if:{{SUBJECTSPACE}} |{{lc:{{SUBJECTSPACE}}}} page|article}}}}}}}}.
}}
}}<!--
-->{{DEFAULTSORT:{{{defaultsort|{{PAGENAME}}}}}}}<!--
-->{{#if:{{{inhibit|}}} |<!--(don't categorize)-->
| <includeonly><!--
-->{{#ifexist:{{NAMESPACE}}:{{BASEPAGENAME}}
| [[Category:{{#switch:{{SUBJECTSPACE}} |Template=Template |Module=Module |User=User |#default=Wikipedia}} documentation pages]]
| [[Category:Documentation subpages without corresponding pages]]
}}<!--
--></includeonly>
}}<!--
(completing initial #ifeq: at start of template:)
--><includeonly>
| <!--(this template has not been transcluded on a /doc or /{{{override}}} page)-->
}}<!--
--></includeonly><noinclude>{{Documentation}}</noinclude>
a1dda2f5e5ddf9097546af5acd7a7bad14fdac9d
Template:High-risk
10
9
33
32
2018-05-21T20:35:57Z
Wizzup
4
1 revision imported
wikitext
text/x-wiki
<noinclude>{{Being deleted|2018 May 5|Template:High-risk|merge=Template:High-use}}</noinclude>{{ombox
| type = content
| image = [[File:Ambox warning orange.svg|40px|alt=Warning|link=]]
| imageright =
| text =
'''This {{
#switch:{{NAMESPACE}}
|Module=Lua module
|#default=template
}} is used on <span class="plainlinks">[https://tools.wmflabs.org/templatecount/index.php?lang=en&namespace={{NAMESPACENUMBER:{{FULLPAGENAME}}}}&name={{urlencode:{{
#switch: {{SUBPAGENAME}}
| doc | sandbox = {{BASEPAGENAME}}
| #default = {{PAGENAME}}
}}}} {{#if:{{{1|}}}|{{formatnum:{{{1}}}}}|a very large number of}} pages]</span>.'''{{#if:{{{info|}}}|<br />{{{info}}}}}<br />To avoid large-scale disruption and unnecessary server load, any changes to it should first be tested in its [[{{
#switch: {{SUBPAGENAME}}
| doc | sandbox = {{SUBJECTSPACE}}:{{BASEPAGENAME}}
| #default = {{SUBJECTPAGENAME}}
}}/sandbox|/sandbox]] or [[{{
#switch: {{SUBPAGENAME}}
| doc | sandbox = {{SUBJECTSPACE}}:{{BASEPAGENAME}}
| #default = {{SUBJECTPAGENAME}}
}}/testcases|/testcases]] subpages{{
#switch:{{NAMESPACE}}
|Module=.
|#default= or in your own [[Wikipedia:Subpages#How to create user subpages|user subpage]].
}} The tested changes can then be added to this page in a single edit. Please consider discussing any changes {{#if:{{{2|}}}|at [[{{{2}}}]]|on the [[{{
#switch: {{SUBPAGENAME}}
| doc | sandbox = {{TALKSPACE}}:{{BASEPAGENAME}}
| #default = {{TALKPAGENAME}}
}}|talk page]]}} before implementing them.
}}<noinclude>
{{Documentation}}
<!-- Add categories to the /doc subpage; interwikis go to Wikidata, thank you! -->
</noinclude>
bee037a75203484d1f98a52c19070a554cd22a55
Template:Infobox/doc
10
10
35
34
2018-05-21T20:35:58Z
Wizzup
4
1 revision imported
wikitext
text/x-wiki
{{distinguish|Template:Userbox}}
{{Documentation subpage}}
<includeonly>{{#ifeq:{{#titleparts:{{PAGENAME}}|1|2}}|old | |{{High-risk|3000000+ pages, which is ≈ {{#expr:(300000000/{{NUMBEROFPAGES:R}}) round 0}}% of all |info=About [https://en.wikipedia.org/w/index.php?search=hastemplate%3Ainfobox&title=Special:Search&profile=default&fulltext=1&searchToken=69ttd5z1iekjo54r1z2qvq3uo 2,900,000] of the 3,000,000 pages (96%) are in mainspace; 2,900,000 of the {{NUMBEROFARTICLES}} pages in mainspace that qualify as articles transclude infoboxes ({{#expr:(290000000/{{NUMBEROFARTICLES:R}}) round 0}}%).}}{{Lua|Module:Infobox}}}}</includeonly>
{{Parameter names example
|name={{PAGENAME}} <!--|child |subbox |decat--> |title |above |subheader |subheader1 |subheader2={{{subheader2}}}<br/>......
|image|caption |image1|caption1 |image2|caption2={{{caption2}}}<br/>......
|header1=<div style="border-top:1px dashed #ccc;">{{{header1}}}<br/>{{nobold|( ''or'' )}}</div>
|label2={{{label1}}} |data2={{{data1}}}
|data3=( ''or'' ) |data4=<div style="padding-bottom:0.25em;border-bottom:1px dashed #ccc;">{{{data1}}}</div>
|header5={{{header2}}}<br/><div style="padding:0.75em 0 0.5em;">{{nobold|( ''or'' )}}</div>
|label6={{{label2}}} |data6={{{data2}}}
|data7=( ''or'' ) |data8=<div style="padding-bottom:0.25em;border-bottom:1px dashed #ccc;">{{{data2}}}</div>
|data9=<div style="padding:0.75em 0 0.5em;">( ''etc'' )</div>
|below
}}
This template is intended as a meta template: a template used for constructing other templates. '''Note''': In general, it is not meant for use directly in an article, but can be used on a one-off basis if required. [[Help:Infobox]] contains an introduction about the recommended content and design of infoboxes; [[Wikipedia:Manual of Style/Infoboxes]] contains additional style guidelines. See [[WP:List of infoboxes]] and [[:Category:Infobox templates]] for lists of prepared topic-specific infoboxes.
== Usage ==
Usage is similar to {{tl|navbox}}, but with an additional distinction. Each row on the table can contain either a header, or a label/data pair, or just a data cell. These are mutually exclusive states so if you define a row with both a header and a label/data pair, the label/data pair is ignored.
To insert an image somewhere other than at the top of the infobox, or to insert freeform data, use a row with only a data field.
== Optional control parameters ==
; name : If this parameter is present, "view/discuss/edit" links will be added to the bottom of the infobox, pointing to the named page. You may use the value <nowiki>{{subst:PAGENAME}}</nowiki>; however this is rarely what you want, because it will send users clicking these links in an infobox in an article to the template code rather than the data in the infobox that they probably want to change.
; child : See the [[#Embedding|Embedding]] section for details. If this is set to "yes", this child infobox should be titled but have no name parameter. This parameter is empty by default, set it to "yes" to activate it.
; subbox : See the [[#Subboxes|Subboxes]] section for details. If this is set to "yes", this subbox should be titled but have no name parameter. This parameter is empty by default, set to "yes" to activate it. It has no effect if the '''child''' parameter is also set to "yes".
; decat : If this is set to "yes", the current page will not be autocategorized in a maintenance category when the generated infobox has some problems or no visible data section. Leave empty by default or set to "yes" to activate it.
== Content parameters ==
=== Title ===
There are two different ways to put a title on an infobox. One contains the title inside the infobox's border in the uppermost cell of the table, the other puts as a caption it on top of the table. You can use both of them together if you like, or just one or the other, or even neither (though this is not recommended):
; title : Text to put in the caption over the top of the table (or as section header before the whole content of this table, if this is a child infobox). For [[Wikipedia:Manual of Style/Accessibility#Tables|accessibility reasons]], this is the most recommended alternative.
; above : Text to put within the uppermost cell of the table.
; subheader(n) : additional title fields which fit below {{{title}}} and {{{above}}}, but before images.
Examples:
{{Infobox
| name = Infobox/doc
| title = Text in caption over infobox
| subheader = Subheader of the infobox
| header = (the rest of the infobox goes here)
}}
<pre style="overflow:auto">
{{Infobox
| name = {{subst:PAGENAME}}
| title = Text in caption over infobox
| subheader = Subheader of the infobox
| header = (the rest of the infobox goes here)
}}
</pre>{{clear}}
{{Infobox
| name = Infobox/doc
| above = Text in uppermost cell of infobox
| subheader = Subheader of the infobox
| subheader2 = Second subheader of the infobox
| header = (the rest of the infobox goes here)
}}
<pre style="overflow:auto">
{{Infobox
| name = {{subst:PAGENAME}}
| above = Text in uppermost cell of infobox
| subheader = Subheader of the infobox
| subheader2 = Second subheader of the infobox
| header = (the rest of the infobox goes here)
}}
</pre>{{clear}}
=== Illustration images ===
; image(n) : images to display at the top of the template. Use full image syntax, for example <nowiki>[[File:example.png|200px|alt=Example alt text]]</nowiki>. Image is centered by default. See [[WP:ALT]] for more on alt text.
; caption(n) : Text to put underneath the images.
=== Main data ===
; header(n) : Text to use as a header in row n.
; label(n) : Text to use as a label in row n.
; data(n) : Text to display as data in row n.
Note: for any given value for (n), not all combinations of parameters are permitted. The presence of a {{para|header''(n)''}} will cause the corresponding {{para|data''(n)''}} (and {{para|rowclass''(n)''}} {{para|label''(n)''}}, see below) to be ignored; the absence of a {{para|data''(n)''}} will cause the corresponding {{para|label''(n)''}} to be ignored. Valid combinations for any single row are:
* {{para|class''(n)''}} {{para|header''(n)''}}
* {{para|rowclass''(n)''}} {{para|class''(n)''}} {{para|data''(n)''}}
* {{para|rowclass''(n)''}} {{para|label''(n)''}} {{para|class''(n)''}} {{para|data''(n)''}}
See the rendering of header4, label4, and data4 in the [[#Examples|Examples]] section below.
==== Number ranges ====
To allow flexibility when the layout of an infobox is changed, it may be helpful when developing an infobox to use non-contiguous numbers for header and label/data rows. Parameters for new rows can then be inserted in future without having to renumber existing parameters. For example:
<pre style="overflow:auto">
| header3 = Section 1
| label5 = Label A
| data5 = Data A
| label7 = Label C
| data7 = Data C
| header10 = Section 2
| label12 = Label D
| data12 = Data D
</pre>{{clear}}
It is also possible to automatically renumber parameter names by using [[User:Frietjes/infoboxgap.js]] or [[Module:IncrementParams]].
==== Making data fields optional ====
A row with a label but no data is not displayed. This allows for the easy creation of optional infobox content rows. To make a row optional use a parameter that defaults to an empty string, like so:
<pre style="overflow:auto">
| label5 = Population
| data5 = {{{population|}}}
</pre>{{clear}}
This way if an article doesn't define the population parameter in its infobox the row won't be displayed.
For more complex fields with pre-formatted contents that would still be present even if the parameter wasn't set, you can wrap it all in an "#if" statement to make the whole thing vanish when the parameter is not used. For instance, the "#if" statement in the following example reads "#if:the parameter ''mass'' has been supplied |then display it, followed by 'kg'":
<pre style="overflow:auto">
| label6 = Mass
| data6 = {{ #if: {{{mass|}}} | {{{mass}}} kg }}
</pre>{{clear}}
For more on #if, see [[meta:ParserFunctions##if:|here]].
==== Hiding headers when all data fields are hidden ====
You can also make headers optional in a similar way. Consider this example:
{{Infobox
| title = Example of an undesirable header
| header1 = Undesirable header
| label2 = Item 1 | data2 =
| label3 = Item 2 | data3 =
| label4 = Item 3 | data4 =
| header5 = Static header
| label6 = Static item | data6 = Static value
}}
<pre style="overflow:auto">
{{Infobox
| title = Example of an undesirable header
| header1 = Undesirable header
| label2 = Item 1 | data2 =
| label3 = Item 2 | data3 =
| label4 = Item 3 | data4 =
| header5 = Static header
| label6 = Static item | data6 = Static value
}}
</pre>{{clear}}
If you want the first header to appear only if one or more of the data fields that fall under it are filled, one could use the following pattern as an example of how to do it:
{{Infobox
| title = Example of an optional header
| header1 = {{ #if: {{{item1|}}}{{{item2|}}}{{{item3|}}} | Optional header }}
| label2 = Item 1 | data2 = {{{item1|}}}
| label3 = Item 2 | data3 = {{{item2|}}}
| label4 = Item 3 | data4 = {{{item3|}}}
| header5 = Static header
| label6 = Static item | data6 = Static value
}}
<pre style="overflow:auto">
{{Infobox
| title = Example of an optional header
| header1 = {{ #if: {{{item1|}}}{{{item2|}}}{{{item3|}}} | Optional header }}
| label2 = Item 1 | data2 = {{{item1|}}}
| label3 = Item 2 | data3 = {{{item2|}}}
| label4 = Item 3 | data4 = {{{item3|}}}
| header5 = Static header
| label6 = Static item | data6 = Static value
}}
</pre>{{clear}}
header1 will be shown if any of item1, item2, or item3 is defined. If none of the three parameters are defined the header won't be shown and no emty row appears before the next static content. The trick to this is that the "#if" returns false only if there is nothing whatsoever in the conditional section, so only if all three of item1, item2 and item3 are undefined will the if statement fail.
Note that such trick may be sometimes very complex to test if there are many data items whose value depends on complex tests (or when a data row is generated by a recursive invokation of this template as a [[#Subboxes|subbox]]). Ideally, the Lua module supporting this template should now support a new way to make each header row autohideable by detecting if there is at least one non-empty data row after that header row (a parameter like "autohide header1 = yes", for example, would remove the need to perform the "#if" test so that we can just to define "header1 = Optional header"),
=== Footer ===
; below : Text to put in the bottom cell. The bottom cell is intended for footnotes, see-also, and other such information.
== Presentation parameters ==
=== Italic titles ===
Titles of articles with infoboxes may be made italic, in line with [[WP:ITALICTITLE]], by passing the <code>italic title</code> parameter.
* Turn on italic titles by passing {{para|italic title|<nowiki>{{{italic title|}}}</nowiki>}} from the infobox.
* Turn off by default (notably because only Latin script may be safely rendered in this style and italic may be needed to distinguish foreign language from local English language only in that script, but would be difficult to read for other scripts) but allow some instances to be made italic by passing {{para|italic title|<nowiki>{{{italic title|no}}}</nowiki>}}
* Do not make any titles italic by not passing the parameter at all.
=== CSS styling ===
; bodystyle : Applies to the infobox table as a whole
; titlestyle : Applies only to the title caption. Adding a background color is usually inadvisable since the text is rendered "outside" the infobox.
; abovestyle : Applies only to the "above" cell at the top. The default style has font-size:125%; since this cell is usually used for a title, if you want to use the above cell for regular-sized text include "font-size:100%;" in the abovestyle.
; imagestyle : Applies to the cell the image is in. This includes the text of the image caption, but you should set text properties with captionstyle instead of imagestyle in case the caption is moved out of this cell in the future.
; captionstyle : Applies to the text of the image caption.
; rowstyle(n) : This parameter is inserted into the <code>style</code> attribute for the specified row.
; headerstyle : Applies to all header cells
; labelstyle : Applies to all label cells
; datastyle : Applies to all data cells
; belowstyle : Applies only to the below cell
=== HTML classes and microformats ===
; bodyclass : This parameter is inserted into the <code>class</code> attribute for the infobox as a whole.
; titleclass : This parameter is inserted into the <code>class</code> attribute for the infobox's '''title''' caption.
<!-- currently not implemented in Lua module
; aboverowclass : This parameter is inserted into the <code>class</code> attribute for the complete table row the '''above''' cell is on.
-->
; aboveclass : This parameter is inserted into the <code>class</code> attribute for the infobox's '''above''' cell.
; subheaderrowclass(n) : This parameter is inserted into the <code>class</code> attribute for the complete table row the '''subheader''' is on.
; subheaderclass(n) : This parameter is inserted into the <code>class</code> attribute for the infobox's '''subheader'''.
; imagerowclass(n) : These parameters are inserted into the <code>class</code> attribute for the complete table row their respective '''image''' is on.
; imageclass : This parameter is inserted into the <code>class</code> attribute for the '''image'''.
; rowclass(n) : This parameter is inserted into the <code>class</code> attribute for the specified row including the '''label''' and '''data''' cells.
; class(n) : This parameter is inserted into the <code>class</code> attribute for the '''data''' cell of the specified row. If there's no '''data''' cell it has no effect.
<!-- currently not implemented in Lua module
; belowrowclass : This parameter is inserted into the <code>class</code> attribute for the complete table row the '''below''' cell is on.
-->
; belowclass : This parameter is inserted into the <code>class</code> attribute for the infobox's '''below''' cell.
This template supports the addition of microformat information. This is done by adding "class" attributes to various data cells, indicating what kind of information is contained within. Multiple class names may be specified, separated by spaces, some of them being used as selectors for custom styling according to a project policy or to the skin selected in user preferences, others beig used for microformats.
To flag an infobox as containing [[hCard]] information, for example, add the following parameter:
<pre style="overflow:auto">
| bodyclass = vcard
</pre>{{clear}}
And for each row containing a data cell that's part of the vcard, add a corresponding class parameter:
<pre style="overflow:auto">
| class1 = fn
| class2 = org
| class3 = tel
</pre>{{clear}}
...and so forth. "above" and "title" can also be given classes, since these are usually used to display the name of the subject of the infobox.
See [[Wikipedia:WikiProject Microformats]] for more information on adding microformat information to Wikipedia, and [[microformat]] for more information on microformats in general.
== Examples ==
Notice how the row doesn't appear in the displayed infobox when a '''label''' is defined without an accompanying '''data''' cell, and how all of them are displayed when a '''header''' is defined on the same row as a '''data''' cell. Also notice that '''subheaders''' are not bold by default like the '''headers''' used to split the main data section, because this role is meant to be for the '''above''' cell :
{{Infobox
|name = Infobox/doc
|bodystyle =
|titlestyle =
|abovestyle = background:#cfc;
|subheaderstyle =
|title = Test Infobox
|above = Above text
|subheader = Subheader above image
|subheader2 = Second subheader
|imagestyle =
|captionstyle =
|image = [[File:Example-serious.jpg|200px|alt=Example alt text]]
|caption = Caption displayed below File:Example-serious.jpg
|headerstyle = background:#ccf;
|labelstyle = background:#ddf;
|datastyle =
|header1 = Header defined alone
| label1 =
| data1 =
|header2 =
| label2 = Label defined alone does not display (needs data, or is suppressed)
| data2 =
|header3 =
| label3 =
| data3 = Data defined alone
|header4 = All three defined (header, label, data, all with same number)
| label4 = does not display (same number as a header)
| data4 = does not display (same number as a header)
|header5 =
| label5 = Label and data defined (label)
| data5 = Label and data defined (data)
|belowstyle = background:#ddf;
|below = Below text
}}
<pre style="overflow:auto">
{{Infobox
|name = {{subst:PAGENAME}}
|bodystyle =
|titlestyle =
|abovestyle = background:#cfc;
|subheaderstyle =
|title = Test Infobox
|above = Above text
|subheader = Subheader above image
|subheader2 = Second subheader
|imagestyle =
|captionstyle =
| image = [[File:Example-serious.jpg|200px|alt=Example alt text]]
|caption = Caption displayed below Example-serious.jpg
|headerstyle = background:#ccf;
|labelstyle = background:#ddf;
|datastyle =
|header1 = Header defined alone
| label1 =
| data1 =
|header2 =
| label2 = Label defined alone does not display (needs data, or is suppressed)
| data2 =
|header3 =
| label3 =
| data3 = Data defined alone
|header4 = All three defined (header, label, data, all with same number)
| label4 = does not display (same number as a header)
| data4 = does not display (same number as a header)
|header5 =
| label5 = Label and data defined (label)
| data5 = Label and data defined (data)
|belowstyle = background:#ddf;
|below = Below text
}}
</pre>{{clear}}
For this example, the '''bodystyle''' and '''labelstyle''' parameters are used to adjust the infobox width and define a default width for the column of labels:
{{Infobox
|name = Infobox/doc
|bodystyle = width:20em
|titlestyle =
|title = Test Infobox
|headerstyle =
|labelstyle = width:33%
|datastyle =
|header1 =
| label1 = Label 1
| data1 = Data 1
|header2 =
| label2 = Label 2
| data2 = Data 2
|header3 =
| label3 = Label 3
| data3 = Data 3
|header4 = Header 4
| label4 =
| data4 =
|header5 =
| label5 = Label 5
| data5 = Data 5: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
|belowstyle =
|below = Below text
}}
<pre style="overflow: auto">
{{Infobox
|name = {{subst:PAGENAME}}
|bodystyle = width:20em
|titlestyle =
|title = Test Infobox
|headerstyle =
|labelstyle = width:33%
|datastyle =
|header1 =
| label1 = Label 1
| data1 = Data 1
|header2 =
| label2 = Label 2
| data2 = Data 2
|header3 =
| label3 = Label 3
| data3 = Data 3
|header4 = Header 4
| label4 =
| data4 =
|header5 =
| label5 = Label 5
| data5 = Data 5: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
|belowstyle =
|below = Below text
}}
</pre>{{clear}}
== Embedding ==
<!--Linked from [[Template:Subinfobox bodystyle/doc]]-->
One infobox template can be embedded into another using the {{para|child}} parameter or the {{para|embed}} parameter. This feature can be used to create a modular infobox, or to create better-defined logical sections. Long ago, it was necessary to use embedding in order to create infoboxes with more than 99 rows; but nowadays there's no limit to the number of rows that can be defined in a single instance of <code><nowiki>{{infobox}}</nowiki></code>.
{{Infobox
| title = Top level title
| data1 = {{Infobox | decat = yes | child = yes
| title = First subsection
| label1= Label 1.1
| data1 = Data 1.1
}}
| data2 = {{Infobox | decat = yes | child = yes
|title = Second subsection
| label1= Label 2.1
| data1 = Data 2.1
}}
| belowstyle =
| below = Below text
}}
<pre style="overflow:auto">
{{Infobox
| title = Top level title
| data1 = {{Infobox | decat = yes | child = yes
| title = First subsection
| label1= Label 1.1
| data1 = Data 1.1
}}
| data2 = {{Infobox | decat = yes | child = yes
|title = Second subsection
| label1= Label 2.1
| data1 = Data 2.1
}}
| belowstyle =
| below = Below text
}}
</pre>{{clear}}
Note, in the examples above, the child infobox is placed in a <code>data</code> field, not a <code>header</code> field. Notice that the section subheadings are not in bold font if bolding is not explicitly specified. To obtain bold section headings, place the child infobox in a '''header''' field (but not in a '''label''' field because it would not be displayed!), either using
{{Infobox
| title = Top level title
| header1 = {{Infobox | decat = yes | child = yes
| title = First subsection
| label1= Label 1.1
| data1 = Data 1.1
}}
| header2 = {{Infobox | decat = yes | child = yes
| title = Second subsection
| label1= Label 2.1
| data1 = Data 2.1
}}
| belowstyle =
| below = Below text
}}
<pre style="overflow:auto">
{{Infobox
| title = Top level title
| header1 = {{Infobox | decat = yes | child = yes
| title = First subsection
| label1= Label 1.1
| data1 = Data 1.1
}}
| header2 = {{Infobox | decat = yes | child = yes
| title = Second subsection
| label1= Label 2.1
| data1 = Data 2.1
}}
| belowstyle =
| below = Below text
}}
</pre>{{clear}}
or,
{{Infobox
| title = Top level title
| header1 = First subsection
{{Infobox | decat = yes | child = yes
| label1 = Label 1.1
| data1 = Data 1.1
}}
| header2 = Second subsection
{{Infobox | decat = yes | child = yes
| label1 = Label 2.1
| data1 = Data 2.1
}}
| belowstyle =
| below = Below text
}}
<pre style="overflow:auto">
{{Infobox
| title = Top level title
| header1 = First subsection
{{Infobox | decat = yes | child = yes
| label1 = Label 1.1
| data1 = Data 1.1
}}
| header2 = Second subsection
{{Infobox | decat = yes | child = yes
| label1 = Label 2.1
| data1 = Data 2.1
}}
| belowstyle =
| below = Below text
}}
</pre>{{clear}}
Note that omitting the {{para|title}} parameter, and not including any text preceding the embedded infobox, may result in spurious blank table rows, creating gaps in the visual presentation.
[[Wikipedia:WikiProject Infoboxes/embed]] includes some links to Wikipedia articles which include infoboxes embedded within other infoboxes.
== Subboxes ==
An alternative method for embedding is to use {{para|subbox|yes}}, which removes the outer border from the infobox, but preserves the interior structure. One feature of this approach is that the parent and child boxes need not have the same structure, and the label and data fields are not aligned between the parent and child boxes because they are not in the same parent table.
{{Infobox
| headerstyle = background-color:#eee;
| labelstyle = background-color:#eee;
| header1 = Main 1
| header2 = Main 2
| data3 = {{Infobox | subbox = yes
| headerstyle = background-color:#ccc;
| labelstyle = background-color:#ddd;
| header1 = Sub 3-1
| header2 = Sub 3-2
| label3 = Label 3-3 | data3 = Data 3-3
}}
| data4 = {{Infobox | subbox = yes
| labelstyle = background-color:#ccc;
| label1 = Label 4-1 | data1 = Data 4-1
}}
| label5 = Label 5 | data5 = Data 5
| header6 = Main 6
}}
<source lang="sass" style="overflow:auto">
{{Infobox
| headerstyle = background-color:#eee;
| labelstyle = background-color:#eee;
| header1 = Main 1
| header2 = Main 2
| data3 = {{Infobox | subbox = yes
| headerstyle = background-color:#ccc;
| labelstyle = background-color:#ddd;
| header1 = Sub 3-1
| header2 = Sub 3-2
| label3 = Label 3-3 | data3 = Data 3-3
}}
| data4 = {{Infobox | subbox = yes
| labelstyle = background-color:#ccc;
| label1 = Label 4-1 | data1 = Data 4-1
}}
| label5 = Label 5 | data5 = Data 5
| header6 = Main 6
}}
</source>{{clear}}
Similar embedding techniques may be used within content parameters of some other templates generating tables (such as [[:Template:Sidebar|Sidebar]]) :
{{Sidebar
| navbar = off
| headingstyle = background-color:#eee;
| heading1 = Heading 1
| heading2 = Heading 2
| content3 = {{Infobox | subbox = yes
| headerstyle = background-color:#ccc;
| labelstyle = background-color:#ddd;
| header1 = Sub 3-1
| header2 = Sub 3-2
| label3 = Label 3-3 | data3 = Data 3-3
}}
| content4 = {{Infobox | subbox = yes
| labelstyle = background-color:#ccc;
| label1 = Label 4-1 | data1 = Data 4-1
}}
| heading5 = Heading 5
}}
<source lang="sass" style="overflow:auto">
{{Sidebar
| navbar = off
| headingstyle = background-color:#eee;
| heading1 = Heading 1
| heading2 = Heading 2
| content3 = {{Infobox | subbox = yes
| headerstyle = background-color:#ccc;
| labelstyle = background-color:#ddd;
| header1 = Sub 3-1
| header2 = Sub 3-2
| label3 = Label 3-3 | data3 = Data 3-3
}}
| content4 = {{Infobox | subbox = yes
| labelstyle = background-color:#ccc;
| label1 = Label 4-1 | data1 = Data 4-1
}}
| heading5 = Heading 5
}}
</source>{{clear}}
Note that the default padding of the parent data cell containing each subbox is still visible, so the subboxes are slightly narrower than the parent box and there's a higher vertical spacing between standard cells of the parent box than between cells of distinct subboxes.
== Controlling line-breaking in embedded bulletless lists ==
Template {{tlx|nbsp}} may be used with {{tlx|wbr}} and {{tlx|nowrap}} to control line-breaking in bulletless lists embedded in infoboxes (e.g. cast list in {{tlx|Infobox film}}), to prevent wrapped long entries from being confused with multiple entries. See [[Template:Wbr/doc#Controlling line-breaking in infoboxes]] for details.
== Full blank syntax ==
(Note: there is no limit to the number of possible rows; only 20 are given below since infoboxes larger than that will be relatively rare. Just extend the numbering as needed. The microformat "class" parameters are also omitted as they are not commonly used.)
<pre style="overflow:auto">
{{Infobox
| name = {{subst:PAGENAME}}
| child = {{{child|}}}
| subbox = {{{subbox|}}}
| italic title = {{{italic title|no}}}
| bodystyle =
| titlestyle =
| abovestyle =
| subheaderstyle =
| title =
| above =
| subheader =
| imagestyle =
| captionstyle =
| image =
| caption =
| image2 =
| caption2 =
| headerstyle =
| labelstyle =
| datastyle =
| header1 =
| label1 =
| data1 =
| header2 =
| label2 =
| data2 =
| header3 =
| label3 =
| data3 =
| header4 =
| label4 =
| data4 =
| header5 =
| label5 =
| data5 =
| header6 =
| label6 =
| data6 =
| header7 =
| label7 =
| data7 =
| header8 =
| label8 =
| data8 =
| header9 =
| label9 =
| data9 =
| header10 =
| label10 =
| data10 =
| header11 =
| label11 =
| data11 =
| header12 =
| label12 =
| data12 =
| header13 =
| label13 =
| data13 =
| header14 =
| label14 =
| data14 =
| header15 =
| label15 =
| data15 =
| header16 =
| label16 =
| data16 =
| header17 =
| label17 =
| data17 =
| header18 =
| label18 =
| data18 =
| header19 =
| label19 =
| data19 =
| header20 =
| label20 =
| data20 =
| belowstyle =
| below =
}}
</pre>{{clear}}
{{Help:Infobox/user style}}
== Porting to other MediaWikis ==
The infobox template requires the [[:mw:Extension:Scribunto|Scribunto]] extension and [[mw:Manual:Using content from Wikipedia#HTMLTidy|HTMLTidy]] to be installed. It may not work with other MediaWikis. [[Wikipedia:WikiProject Transwiki|WikiProject Transwiki]] has a version of this template that has been modified to work on other MediaWikis.
==See also==
* [[Module:Infobox]], the [[WP:LUA|Lua]] module on which this template is based
* [[Special:Permalink/558855956|Template:Infobox/old]], the previous ParserFunctions implementation
* {{tl|Infobox3cols}}
* {{tl|Navbox}} and {{tl|Sidebar}}
* [[Wikipedia:List of infoboxes|List of infoboxes]]
* [[:Module:InfoboxImage]]
* Maintenance categories:
** [[:Category:Articles which use infobox templates with no data rows]]
** [[:Category:Pages which use embedded infobox templates with the title parameter]]
<includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox | |
[[Category:Infobox templates| ]]
[[Category:Wikipedia metatemplates|Infobox]]
[[Category:Templates generating microformats]]
}}</includeonly>
55041172c405c4af692b5014121cea8cd1547b58
Template:Lua
10
11
37
36
2018-05-21T20:35:58Z
Wizzup
4
1 revision imported
wikitext
text/x-wiki
<includeonly>{{#invoke:Lua banner|main}}</includeonly><noinclude>
{{Lua|Module:Lua banner}}
{{documentation}}
<!-- Categories go on the /doc subpage and interwikis go on Wikidata. -->
</noinclude>
dba3962144dacd289dbc34f50fbe0a7bf6d7f2f7
Template:Nobold
10
12
39
38
2018-05-21T20:35:58Z
Wizzup
4
1 revision imported
wikitext
text/x-wiki
<span style="font-weight:normal;">{{{1}}}</span><noinclude>
{{documentation}}
<!-- PLEASE ADD CATEGORIES AND INTERWIKIS TO THE /doc SUBPAGE, THANKS -->
</noinclude>
a5bfaf2d8a3e54e084e1c261e8f9929dc7d83553
Template:Ombox
10
13
41
40
2018-05-21T20:35:59Z
Wizzup
4
1 revision imported
wikitext
text/x-wiki
{{#invoke:Message box|ombox}}<noinclude>
{{documentation}}
<!-- Categories go on the /doc subpage, and interwikis go on Wikidata. -->
</noinclude>
0e54065432d540737b9e56c4e3a8e7f74d4534ea
Template:Para
10
14
43
42
2018-05-21T20:35:59Z
Wizzup
4
1 revision imported
wikitext
text/x-wiki
<code class="nowrap" {{#if:{{{plain|}}}|style="border:none;background-color:inherit;color:inherit;"}}>|{{#if:{{{1|}}}|{{{1}}}=}}{{{2|}}}</code><noinclude>
{{Documentation}}
<!--Categories and interwikis go near the bottom of the /doc subpage.-->
</noinclude>
66770157bb51b0aabb5b874e4f1bb8f04c80915c
Template:Parameter names example
10
15
45
44
2018-05-21T20:35:59Z
Wizzup
4
1 revision imported
wikitext
text/x-wiki
<includeonly>{{#invoke:Parameter names example|main}}</includeonly><noinclude>
{{hatnote|[[Template:Generic template demo]] and [[Template:Pnex]] redirect here.}}<!--(hatnote more noticeable here than within Documentation)-->
{{Documentation}}
</noinclude>
6b63b13c0cf74f1f8d250aa644a6bd27e19052f6
Template:Remove first word
10
16
47
46
2018-05-21T20:36:00Z
Wizzup
4
1 revision imported
wikitext
text/x-wiki
{{<includeonly>safesubst:</includeonly>#invoke:String|replace|source={{{1}}}|pattern=^[^{{{sep|%s}}}]*{{{sep|%s}}}*|replace=|plain=false}}<noinclude>{{Documentation}}</noinclude>
df7a9e692f68be1581be06af5f51eaed5483b4c8
Template:Sidebar
10
17
49
48
2018-05-21T20:36:00Z
Wizzup
4
1 revision imported
wikitext
text/x-wiki
<includeonly>{{#invoke:Sidebar|sidebar}}</includeonly><noinclude>{{documentation}}</noinclude>
199b678d734b35e4002d02267999c5c41fafadcf
Template:Str left
10
18
51
50
2018-05-21T20:36:00Z
Wizzup
4
1 revision imported
wikitext
text/x-wiki
<includeonly>{{safesubst:padleft:|{{{2|1}}}|{{{1}}}}}</includeonly><noinclude>
{{documentation}}
<!-- Categories go on the /doc subpage, and interwikis go on Wikidata. -->
</noinclude>
2048b0d7b35e156528655b1d090e8b5ffab3f400
Template:Tl
10
19
53
52
2018-05-21T20:36:00Z
Wizzup
4
1 revision imported
wikitext
text/x-wiki
{{[[Template:{{{1}}}|{{{1}}}]]}}<noinclude>
{{documentation}}
<!-- Categories go on the /doc subpage and interwikis go on Wikidata. -->
</noinclude>
91be693cd63410db06fc933eddb412ba433564dc
Template:Tlx
10
20
55
54
2018-05-21T20:36:01Z
Wizzup
4
1 revision imported
wikitext
text/x-wiki
<includeonly><!--
--><code><!--
--><nowiki>{{</nowiki>{{#if:{{{subst|}}} |[[Help:Substitution|subst]]:}}<!--
-->[[{{{LANG|}}}{{{SISTER|}}}{{ns:Template}}:{{{1|}}}|{{{1|}}}]]<!--
-->{{#if:{{{2|}}} ||{{{2}}}}}<!--
-->{{#if:{{{3|}}} ||{{{3}}}}}<!--
-->{{#if:{{{4|}}} ||{{{4}}}}}<!--
-->{{#if:{{{5|}}} ||{{{5}}}}}<!--
-->{{#if:{{{6|}}} ||{{{6}}}}}<!--
-->{{#if:{{{7|}}} ||{{{7}}}}}<!--
-->{{#if:{{{8|}}} ||{{{8}}}}}<!--
-->{{#if:{{{9|}}} ||{{{9}}}}}<!--
-->{{#if:{{{10|}}} ||{{{10}}}}}<!--
-->{{#if:{{{11|}}} ||{{{11}}}}}<!--
-->{{#if:{{{12|}}} ||''...''}}<!--
--><nowiki>}}</nowiki><!--
--></code><!--
--></includeonly><noinclude>
{{Documentation}}</noinclude>
0351b5b369b3924647b962552caf55410c3c3007
Help:Infobox/user style
12
21
57
56
2018-05-21T20:36:01Z
Wizzup
4
1 revision imported
wikitext
text/x-wiki
{{{heading|
==Infoboxes and user style ==
}}}
Users can have [[WP:User style|user CSS]] that hides<!--, moves, or makes collapsible--> any infoboxes in their own browsers.
To hide all infoboxes, add the following to [[Special:MyPage/common.css]] (for all [[WP:Skin|skins]], or [[Special:MyPage/skin.css]] for just the current skin), on a line by itself:
<source lang="css">.infobox { display: none; }</source>
Alternatively, you can add the following code to [[Special:MyPage/common.js|your common.js]] or into a browser user script that is executed by an extension like [[Greasemonkey]]:
<source lang="js">$('.infobox').hide();</source>
Be aware that although, per [[WP:Manual of Style/Infoboxes]], all information in an infobox ideally should also be found in the main body of an article, there isn't perfect compliance with this guideline. For example, the full taxonomic hierarchy in {{tl|Taxobox}}, and the OMIM and other medical database codes of {{tl|Infobox disease}} are often not found in the main article content. The infobox is also often the location of the most significant, even only, image in an article.<!--
Needs Special:Mypage/common.js options for:
* Making infoboxes collapsible
** Making them auto-collapsed
* Moving infoboxes to bottom of page
--><noinclude>
{{Documentation|content=
This documentation snippet is transcluded at [[Help:Infobox]], [[Template:Infobox/doc]], [[WP:Customisation#Hiding specific messages]], [[Help:User style]], [[WP:Manual of Style/Infoboxes]], and other places where this information is relevant.
As a template, this snippet takes a {{para|heading}} parameter to replace the level-2 <code>==Infoboxes and user style==</code> section heading code, as needed. E.g, for a <code>=== ... ===</code> level-3 heading: <code><nowiki>heading={{=}}{{=}}{{=}}Infoboxes and user style{{=}}{{=}}{{=}}</nowiki></code>
}}
</noinclude>
a6d5906a521350394da9a9792a94e98bc136b88f
Module:Arguments
828
22
59
58
2018-05-21T20:36:02Z
Wizzup
4
1 revision imported
Scribunto
text/plain
-- This module provides easy processing of arguments passed to Scribunto from
-- #invoke. It is intended for use by other Lua modules, and should not be
-- called from #invoke directly.
local libraryUtil = require('libraryUtil')
local checkType = libraryUtil.checkType
local arguments = {}
-- Generate four different tidyVal functions, so that we don't have to check the
-- options every time we call it.
local function tidyValDefault(key, val)
if type(val) == 'string' then
val = val:match('^%s*(.-)%s*$')
if val == '' then
return nil
else
return val
end
else
return val
end
end
local function tidyValTrimOnly(key, val)
if type(val) == 'string' then
return val:match('^%s*(.-)%s*$')
else
return val
end
end
local function tidyValRemoveBlanksOnly(key, val)
if type(val) == 'string' then
if val:find('%S') then
return val
else
return nil
end
else
return val
end
end
local function tidyValNoChange(key, val)
return val
end
local function matchesTitle(given, title)
local tp = type( given )
return (tp == 'string' or tp == 'number') and mw.title.new( given ).prefixedText == title
end
local translate_mt = { __index = function(t, k) return k end }
function arguments.getArgs(frame, options)
checkType('getArgs', 1, frame, 'table', true)
checkType('getArgs', 2, options, 'table', true)
frame = frame or {}
options = options or {}
--[[
-- Set up argument translation.
--]]
options.translate = options.translate or {}
if getmetatable(options.translate) == nil then
setmetatable(options.translate, translate_mt)
end
if options.backtranslate == nil then
options.backtranslate = {}
for k,v in pairs(options.translate) do
options.backtranslate[v] = k
end
end
if options.backtranslate and getmetatable(options.backtranslate) == nil then
setmetatable(options.backtranslate, {
__index = function(t, k)
if options.translate[k] ~= k then
return nil
else
return k
end
end
})
end
--[[
-- Get the argument tables. If we were passed a valid frame object, get the
-- frame arguments (fargs) and the parent frame arguments (pargs), depending
-- on the options set and on the parent frame's availability. If we weren't
-- passed a valid frame object, we are being called from another Lua module
-- or from the debug console, so assume that we were passed a table of args
-- directly, and assign it to a new variable (luaArgs).
--]]
local fargs, pargs, luaArgs
if type(frame.args) == 'table' and type(frame.getParent) == 'function' then
if options.wrappers then
--[[
-- The wrappers option makes Module:Arguments look up arguments in
-- either the frame argument table or the parent argument table, but
-- not both. This means that users can use either the #invoke syntax
-- or a wrapper template without the loss of performance associated
-- with looking arguments up in both the frame and the parent frame.
-- Module:Arguments will look up arguments in the parent frame
-- if it finds the parent frame's title in options.wrapper;
-- otherwise it will look up arguments in the frame object passed
-- to getArgs.
--]]
local parent = frame:getParent()
if not parent then
fargs = frame.args
else
local title = parent:getTitle():gsub('/sandbox$', '')
local found = false
if matchesTitle(options.wrappers, title) then
found = true
elseif type(options.wrappers) == 'table' then
for _,v in pairs(options.wrappers) do
if matchesTitle(v, title) then
found = true
break
end
end
end
-- We test for false specifically here so that nil (the default) acts like true.
if found or options.frameOnly == false then
pargs = parent.args
end
if not found or options.parentOnly == false then
fargs = frame.args
end
end
else
-- options.wrapper isn't set, so check the other options.
if not options.parentOnly then
fargs = frame.args
end
if not options.frameOnly then
local parent = frame:getParent()
pargs = parent and parent.args or nil
end
end
if options.parentFirst then
fargs, pargs = pargs, fargs
end
else
luaArgs = frame
end
-- Set the order of precedence of the argument tables. If the variables are
-- nil, nothing will be added to the table, which is how we avoid clashes
-- between the frame/parent args and the Lua args.
local argTables = {fargs}
argTables[#argTables + 1] = pargs
argTables[#argTables + 1] = luaArgs
--[[
-- Generate the tidyVal function. If it has been specified by the user, we
-- use that; if not, we choose one of four functions depending on the
-- options chosen. This is so that we don't have to call the options table
-- every time the function is called.
--]]
local tidyVal = options.valueFunc
if tidyVal then
if type(tidyVal) ~= 'function' then
error(
"bad value assigned to option 'valueFunc'"
.. '(function expected, got '
.. type(tidyVal)
.. ')',
2
)
end
elseif options.trim ~= false then
if options.removeBlanks ~= false then
tidyVal = tidyValDefault
else
tidyVal = tidyValTrimOnly
end
else
if options.removeBlanks ~= false then
tidyVal = tidyValRemoveBlanksOnly
else
tidyVal = tidyValNoChange
end
end
--[[
-- Set up the args, metaArgs and nilArgs tables. args will be the one
-- accessed from functions, and metaArgs will hold the actual arguments. Nil
-- arguments are memoized in nilArgs, and the metatable connects all of them
-- together.
--]]
local args, metaArgs, nilArgs, metatable = {}, {}, {}, {}
setmetatable(args, metatable)
local function mergeArgs(tables)
--[[
-- Accepts multiple tables as input and merges their keys and values
-- into one table. If a value is already present it is not overwritten;
-- tables listed earlier have precedence. We are also memoizing nil
-- values, which can be overwritten if they are 's' (soft).
--]]
for _, t in ipairs(tables) do
for key, val in pairs(t) do
if metaArgs[key] == nil and nilArgs[key] ~= 'h' then
local tidiedVal = tidyVal(key, val)
if tidiedVal == nil then
nilArgs[key] = 's'
else
metaArgs[key] = tidiedVal
end
end
end
end
end
--[[
-- Define metatable behaviour. Arguments are memoized in the metaArgs table,
-- and are only fetched from the argument tables once. Fetching arguments
-- from the argument tables is the most resource-intensive step in this
-- module, so we try and avoid it where possible. For this reason, nil
-- arguments are also memoized, in the nilArgs table. Also, we keep a record
-- in the metatable of when pairs and ipairs have been called, so we do not
-- run pairs and ipairs on the argument tables more than once. We also do
-- not run ipairs on fargs and pargs if pairs has already been run, as all
-- the arguments will already have been copied over.
--]]
metatable.__index = function (t, key)
--[[
-- Fetches an argument when the args table is indexed. First we check
-- to see if the value is memoized, and if not we try and fetch it from
-- the argument tables. When we check memoization, we need to check
-- metaArgs before nilArgs, as both can be non-nil at the same time.
-- If the argument is not present in metaArgs, we also check whether
-- pairs has been run yet. If pairs has already been run, we return nil.
-- This is because all the arguments will have already been copied into
-- metaArgs by the mergeArgs function, meaning that any other arguments
-- must be nil.
--]]
if type(key) == 'string' then
key = options.translate[key]
end
local val = metaArgs[key]
if val ~= nil then
return val
elseif metatable.donePairs or nilArgs[key] then
return nil
end
for _, argTable in ipairs(argTables) do
local argTableVal = tidyVal(key, argTable[key])
if argTableVal ~= nil then
metaArgs[key] = argTableVal
return argTableVal
end
end
nilArgs[key] = 'h'
return nil
end
metatable.__newindex = function (t, key, val)
-- This function is called when a module tries to add a new value to the
-- args table, or tries to change an existing value.
if type(key) == 'string' then
key = options.translate[key]
end
if options.readOnly then
error(
'could not write to argument table key "'
.. tostring(key)
.. '"; the table is read-only',
2
)
elseif options.noOverwrite and args[key] ~= nil then
error(
'could not write to argument table key "'
.. tostring(key)
.. '"; overwriting existing arguments is not permitted',
2
)
elseif val == nil then
--[[
-- If the argument is to be overwritten with nil, we need to erase
-- the value in metaArgs, so that __index, __pairs and __ipairs do
-- not use a previous existing value, if present; and we also need
-- to memoize the nil in nilArgs, so that the value isn't looked
-- up in the argument tables if it is accessed again.
--]]
metaArgs[key] = nil
nilArgs[key] = 'h'
else
metaArgs[key] = val
end
end
local function translatenext(invariant)
local k, v = next(invariant.t, invariant.k)
invariant.k = k
if k == nil then
return nil
elseif type(k) ~= 'string' or not options.backtranslate then
return k, v
else
local backtranslate = options.backtranslate[k]
if backtranslate == nil then
-- Skip this one. This is a tail call, so this won't cause stack overflow
return translatenext(invariant)
else
return backtranslate, v
end
end
end
metatable.__pairs = function ()
-- Called when pairs is run on the args table.
if not metatable.donePairs then
mergeArgs(argTables)
metatable.donePairs = true
end
return translatenext, { t = metaArgs }
end
local function inext(t, i)
-- This uses our __index metamethod
local v = t[i + 1]
if v ~= nil then
return i + 1, v
end
end
metatable.__ipairs = function (t)
-- Called when ipairs is run on the args table.
return inext, t, 0
end
return args
end
return arguments
3134ecce8429b810d445e29eae115e2ae4c36c53
Module:Distinguish
828
23
61
60
2018-05-21T20:36:02Z
Wizzup
4
1 revision imported
Scribunto
text/plain
local mHatnote = require('Module:Hatnote')
local mHatlist = require('Module:Hatnote list')
local mArguments --initialize lazily
local mTableTools --initialize lazily
local libraryUtil = require('libraryUtil')
local checkType = libraryUtil.checkType
local p = {}
function p.distinguish(frame)
mArguments = require('Module:Arguments')
mTableTools = require('Module:TableTools')
local args = mArguments.getArgs(frame)
local selfref = args.selfref
local text = args.text
args = mTableTools.compressSparseArray(args)
return p._distinguish(args, text, selfref)
end
function p._distinguish(args, text, selfref)
checkType("_distinguish", 1, args, 'table')
if #args == 0 and not text then return '' end
local text = string.format(
'Not to be confused with %s.',
text or mHatlist.orList(args, true)
)
hnOptions = {selfref = selfref}
return mHatnote._hatnote(text, hnOptions)
end
return p
0364d14af01fc656ad1d898c5036fbd12a7ca938
Module:Documentation
828
24
63
62
2018-05-21T20:36:02Z
Wizzup
4
1 revision imported
Scribunto
text/plain
-- This module implements {{documentation}}.
-- Get required modules.
local getArgs = require('Module:Arguments').getArgs
local messageBox = require('Module:Message box')
-- Get the config table.
local cfg = mw.loadData('Module:Documentation/config')
local p = {}
-- Often-used functions.
local ugsub = mw.ustring.gsub
----------------------------------------------------------------------------
-- Helper functions
--
-- These are defined as local functions, but are made available in the p
-- table for testing purposes.
----------------------------------------------------------------------------
local function message(cfgKey, valArray, expectType)
--[[
-- Gets a message from the cfg table and formats it if appropriate.
-- The function raises an error if the value from the cfg table is not
-- of the type expectType. The default type for expectType is 'string'.
-- If the table valArray is present, strings such as $1, $2 etc. in the
-- message are substituted with values from the table keys [1], [2] etc.
-- For example, if the message "foo-message" had the value 'Foo $2 bar $1.',
-- message('foo-message', {'baz', 'qux'}) would return "Foo qux bar baz."
--]]
local msg = cfg[cfgKey]
expectType = expectType or 'string'
if type(msg) ~= expectType then
error('message: type error in message cfg.' .. cfgKey .. ' (' .. expectType .. ' expected, got ' .. type(msg) .. ')', 2)
end
if not valArray then
return msg
end
local function getMessageVal(match)
match = tonumber(match)
return valArray[match] or error('message: no value found for key $' .. match .. ' in message cfg.' .. cfgKey, 4)
end
local ret = ugsub(msg, '$([1-9][0-9]*)', getMessageVal)
return ret
end
p.message = message
local function makeWikilink(page, display)
if display then
return mw.ustring.format('[[%s|%s]]', page, display)
else
return mw.ustring.format('[[%s]]', page)
end
end
p.makeWikilink = makeWikilink
local function makeCategoryLink(cat, sort)
local catns = mw.site.namespaces[14].name
return makeWikilink(catns .. ':' .. cat, sort)
end
p.makeCategoryLink = makeCategoryLink
local function makeUrlLink(url, display)
return mw.ustring.format('[%s %s]', url, display)
end
p.makeUrlLink = makeUrlLink
local function makeToolbar(...)
local ret = {}
local lim = select('#', ...)
if lim < 1 then
return nil
end
for i = 1, lim do
ret[#ret + 1] = select(i, ...)
end
return '<small style="font-style: normal;">(' .. table.concat(ret, ' | ') .. ')</small>'
end
p.makeToolbar = makeToolbar
----------------------------------------------------------------------------
-- Argument processing
----------------------------------------------------------------------------
local function makeInvokeFunc(funcName)
return function (frame)
local args = getArgs(frame, {
valueFunc = function (key, value)
if type(value) == 'string' then
value = value:match('^%s*(.-)%s*$') -- Remove whitespace.
if key == 'heading' or value ~= '' then
return value
else
return nil
end
else
return value
end
end
})
return p[funcName](args)
end
end
----------------------------------------------------------------------------
-- Main function
----------------------------------------------------------------------------
p.main = makeInvokeFunc('_main')
function p._main(args)
--[[
-- This function defines logic flow for the module.
-- @args - table of arguments passed by the user
--
-- Messages:
-- 'main-div-id' --> 'template-documentation'
-- 'main-div-classes' --> 'template-documentation iezoomfix'
--]]
local env = p.getEnvironment(args)
local root = mw.html.create()
root
:wikitext(p.protectionTemplate(env))
:wikitext(p.sandboxNotice(args, env))
-- This div tag is from {{documentation/start box}}, but moving it here
-- so that we don't have to worry about unclosed tags.
:tag('div')
:attr('id', message('main-div-id'))
:addClass(message('main-div-classes'))
:newline()
:wikitext(p._startBox(args, env))
:wikitext(p._content(args, env))
:tag('div')
:css('clear', 'both') -- So right or left floating items don't stick out of the doc box.
:newline()
:done()
:done()
:wikitext(p._endBox(args, env))
:wikitext(p.addTrackingCategories(env))
return tostring(root)
end
----------------------------------------------------------------------------
-- Environment settings
----------------------------------------------------------------------------
function p.getEnvironment(args)
--[[
-- Returns a table with information about the environment, including title objects and other namespace- or
-- path-related data.
-- @args - table of arguments passed by the user
--
-- Title objects include:
-- env.title - the page we are making documentation for (usually the current title)
-- env.templateTitle - the template (or module, file, etc.)
-- env.docTitle - the /doc subpage.
-- env.sandboxTitle - the /sandbox subpage.
-- env.testcasesTitle - the /testcases subpage.
-- env.printTitle - the print version of the template, located at the /Print subpage.
--
-- Data includes:
-- env.protectionLevels - the protection levels table of the title object.
-- env.subjectSpace - the number of the title's subject namespace.
-- env.docSpace - the number of the namespace the title puts its documentation in.
-- env.docpageBase - the text of the base page of the /doc, /sandbox and /testcases pages, with namespace.
-- env.compareUrl - URL of the Special:ComparePages page comparing the sandbox with the template.
--
-- All table lookups are passed through pcall so that errors are caught. If an error occurs, the value
-- returned will be nil.
--]]
local env, envFuncs = {}, {}
-- Set up the metatable. If triggered we call the corresponding function in the envFuncs table. The value
-- returned by that function is memoized in the env table so that we don't call any of the functions
-- more than once. (Nils won't be memoized.)
setmetatable(env, {
__index = function (t, key)
local envFunc = envFuncs[key]
if envFunc then
local success, val = pcall(envFunc)
if success then
env[key] = val -- Memoise the value.
return val
end
end
return nil
end
})
function envFuncs.title()
-- The title object for the current page, or a test page passed with args.page.
local title
local titleArg = args.page
if titleArg then
title = mw.title.new(titleArg)
else
title = mw.title.getCurrentTitle()
end
return title
end
function envFuncs.templateTitle()
--[[
-- The template (or module, etc.) title object.
-- Messages:
-- 'sandbox-subpage' --> 'sandbox'
-- 'testcases-subpage' --> 'testcases'
--]]
local subjectSpace = env.subjectSpace
local title = env.title
local subpage = title.subpageText
if subpage == message('sandbox-subpage') or subpage == message('testcases-subpage') then
return mw.title.makeTitle(subjectSpace, title.baseText)
else
return mw.title.makeTitle(subjectSpace, title.text)
end
end
function envFuncs.docTitle()
--[[
-- Title object of the /doc subpage.
-- Messages:
-- 'doc-subpage' --> 'doc'
--]]
local title = env.title
local docname = args[1] -- User-specified doc page.
local docpage
if docname then
docpage = docname
else
docpage = env.docpageBase .. '/' .. message('doc-subpage')
end
return mw.title.new(docpage)
end
function envFuncs.sandboxTitle()
--[[
-- Title object for the /sandbox subpage.
-- Messages:
-- 'sandbox-subpage' --> 'sandbox'
--]]
return mw.title.new(env.docpageBase .. '/' .. message('sandbox-subpage'))
end
function envFuncs.testcasesTitle()
--[[
-- Title object for the /testcases subpage.
-- Messages:
-- 'testcases-subpage' --> 'testcases'
--]]
return mw.title.new(env.docpageBase .. '/' .. message('testcases-subpage'))
end
function envFuncs.printTitle()
--[[
-- Title object for the /Print subpage.
-- Messages:
-- 'print-subpage' --> 'Print'
--]]
return env.templateTitle:subPageTitle(message('print-subpage'))
end
function envFuncs.protectionLevels()
-- The protection levels table of the title object.
return env.title.protectionLevels
end
function envFuncs.subjectSpace()
-- The subject namespace number.
return mw.site.namespaces[env.title.namespace].subject.id
end
function envFuncs.docSpace()
-- The documentation namespace number. For most namespaces this is the same as the
-- subject namespace. However, pages in the Article, File, MediaWiki or Category
-- namespaces must have their /doc, /sandbox and /testcases pages in talk space.
local subjectSpace = env.subjectSpace
if subjectSpace == 0 or subjectSpace == 6 or subjectSpace == 8 or subjectSpace == 14 then
return subjectSpace + 1
else
return subjectSpace
end
end
function envFuncs.docpageBase()
-- The base page of the /doc, /sandbox, and /testcases subpages.
-- For some namespaces this is the talk page, rather than the template page.
local templateTitle = env.templateTitle
local docSpace = env.docSpace
local docSpaceText = mw.site.namespaces[docSpace].name
-- Assemble the link. docSpace is never the main namespace, so we can hardcode the colon.
return docSpaceText .. ':' .. templateTitle.text
end
function envFuncs.compareUrl()
-- Diff link between the sandbox and the main template using [[Special:ComparePages]].
local templateTitle = env.templateTitle
local sandboxTitle = env.sandboxTitle
if templateTitle.exists and sandboxTitle.exists then
local compareUrl = mw.uri.fullUrl(
'Special:ComparePages',
{page1 = templateTitle.prefixedText, page2 = sandboxTitle.prefixedText}
)
return tostring(compareUrl)
else
return nil
end
end
return env
end
----------------------------------------------------------------------------
-- Auxiliary templates
----------------------------------------------------------------------------
function p.sandboxNotice(args, env)
--[=[
-- Generates a sandbox notice for display above sandbox pages.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'sandbox-notice-image' --> '[[Image:Sandbox.svg|50px|alt=|link=]]'
-- 'sandbox-notice-blurb' --> 'This is the $1 for $2.'
-- 'sandbox-notice-diff-blurb' --> 'This is the $1 for $2 ($3).'
-- 'sandbox-notice-pagetype-template' --> '[[Wikipedia:Template test cases|template sandbox]] page'
-- 'sandbox-notice-pagetype-module' --> '[[Wikipedia:Template test cases|module sandbox]] page'
-- 'sandbox-notice-pagetype-other' --> 'sandbox page'
-- 'sandbox-notice-compare-link-display' --> 'diff'
-- 'sandbox-notice-testcases-blurb' --> 'See also the companion subpage for $1.'
-- 'sandbox-notice-testcases-link-display' --> 'test cases'
-- 'sandbox-category' --> 'Template sandboxes'
--]=]
local title = env.title
local sandboxTitle = env.sandboxTitle
local templateTitle = env.templateTitle
local subjectSpace = env.subjectSpace
if not (subjectSpace and title and sandboxTitle and templateTitle and mw.title.equals(title, sandboxTitle)) then
return nil
end
-- Build the table of arguments to pass to {{ombox}}. We need just two fields, "image" and "text".
local omargs = {}
omargs.image = message('sandbox-notice-image')
-- Get the text. We start with the opening blurb, which is something like
-- "This is the template sandbox for [[Template:Foo]] (diff)."
local text = ''
local pagetype
if subjectSpace == 10 then
pagetype = message('sandbox-notice-pagetype-template')
elseif subjectSpace == 828 then
pagetype = message('sandbox-notice-pagetype-module')
else
pagetype = message('sandbox-notice-pagetype-other')
end
local templateLink = makeWikilink(templateTitle.prefixedText)
local compareUrl = env.compareUrl
if compareUrl then
local compareDisplay = message('sandbox-notice-compare-link-display')
local compareLink = makeUrlLink(compareUrl, compareDisplay)
text = text .. message('sandbox-notice-diff-blurb', {pagetype, templateLink, compareLink})
else
text = text .. message('sandbox-notice-blurb', {pagetype, templateLink})
end
-- Get the test cases page blurb if the page exists. This is something like
-- "See also the companion subpage for [[Template:Foo/testcases|test cases]]."
local testcasesTitle = env.testcasesTitle
if testcasesTitle and testcasesTitle.exists then
if testcasesTitle.namespace == mw.site.namespaces.Module.id then
local testcasesLinkDisplay = message('sandbox-notice-testcases-link-display')
local testcasesRunLinkDisplay = message('sandbox-notice-testcases-run-link-display')
local testcasesLink = makeWikilink(testcasesTitle.prefixedText, testcasesLinkDisplay)
local testcasesRunLink = makeWikilink(testcasesTitle.talkPageTitle.prefixedText, testcasesRunLinkDisplay)
text = text .. '<br />' .. message('sandbox-notice-testcases-run-blurb', {testcasesLink, testcasesRunLink})
else
local testcasesLinkDisplay = message('sandbox-notice-testcases-link-display')
local testcasesLink = makeWikilink(testcasesTitle.prefixedText, testcasesLinkDisplay)
text = text .. '<br />' .. message('sandbox-notice-testcases-blurb', {testcasesLink})
end
end
-- Add the sandbox to the sandbox category.
text = text .. makeCategoryLink(message('sandbox-category'))
omargs.text = text
local ret = '<div style="clear: both;"></div>'
ret = ret .. messageBox.main('ombox', omargs)
return ret
end
function p.protectionTemplate(env)
-- Generates the padlock icon in the top right.
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- Messages:
-- 'protection-template' --> 'pp-template'
-- 'protection-template-args' --> {docusage = 'yes'}
local protectionLevels, mProtectionBanner
local title = env.title
protectionLevels = env.protectionLevels
if not protectionLevels then
return nil
end
local editProt = protectionLevels.edit and protectionLevels.edit[1]
local moveProt = protectionLevels.move and protectionLevels.move[1]
if editProt then
-- The page is edit-protected.
mProtectionBanner = require('Module:Protection banner')
local reason = message('protection-reason-edit')
return mProtectionBanner._main{reason, small = true}
elseif moveProt and moveProt ~= 'autoconfirmed' then
-- The page is move-protected but not edit-protected. Exclude move
-- protection with the level "autoconfirmed", as this is equivalent to
-- no move protection at all.
mProtectionBanner = require('Module:Protection banner')
return mProtectionBanner._main{action = 'move', small = true}
else
return nil
end
end
----------------------------------------------------------------------------
-- Start box
----------------------------------------------------------------------------
p.startBox = makeInvokeFunc('_startBox')
function p._startBox(args, env)
--[[
-- This function generates the start box.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- The actual work is done by p.makeStartBoxLinksData and p.renderStartBoxLinks which make
-- the [view] [edit] [history] [purge] links, and by p.makeStartBoxData and p.renderStartBox
-- which generate the box HTML.
--]]
env = env or p.getEnvironment(args)
local links
local content = args.content
if not content then
-- No need to include the links if the documentation is on the template page itself.
local linksData = p.makeStartBoxLinksData(args, env)
if linksData then
links = p.renderStartBoxLinks(linksData)
end
end
-- Generate the start box html.
local data = p.makeStartBoxData(args, env, links)
if data then
return p.renderStartBox(data)
else
-- User specified no heading.
return nil
end
end
function p.makeStartBoxLinksData(args, env)
--[[
-- Does initial processing of data to make the [view] [edit] [history] [purge] links.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'view-link-display' --> 'view'
-- 'edit-link-display' --> 'edit'
-- 'history-link-display' --> 'history'
-- 'purge-link-display' --> 'purge'
-- 'file-docpage-preload' --> 'Template:Documentation/preload-filespace'
-- 'module-preload' --> 'Template:Documentation/preload-module-doc'
-- 'docpage-preload' --> 'Template:Documentation/preload'
-- 'create-link-display' --> 'create'
--]]
local subjectSpace = env.subjectSpace
local title = env.title
local docTitle = env.docTitle
if not title or not docTitle then
return nil
end
local data = {}
data.title = title
data.docTitle = docTitle
-- View, display, edit, and purge links if /doc exists.
data.viewLinkDisplay = message('view-link-display')
data.editLinkDisplay = message('edit-link-display')
data.historyLinkDisplay = message('history-link-display')
data.purgeLinkDisplay = message('purge-link-display')
-- Create link if /doc doesn't exist.
local preload = args.preload
if not preload then
if subjectSpace == 6 then -- File namespace
preload = message('file-docpage-preload')
elseif subjectSpace == 828 then -- Module namespace
preload = message('module-preload')
else
preload = message('docpage-preload')
end
end
data.preload = preload
data.createLinkDisplay = message('create-link-display')
return data
end
function p.renderStartBoxLinks(data)
--[[
-- Generates the [view][edit][history][purge] or [create] links from the data table.
-- @data - a table of data generated by p.makeStartBoxLinksData
--]]
local function escapeBrackets(s)
-- Escapes square brackets with HTML entities.
s = s:gsub('%[', '[') -- Replace square brackets with HTML entities.
s = s:gsub('%]', ']')
return s
end
local ret
local docTitle = data.docTitle
local title = data.title
if docTitle.exists then
local viewLink = makeWikilink(docTitle.prefixedText, data.viewLinkDisplay)
local editLink = makeUrlLink(docTitle:fullUrl{action = 'edit'}, data.editLinkDisplay)
local historyLink = makeUrlLink(docTitle:fullUrl{action = 'history'}, data.historyLinkDisplay)
local purgeLink = makeUrlLink(title:fullUrl{action = 'purge'}, data.purgeLinkDisplay)
ret = '[%s] [%s] [%s] [%s]'
ret = escapeBrackets(ret)
ret = mw.ustring.format(ret, viewLink, editLink, historyLink, purgeLink)
else
local createLink = makeUrlLink(docTitle:fullUrl{action = 'edit', preload = data.preload}, data.createLinkDisplay)
ret = '[%s]'
ret = escapeBrackets(ret)
ret = mw.ustring.format(ret, createLink)
end
return ret
end
function p.makeStartBoxData(args, env, links)
--[=[
-- Does initial processing of data to pass to the start-box render function, p.renderStartBox.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- @links - a string containing the [view][edit][history][purge] links - could be nil if there's an error.
--
-- Messages:
-- 'documentation-icon-wikitext' --> '[[File:Test Template Info-Icon - Version (2).svg|50px|link=|alt=]]'
-- 'template-namespace-heading' --> 'Template documentation'
-- 'module-namespace-heading' --> 'Module documentation'
-- 'file-namespace-heading' --> 'Summary'
-- 'other-namespaces-heading' --> 'Documentation'
-- 'start-box-linkclasses' --> 'mw-editsection-like plainlinks'
-- 'start-box-link-id' --> 'doc_editlinks'
-- 'testcases-create-link-display' --> 'create'
--]=]
local subjectSpace = env.subjectSpace
if not subjectSpace then
-- Default to an "other namespaces" namespace, so that we get at least some output
-- if an error occurs.
subjectSpace = 2
end
local data = {}
-- Heading
local heading = args.heading -- Blank values are not removed.
if heading == '' then
-- Don't display the start box if the heading arg is defined but blank.
return nil
end
if heading then
data.heading = heading
elseif subjectSpace == 10 then -- Template namespace
data.heading = message('documentation-icon-wikitext') .. ' ' .. message('template-namespace-heading')
elseif subjectSpace == 828 then -- Module namespace
data.heading = message('documentation-icon-wikitext') .. ' ' .. message('module-namespace-heading')
elseif subjectSpace == 6 then -- File namespace
data.heading = message('file-namespace-heading')
else
data.heading = message('other-namespaces-heading')
end
-- Heading CSS
local headingStyle = args['heading-style']
if headingStyle then
data.headingStyleText = headingStyle
elseif subjectSpace == 10 then
-- We are in the template or template talk namespaces.
data.headingFontWeight = 'bold'
data.headingFontSize = '125%'
else
data.headingFontSize = '150%'
end
-- Data for the [view][edit][history][purge] or [create] links.
if links then
data.linksClass = message('start-box-linkclasses')
data.linksId = message('start-box-link-id')
data.links = links
end
return data
end
function p.renderStartBox(data)
-- Renders the start box html.
-- @data - a table of data generated by p.makeStartBoxData.
local sbox = mw.html.create('div')
sbox
:css('padding-bottom', '3px')
:css('border-bottom', '1px solid #aaa')
:css('margin-bottom', '1ex')
:newline()
:tag('span')
:cssText(data.headingStyleText)
:css('font-weight', data.headingFontWeight)
:css('font-size', data.headingFontSize)
:wikitext(data.heading)
local links = data.links
if links then
sbox:tag('span')
:addClass(data.linksClass)
:attr('id', data.linksId)
:wikitext(links)
end
return tostring(sbox)
end
----------------------------------------------------------------------------
-- Documentation content
----------------------------------------------------------------------------
p.content = makeInvokeFunc('_content')
function p._content(args, env)
-- Displays the documentation contents
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
env = env or p.getEnvironment(args)
local docTitle = env.docTitle
local content = args.content
if not content and docTitle and docTitle.exists then
content = args._content or mw.getCurrentFrame():expandTemplate{title = docTitle.prefixedText}
end
-- The line breaks below are necessary so that "=== Headings ===" at the start and end
-- of docs are interpreted correctly.
return '\n' .. (content or '') .. '\n'
end
p.contentTitle = makeInvokeFunc('_contentTitle')
function p._contentTitle(args, env)
env = env or p.getEnvironment(args)
local docTitle = env.docTitle
if not args.content and docTitle and docTitle.exists then
return docTitle.prefixedText
else
return ''
end
end
----------------------------------------------------------------------------
-- End box
----------------------------------------------------------------------------
p.endBox = makeInvokeFunc('_endBox')
function p._endBox(args, env)
--[=[
-- This function generates the end box (also known as the link box).
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'fmbox-id' --> 'documentation-meta-data'
-- 'fmbox-style' --> 'background-color: #ecfcf4'
-- 'fmbox-textstyle' --> 'font-style: italic'
--
-- The HTML is generated by the {{fmbox}} template, courtesy of [[Module:Message box]].
--]=]
-- Get environment data.
env = env or p.getEnvironment(args)
local subjectSpace = env.subjectSpace
local docTitle = env.docTitle
if not subjectSpace or not docTitle then
return nil
end
-- Check whether we should output the end box at all. Add the end
-- box by default if the documentation exists or if we are in the
-- user, module or template namespaces.
local linkBox = args['link box']
if linkBox == 'off'
or not (
docTitle.exists
or subjectSpace == 2
or subjectSpace == 828
or subjectSpace == 10
)
then
return nil
end
-- Assemble the arguments for {{fmbox}}.
local fmargs = {}
fmargs.id = message('fmbox-id') -- Sets 'documentation-meta-data'
fmargs.image = 'none'
fmargs.style = message('fmbox-style') -- Sets 'background-color: #ecfcf4'
fmargs.textstyle = message('fmbox-textstyle') -- 'font-style: italic;'
-- Assemble the fmbox text field.
local text = ''
if linkBox then
text = text .. linkBox
else
text = text .. (p.makeDocPageBlurb(args, env) or '') -- "This documentation is transcluded from [[Foo]]."
if subjectSpace == 2 or subjectSpace == 10 or subjectSpace == 828 then
-- We are in the user, template or module namespaces.
-- Add sandbox and testcases links.
-- "Editors can experiment in this template's sandbox and testcases pages."
text = text .. (p.makeExperimentBlurb(args, env) or '')
text = text .. '<br />'
if not args.content and not args[1] then
-- "Please add categories to the /doc subpage."
-- Don't show this message with inline docs or with an explicitly specified doc page,
-- as then it is unclear where to add the categories.
text = text .. (p.makeCategoriesBlurb(args, env) or '')
end
text = text .. ' ' .. (p.makeSubpagesBlurb(args, env) or '') --"Subpages of this template"
local printBlurb = p.makePrintBlurb(args, env) -- Two-line blurb about print versions of templates.
if printBlurb then
text = text .. '<br />' .. printBlurb
end
end
end
fmargs.text = text
return messageBox.main('fmbox', fmargs)
end
function p.makeDocPageBlurb(args, env)
--[=[
-- Makes the blurb "This documentation is transcluded from [[Template:Foo]] (edit, history)".
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'edit-link-display' --> 'edit'
-- 'history-link-display' --> 'history'
-- 'transcluded-from-blurb' -->
-- 'The above [[Wikipedia:Template documentation|documentation]]
-- is [[Wikipedia:Transclusion|transcluded]] from $1.'
-- 'module-preload' --> 'Template:Documentation/preload-module-doc'
-- 'create-link-display' --> 'create'
-- 'create-module-doc-blurb' -->
-- 'You might want to $1 a documentation page for this [[Wikipedia:Lua|Scribunto module]].'
--]=]
local docTitle = env.docTitle
if not docTitle then
return nil
end
local ret
if docTitle.exists then
-- /doc exists; link to it.
local docLink = makeWikilink(docTitle.prefixedText)
local editUrl = docTitle:fullUrl{action = 'edit'}
local editDisplay = message('edit-link-display')
local editLink = makeUrlLink(editUrl, editDisplay)
local historyUrl = docTitle:fullUrl{action = 'history'}
local historyDisplay = message('history-link-display')
local historyLink = makeUrlLink(historyUrl, historyDisplay)
ret = message('transcluded-from-blurb', {docLink})
.. ' '
.. makeToolbar(editLink, historyLink)
.. '<br />'
elseif env.subjectSpace == 828 then
-- /doc does not exist; ask to create it.
local createUrl = docTitle:fullUrl{action = 'edit', preload = message('module-preload')}
local createDisplay = message('create-link-display')
local createLink = makeUrlLink(createUrl, createDisplay)
ret = message('create-module-doc-blurb', {createLink})
.. '<br />'
end
return ret
end
function p.makeExperimentBlurb(args, env)
--[[
-- Renders the text "Editors can experiment in this template's sandbox (edit | diff) and testcases (edit) pages."
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'sandbox-link-display' --> 'sandbox'
-- 'sandbox-edit-link-display' --> 'edit'
-- 'compare-link-display' --> 'diff'
-- 'module-sandbox-preload' --> 'Template:Documentation/preload-module-sandbox'
-- 'template-sandbox-preload' --> 'Template:Documentation/preload-sandbox'
-- 'sandbox-create-link-display' --> 'create'
-- 'mirror-edit-summary' --> 'Create sandbox version of $1'
-- 'mirror-link-display' --> 'mirror'
-- 'mirror-link-preload' --> 'Template:Documentation/mirror'
-- 'sandbox-link-display' --> 'sandbox'
-- 'testcases-link-display' --> 'testcases'
-- 'testcases-edit-link-display'--> 'edit'
-- 'template-sandbox-preload' --> 'Template:Documentation/preload-sandbox'
-- 'testcases-create-link-display' --> 'create'
-- 'testcases-link-display' --> 'testcases'
-- 'testcases-edit-link-display' --> 'edit'
-- 'module-testcases-preload' --> 'Template:Documentation/preload-module-testcases'
-- 'template-testcases-preload' --> 'Template:Documentation/preload-testcases'
-- 'experiment-blurb-module' --> 'Editors can experiment in this module's $1 and $2 pages.'
-- 'experiment-blurb-template' --> 'Editors can experiment in this template's $1 and $2 pages.'
--]]
local subjectSpace = env.subjectSpace
local templateTitle = env.templateTitle
local sandboxTitle = env.sandboxTitle
local testcasesTitle = env.testcasesTitle
local templatePage = templateTitle.prefixedText
if not subjectSpace or not templateTitle or not sandboxTitle or not testcasesTitle then
return nil
end
-- Make links.
local sandboxLinks, testcasesLinks
if sandboxTitle.exists then
local sandboxPage = sandboxTitle.prefixedText
local sandboxDisplay = message('sandbox-link-display')
local sandboxLink = makeWikilink(sandboxPage, sandboxDisplay)
local sandboxEditUrl = sandboxTitle:fullUrl{action = 'edit'}
local sandboxEditDisplay = message('sandbox-edit-link-display')
local sandboxEditLink = makeUrlLink(sandboxEditUrl, sandboxEditDisplay)
local compareUrl = env.compareUrl
local compareLink
if compareUrl then
local compareDisplay = message('compare-link-display')
compareLink = makeUrlLink(compareUrl, compareDisplay)
end
sandboxLinks = sandboxLink .. ' ' .. makeToolbar(sandboxEditLink, compareLink)
else
local sandboxPreload
if subjectSpace == 828 then
sandboxPreload = message('module-sandbox-preload')
else
sandboxPreload = message('template-sandbox-preload')
end
local sandboxCreateUrl = sandboxTitle:fullUrl{action = 'edit', preload = sandboxPreload}
local sandboxCreateDisplay = message('sandbox-create-link-display')
local sandboxCreateLink = makeUrlLink(sandboxCreateUrl, sandboxCreateDisplay)
local mirrorSummary = message('mirror-edit-summary', {makeWikilink(templatePage)})
local mirrorPreload = message('mirror-link-preload')
local mirrorUrl = sandboxTitle:fullUrl{action = 'edit', preload = mirrorPreload, summary = mirrorSummary}
if subjectSpace == 828 then
mirrorUrl = sandboxTitle:fullUrl{action = 'edit', preload = templateTitle.prefixedText, summary = mirrorSummary}
end
local mirrorDisplay = message('mirror-link-display')
local mirrorLink = makeUrlLink(mirrorUrl, mirrorDisplay)
sandboxLinks = message('sandbox-link-display') .. ' ' .. makeToolbar(sandboxCreateLink, mirrorLink)
end
if testcasesTitle.exists then
local testcasesPage = testcasesTitle.prefixedText
local testcasesDisplay = message('testcases-link-display')
local testcasesLink = makeWikilink(testcasesPage, testcasesDisplay)
local testcasesEditUrl = testcasesTitle:fullUrl{action = 'edit'}
local testcasesEditDisplay = message('testcases-edit-link-display')
local testcasesEditLink = makeUrlLink(testcasesEditUrl, testcasesEditDisplay)
-- for Modules, add testcases run link if exists
if subjectSpace == 828 and testcasesTitle.talkPageTitle and testcasesTitle.talkPageTitle.exists then
local testcasesRunLinkDisplay = message('testcases-run-link-display')
local testcasesRunLink = makeWikilink(testcasesTitle.talkPageTitle.prefixedText, testcasesRunLinkDisplay)
testcasesLinks = testcasesLink .. ' ' .. makeToolbar(testcasesEditLink, testcasesRunLink)
else
testcasesLinks = testcasesLink .. ' ' .. makeToolbar(testcasesEditLink)
end
else
local testcasesPreload
if subjectSpace == 828 then
testcasesPreload = message('module-testcases-preload')
else
testcasesPreload = message('template-testcases-preload')
end
local testcasesCreateUrl = testcasesTitle:fullUrl{action = 'edit', preload = testcasesPreload}
local testcasesCreateDisplay = message('testcases-create-link-display')
local testcasesCreateLink = makeUrlLink(testcasesCreateUrl, testcasesCreateDisplay)
testcasesLinks = message('testcases-link-display') .. ' ' .. makeToolbar(testcasesCreateLink)
end
local messageName
if subjectSpace == 828 then
messageName = 'experiment-blurb-module'
else
messageName = 'experiment-blurb-template'
end
return message(messageName, {sandboxLinks, testcasesLinks})
end
function p.makeCategoriesBlurb(args, env)
--[[
-- Generates the text "Please add categories to the /doc subpage."
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- Messages:
-- 'doc-link-display' --> '/doc'
-- 'add-categories-blurb' --> 'Please add categories to the $1 subpage.'
--]]
local docTitle = env.docTitle
if not docTitle then
return nil
end
local docPathLink = makeWikilink(docTitle.prefixedText, message('doc-link-display'))
return message('add-categories-blurb', {docPathLink})
end
function p.makeSubpagesBlurb(args, env)
--[[
-- Generates the "Subpages of this template" link.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- Messages:
-- 'template-pagetype' --> 'template'
-- 'module-pagetype' --> 'module'
-- 'default-pagetype' --> 'page'
-- 'subpages-link-display' --> 'Subpages of this $1'
--]]
local subjectSpace = env.subjectSpace
local templateTitle = env.templateTitle
if not subjectSpace or not templateTitle then
return nil
end
local pagetype
if subjectSpace == 10 then
pagetype = message('template-pagetype')
elseif subjectSpace == 828 then
pagetype = message('module-pagetype')
else
pagetype = message('default-pagetype')
end
local subpagesLink = makeWikilink(
'Special:PrefixIndex/' .. templateTitle.prefixedText .. '/',
message('subpages-link-display', {pagetype})
)
return message('subpages-blurb', {subpagesLink})
end
function p.makePrintBlurb(args, env)
--[=[
-- Generates the blurb displayed when there is a print version of the template available.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'print-link-display' --> '/Print'
-- 'print-blurb' --> 'A [[Help:Books/for experts#Improving the book layout|print version]]'
-- .. ' of this template exists at $1.'
-- .. ' If you make a change to this template, please update the print version as well.'
-- 'display-print-category' --> true
-- 'print-category' --> 'Templates with print versions'
--]=]
local printTitle = env.printTitle
if not printTitle then
return nil
end
local ret
if printTitle.exists then
local printLink = makeWikilink(printTitle.prefixedText, message('print-link-display'))
ret = message('print-blurb', {printLink})
local displayPrintCategory = message('display-print-category', nil, 'boolean')
if displayPrintCategory then
ret = ret .. makeCategoryLink(message('print-category'))
end
end
return ret
end
----------------------------------------------------------------------------
-- Tracking categories
----------------------------------------------------------------------------
function p.addTrackingCategories(env)
--[[
-- Check if {{documentation}} is transcluded on a /doc or /testcases page.
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- Messages:
-- 'display-strange-usage-category' --> true
-- 'doc-subpage' --> 'doc'
-- 'testcases-subpage' --> 'testcases'
-- 'strange-usage-category' --> 'Wikipedia pages with strange ((documentation)) usage'
--
-- /testcases pages in the module namespace are not categorised, as they may have
-- {{documentation}} transcluded automatically.
--]]
local title = env.title
local subjectSpace = env.subjectSpace
if not title or not subjectSpace then
return nil
end
local subpage = title.subpageText
local ret = ''
if message('display-strange-usage-category', nil, 'boolean')
and (
subpage == message('doc-subpage')
or subjectSpace ~= 828 and subpage == message('testcases-subpage')
)
then
ret = ret .. makeCategoryLink(message('strange-usage-category'))
end
return ret
end
return p
a63d1b5b0f61a188d1f167ce1d4c03fe26d5f1dc
Module:Documentation/config
828
25
65
64
2018-05-21T20:36:03Z
Wizzup
4
1 revision imported
Scribunto
text/plain
----------------------------------------------------------------------------------------------------
--
-- Configuration for Module:Documentation
--
-- Here you can set the values of the parameters and messages used in Module:Documentation to
-- localise it to your wiki and your language. Unless specified otherwise, values given here
-- should be string values.
----------------------------------------------------------------------------------------------------
local cfg = {} -- Do not edit this line.
----------------------------------------------------------------------------------------------------
-- Protection template configuration
----------------------------------------------------------------------------------------------------
-- cfg['protection-reason-edit']
-- The protection reason for edit-protected templates to pass to
-- [[Module:Protection banner]].
cfg['protection-reason-edit'] = 'template'
--[[
----------------------------------------------------------------------------------------------------
-- Sandbox notice configuration
--
-- On sandbox pages the module can display a template notifying users that the current page is a
-- sandbox, and the location of test cases pages, etc. The module decides whether the page is a
-- sandbox or not based on the value of cfg['sandbox-subpage']. The following settings configure the
-- messages that the notices contains.
----------------------------------------------------------------------------------------------------
--]]
-- cfg['sandbox-notice-image']
-- The image displayed in the sandbox notice.
cfg['sandbox-notice-image'] = '[[Image:Sandbox.svg|50px|alt=|link=]]'
--[[
-- cfg['sandbox-notice-pagetype-template']
-- cfg['sandbox-notice-pagetype-module']
-- cfg['sandbox-notice-pagetype-other']
-- The page type of the sandbox page. The message that is displayed depends on the current subject
-- namespace. This message is used in either cfg['sandbox-notice-blurb'] or
-- cfg['sandbox-notice-diff-blurb'].
--]]
cfg['sandbox-notice-pagetype-template'] = '[[Wikipedia:Template test cases|template sandbox]] page'
cfg['sandbox-notice-pagetype-module'] = '[[Wikipedia:Template test cases|module sandbox]] page'
cfg['sandbox-notice-pagetype-other'] = 'sandbox page'
--[[
-- cfg['sandbox-notice-blurb']
-- cfg['sandbox-notice-diff-blurb']
-- cfg['sandbox-notice-diff-display']
-- Either cfg['sandbox-notice-blurb'] or cfg['sandbox-notice-diff-blurb'] is the opening sentence
-- of the sandbox notice. The latter has a diff link, but the former does not. $1 is the page
-- type, which is either cfg['sandbox-notice-pagetype-template'],
-- cfg['sandbox-notice-pagetype-module'] or cfg['sandbox-notice-pagetype-other'] depending what
-- namespace we are in. $2 is a link to the main template page, and $3 is a diff link between
-- the sandbox and the main template. The display value of the diff link is set by
-- cfg['sandbox-notice-compare-link-display'].
--]]
cfg['sandbox-notice-blurb'] = 'This is the $1 for $2.'
cfg['sandbox-notice-diff-blurb'] = 'This is the $1 for $2 ($3).'
cfg['sandbox-notice-compare-link-display'] = 'diff'
--[[
-- cfg['sandbox-notice-testcases-blurb']
-- cfg['sandbox-notice-testcases-link-display']
-- cfg['sandbox-notice-testcases-run-blurb']
-- cfg['sandbox-notice-testcases-run-link-display']
-- cfg['sandbox-notice-testcases-blurb'] is a sentence notifying the user that there is a test cases page
-- corresponding to this sandbox that they can edit. $1 is a link to the test cases page.
-- cfg['sandbox-notice-testcases-link-display'] is the display value for that link.
-- cfg['sandbox-notice-testcases-run-blurb'] is a sentence notifying the user that there is a test cases page
-- corresponding to this sandbox that they can edit, along with a link to run it. $1 is a link to the test
-- cases page, and $2 is a link to the page to run it.
-- cfg['sandbox-notice-testcases-run-link-display'] is the display value for the link to run the test
-- cases.
--]]
cfg['sandbox-notice-testcases-blurb'] = 'See also the companion subpage for $1.'
cfg['sandbox-notice-testcases-link-display'] = 'test cases'
cfg['sandbox-notice-testcases-run-blurb'] = 'See also the companion subpage for $1 ($2).'
cfg['sandbox-notice-testcases-run-link-display'] = 'run'
-- cfg['sandbox-category']
-- A category to add to all template sandboxes.
cfg['sandbox-category'] = 'Template sandboxes'
----------------------------------------------------------------------------------------------------
-- Start box configuration
----------------------------------------------------------------------------------------------------
-- cfg['documentation-icon-wikitext']
-- The wikitext for the icon shown at the top of the template.
cfg['documentation-icon-wikitext'] = '[[File:Test Template Info-Icon - Version (2).svg|50px|link=|alt=]]'
-- cfg['template-namespace-heading']
-- The heading shown in the template namespace.
cfg['template-namespace-heading'] = 'Template documentation'
-- cfg['module-namespace-heading']
-- The heading shown in the module namespace.
cfg['module-namespace-heading'] = 'Module documentation'
-- cfg['file-namespace-heading']
-- The heading shown in the file namespace.
cfg['file-namespace-heading'] = 'Summary'
-- cfg['other-namespaces-heading']
-- The heading shown in other namespaces.
cfg['other-namespaces-heading'] = 'Documentation'
-- cfg['view-link-display']
-- The text to display for "view" links.
cfg['view-link-display'] = 'view'
-- cfg['edit-link-display']
-- The text to display for "edit" links.
cfg['edit-link-display'] = 'edit'
-- cfg['history-link-display']
-- The text to display for "history" links.
cfg['history-link-display'] = 'history'
-- cfg['purge-link-display']
-- The text to display for "purge" links.
cfg['purge-link-display'] = 'purge'
-- cfg['create-link-display']
-- The text to display for "create" links.
cfg['create-link-display'] = 'create'
----------------------------------------------------------------------------------------------------
-- Link box (end box) configuration
----------------------------------------------------------------------------------------------------
-- cfg['transcluded-from-blurb']
-- Notice displayed when the docs are transcluded from another page. $1 is a wikilink to that page.
cfg['transcluded-from-blurb'] = 'The above [[Wikipedia:Template documentation|documentation]] is [[Wikipedia:Transclusion|transcluded]] from $1.'
--[[
-- cfg['create-module-doc-blurb']
-- Notice displayed in the module namespace when the documentation subpage does not exist.
-- $1 is a link to create the documentation page with the preload cfg['module-preload'] and the
-- display cfg['create-link-display'].
--]]
cfg['create-module-doc-blurb'] = 'You might want to $1 a documentation page for this [[Wikipedia:Lua|Scribunto module]].'
----------------------------------------------------------------------------------------------------
-- Experiment blurb configuration
----------------------------------------------------------------------------------------------------
--[[
-- cfg['experiment-blurb-template']
-- cfg['experiment-blurb-module']
-- The experiment blurb is the text inviting editors to experiment in sandbox and test cases pages.
-- It is only shown in the template and module namespaces. With the default English settings, it
-- might look like this:
--
-- Editors can experiment in this template's sandbox (edit | diff) and testcases (edit) pages.
--
-- In this example, "sandbox", "edit", "diff", "testcases", and "edit" would all be links.
--
-- There are two versions, cfg['experiment-blurb-template'] and cfg['experiment-blurb-module'], depending
-- on what namespace we are in.
--
-- Parameters:
--
-- $1 is a link to the sandbox page. If the sandbox exists, it is in the following format:
--
-- cfg['sandbox-link-display'] (cfg['sandbox-edit-link-display'] | cfg['compare-link-display'])
--
-- If the sandbox doesn't exist, it is in the format:
--
-- cfg['sandbox-link-display'] (cfg['sandbox-create-link-display'] | cfg['mirror-link-display'])
--
-- The link for cfg['sandbox-create-link-display'] link preloads the page with cfg['template-sandbox-preload']
-- or cfg['module-sandbox-preload'], depending on the current namespace. The link for cfg['mirror-link-display']
-- loads a default edit summary of cfg['mirror-edit-summary'].
--
-- $2 is a link to the test cases page. If the test cases page exists, it is in the following format:
--
-- cfg['testcases-link-display'] (cfg['testcases-edit-link-display'] | cfg['testcases-run-link-display'])
--
-- If the test cases page doesn't exist, it is in the format:
--
-- cfg['testcases-link-display'] (cfg['testcases-create-link-display'])
--
-- If the test cases page doesn't exist, the link for cfg['testcases-create-link-display'] preloads the
-- page with cfg['template-testcases-preload'] or cfg['module-testcases-preload'], depending on the current
-- namespace.
--]]
cfg['experiment-blurb-template'] = "Editors can experiment in this template's $1 and $2 pages."
cfg['experiment-blurb-module'] = "Editors can experiment in this module's $1 and $2 pages."
----------------------------------------------------------------------------------------------------
-- Sandbox link configuration
----------------------------------------------------------------------------------------------------
-- cfg['sandbox-subpage']
-- The name of the template subpage typically used for sandboxes.
cfg['sandbox-subpage'] = 'sandbox'
-- cfg['template-sandbox-preload']
-- Preload file for template sandbox pages.
cfg['template-sandbox-preload'] = 'Template:Documentation/preload-sandbox'
-- cfg['module-sandbox-preload']
-- Preload file for Lua module sandbox pages.
cfg['module-sandbox-preload'] = 'Template:Documentation/preload-module-sandbox'
-- cfg['sandbox-link-display']
-- The text to display for "sandbox" links.
cfg['sandbox-link-display'] = 'sandbox'
-- cfg['sandbox-edit-link-display']
-- The text to display for sandbox "edit" links.
cfg['sandbox-edit-link-display'] = 'edit'
-- cfg['sandbox-create-link-display']
-- The text to display for sandbox "create" links.
cfg['sandbox-create-link-display'] = 'create'
-- cfg['compare-link-display']
-- The text to display for "compare" links.
cfg['compare-link-display'] = 'diff'
-- cfg['mirror-edit-summary']
-- The default edit summary to use when a user clicks the "mirror" link. $1 is a wikilink to the
-- template page.
cfg['mirror-edit-summary'] = 'Create sandbox version of $1'
-- cfg['mirror-link-display']
-- The text to display for "mirror" links.
cfg['mirror-link-display'] = 'mirror'
-- cfg['mirror-link-preload']
-- The page to preload when a user clicks the "mirror" link.
cfg['mirror-link-preload'] = 'Template:Documentation/mirror'
----------------------------------------------------------------------------------------------------
-- Test cases link configuration
----------------------------------------------------------------------------------------------------
-- cfg['testcases-subpage']
-- The name of the template subpage typically used for test cases.
cfg['testcases-subpage'] = 'testcases'
-- cfg['template-testcases-preload']
-- Preload file for template test cases pages.
cfg['template-testcases-preload'] = 'Template:Documentation/preload-testcases'
-- cfg['module-testcases-preload']
-- Preload file for Lua module test cases pages.
cfg['module-testcases-preload'] = 'Template:Documentation/preload-module-testcases'
-- cfg['testcases-link-display']
-- The text to display for "testcases" links.
cfg['testcases-link-display'] = 'testcases'
-- cfg['testcases-edit-link-display']
-- The text to display for test cases "edit" links.
cfg['testcases-edit-link-display'] = 'edit'
-- cfg['testcases-run-link-display']
-- The text to display for test cases "run" links.
cfg['testcases-run-link-display'] = 'run'
-- cfg['testcases-create-link-display']
-- The text to display for test cases "create" links.
cfg['testcases-create-link-display'] = 'create'
----------------------------------------------------------------------------------------------------
-- Add categories blurb configuration
----------------------------------------------------------------------------------------------------
--[[
-- cfg['add-categories-blurb']
-- Text to direct users to add categories to the /doc subpage. Not used if the "content" or
-- "docname fed" arguments are set, as then it is not clear where to add the categories. $1 is a
-- link to the /doc subpage with a display value of cfg['doc-link-display'].
--]]
cfg['add-categories-blurb'] = 'Please add categories to the $1 subpage.'
-- cfg['doc-link-display']
-- The text to display when linking to the /doc subpage.
cfg['doc-link-display'] = '/doc'
----------------------------------------------------------------------------------------------------
-- Subpages link configuration
----------------------------------------------------------------------------------------------------
--[[
-- cfg['subpages-blurb']
-- The "Subpages of this template" blurb. $1 is a link to the main template's subpages with a
-- display value of cfg['subpages-link-display']. In the English version this blurb is simply
-- the link followed by a period, and the link display provides the actual text.
--]]
cfg['subpages-blurb'] = '$1.'
--[[
-- cfg['subpages-link-display']
-- The text to display for the "subpages of this page" link. $1 is cfg['template-pagetype'],
-- cfg['module-pagetype'] or cfg['default-pagetype'], depending on whether the current page is in
-- the template namespace, the module namespace, or another namespace.
--]]
cfg['subpages-link-display'] = 'Subpages of this $1'
-- cfg['template-pagetype']
-- The pagetype to display for template pages.
cfg['template-pagetype'] = 'template'
-- cfg['module-pagetype']
-- The pagetype to display for Lua module pages.
cfg['module-pagetype'] = 'module'
-- cfg['default-pagetype']
-- The pagetype to display for pages other than templates or Lua modules.
cfg['default-pagetype'] = 'page'
----------------------------------------------------------------------------------------------------
-- Doc link configuration
----------------------------------------------------------------------------------------------------
-- cfg['doc-subpage']
-- The name of the subpage typically used for documentation pages.
cfg['doc-subpage'] = 'doc'
-- cfg['file-docpage-preload']
-- Preload file for documentation page in the file namespace.
cfg['file-docpage-preload'] = 'Template:Documentation/preload-filespace'
-- cfg['docpage-preload']
-- Preload file for template documentation pages in all namespaces.
cfg['docpage-preload'] = 'Template:Documentation/preload'
-- cfg['module-preload']
-- Preload file for Lua module documentation pages.
cfg['module-preload'] = 'Template:Documentation/preload-module-doc'
----------------------------------------------------------------------------------------------------
-- Print version configuration
----------------------------------------------------------------------------------------------------
-- cfg['print-subpage']
-- The name of the template subpage used for print versions.
cfg['print-subpage'] = 'Print'
-- cfg['print-link-display']
-- The text to display when linking to the /Print subpage.
cfg['print-link-display'] = '/Print'
-- cfg['print-blurb']
-- Text to display if a /Print subpage exists. $1 is a link to the subpage with a display value of cfg['print-link-display'].
cfg['print-blurb'] = 'A [[Help:Books/for experts#Improving the book layout|print version]] of this template exists at $1.'
.. ' If you make a change to this template, please update the print version as well.'
-- cfg['display-print-category']
-- Set to true to enable output of cfg['print-category'] if a /Print subpage exists.
-- This should be a boolean value (either true or false).
cfg['display-print-category'] = true
-- cfg['print-category']
-- Category to output if cfg['display-print-category'] is set to true, and a /Print subpage exists.
cfg['print-category'] = 'Templates with print versions'
----------------------------------------------------------------------------------------------------
-- HTML and CSS configuration
----------------------------------------------------------------------------------------------------
-- cfg['main-div-id']
-- The "id" attribute of the main HTML "div" tag.
cfg['main-div-id'] = 'template-documentation'
-- cfg['main-div-classes']
-- The CSS classes added to the main HTML "div" tag.
cfg['main-div-classes'] = 'template-documentation iezoomfix'
-- cfg['start-box-linkclasses']
-- The CSS classes used for the [view][edit][history] or [create] links in the start box.
cfg['start-box-linkclasses'] = 'mw-editsection-like plainlinks'
-- cfg['start-box-link-id']
-- The HTML "id" attribute for the links in the start box.
cfg['start-box-link-id'] = 'doc_editlinks'
----------------------------------------------------------------------------------------------------
-- {{fmbox}} template configuration
----------------------------------------------------------------------------------------------------
-- cfg['fmbox-id']
-- The id sent to the "id" parameter of the {{fmbox}} template.
cfg['fmbox-id'] = 'documentation-meta-data'
-- cfg['fmbox-style']
-- The value sent to the style parameter of {{fmbox}}.
cfg['fmbox-style'] = 'background-color: #ecfcf4'
-- cfg['fmbox-textstyle']
-- The value sent to the "textstyle parameter of {{fmbox}}.
cfg['fmbox-textstyle'] = 'font-style: italic'
----------------------------------------------------------------------------------------------------
-- Tracking category configuration
----------------------------------------------------------------------------------------------------
-- cfg['display-strange-usage-category']
-- Set to true to enable output of cfg['strange-usage-category'] if the module is used on a /doc subpage
-- or a /testcases subpage. This should be a boolean value (either true or false).
cfg['display-strange-usage-category'] = true
-- cfg['strange-usage-category']
-- Category to output if cfg['display-strange-usage-category'] is set to true and the module is used on a
-- /doc subpage or a /testcases subpage.
cfg['strange-usage-category'] = 'Wikipedia pages with strange ((documentation)) usage'
--[[
----------------------------------------------------------------------------------------------------
-- End configuration
--
-- Don't edit anything below this line.
----------------------------------------------------------------------------------------------------
--]]
return cfg
37a2dfddf613853a4d472db0179b6fe844360519
Module:Effective protection expiry
828
26
67
66
2018-05-21T20:36:03Z
Wizzup
4
1 revision imported
Scribunto
text/plain
local p = {}
-- Returns the expiry of a restriction of an action on a given title, or unknown if it cannot be known.
-- If no title is specified, the title of the page being displayed is used.
function p._main(action, pagename)
local title
if type(pagename) == 'table' and pagename.prefixedText then
title = pagename
elseif pagename then
title = mw.title.new(pagename)
else
title = mw.title.getCurrentTitle()
end
pagename = title.prefixedText
if action == 'autoreview' then
local stabilitySettings = mw.ext.FlaggedRevs.getStabilitySettings(title)
return stabilitySettings and stabilitySettings.expiry or 'unknown'
elseif action ~= 'edit' and action ~= 'move' and action ~= 'create' and action ~= 'upload' then
error( 'First parameter must be one of edit, move, create, upload, autoreview', 2 )
end
local rawExpiry = mw.getCurrentFrame():callParserFunction('PROTECTIONEXPIRY', action, pagename)
if rawExpiry == 'infinity' then
return 'infinity'
elseif rawExpiry == '' then
return 'unknown'
else
local year, month, day, hour, minute, second = rawExpiry:match(
'^(%d%d%d%d)(%d%d)(%d%d)(%d%d)(%d%d)(%d%d)$'
)
if year then
return string.format(
'%s-%s-%sT%s:%s:%s',
year, month, day, hour, minute, second
)
else
error('internal error in Module:Effective protection expiry; malformed expiry timestamp')
end
end
end
setmetatable(p, { __index = function(t, k)
return function(frame)
return t._main(k, frame.args[1])
end
end })
return p
9a8c58dc2667232ed08a9b206a5d89ca8150312b
Module:Effective protection level
828
27
69
68
2018-05-21T20:36:03Z
Wizzup
4
1 revision imported
Scribunto
text/plain
local p = {}
-- Returns the permission required to perform a given action on a given title.
-- If no title is specified, the title of the page being displayed is used.
function p._main(action, pagename)
local title
if type(pagename) == 'table' and pagename.prefixedText then
title = pagename
elseif pagename then
title = mw.title.new(pagename)
else
title = mw.title.getCurrentTitle()
end
pagename = title.prefixedText
if action == 'autoreview' then
local level = mw.ext.FlaggedRevs.getStabilitySettings(title)
level = level and level.autoreview
if level == 'review' then
return 'reviewer'
elseif level ~= '' then
return level
else
return nil -- not '*'. a page not being PC-protected is distinct from it being PC-protected with anyone able to review. also not '', as that would mean PC-protected but nobody can review
end
elseif action ~= 'edit' and action ~= 'move' and action ~= 'create' and action ~= 'upload' then
error( 'First parameter must be one of edit, move, create, upload, autoreview', 2 )
end
if title.namespace == 8 then -- MediaWiki namespace
return 'sysop'
elseif title.namespace == 2 and title.isSubpage and ( title.contentModel == 'javascript' or title.contentModel == 'css' or title.contentModel == 'json' ) then -- user JS, CSS or JSON page
return 'sysop'
end
local level = title.protectionLevels[action] and title.protectionLevels[action][1]
if level == 'sysop' or level == 'editprotected' then
return 'sysop'
elseif title.cascadingProtection.restrictions[action] and title.cascadingProtection.restrictions[action][1] then -- used by a cascading-protected page
return 'sysop'
elseif level == 'templateeditor' then
return 'templateeditor'
elseif action == 'move' then
local blacklistentry = mw.ext.TitleBlacklist.test('edit', pagename) -- Testing action edit is correct, since this is for the source page. The target page name gets tested with action move.
if blacklistentry and not blacklistentry.params.autoconfirmed then
return 'templateeditor'
elseif title.namespace == 6 then
return 'filemover'
elseif level == 'extendedconfirmed' then
return 'extendedconfirmed'
else
return 'autoconfirmed'
end
end
local blacklistentry = mw.ext.TitleBlacklist.test(action, pagename)
if blacklistentry then
if not blacklistentry.params.autoconfirmed then
return 'templateeditor'
elseif level == 'extendedconfirmed' then
return 'extendedconfirmed'
else
return 'autoconfirmed'
end
elseif level == 'editsemiprotected' then -- create-semiprotected pages return this for some reason
return 'autoconfirmed'
elseif level then
return level
elseif action == 'upload' then
return 'autoconfirmed'
elseif action == 'create' and title.namespace % 2 == 0 and title.namespace ~= 118 then -- You need to be registered, but not autoconfirmed, to create non-talk pages other than drafts
return 'user'
else
return '*'
end
end
setmetatable(p, { __index = function(t, k)
return function(frame)
return t._main(k, frame.args[1])
end
end })
return p
b70c2a3062a675dddfc40dda11806358a5d50c07
Module:File link
828
28
71
70
2018-05-21T20:36:04Z
Wizzup
4
1 revision imported
Scribunto
text/plain
-- This module provides a library for formatting file wikilinks.
local yesno = require('Module:Yesno')
local checkType = require('libraryUtil').checkType
local p = {}
function p._main(args)
checkType('_main', 1, args, 'table')
-- This is basically libraryUtil.checkTypeForNamedArg, but we are rolling our
-- own function to get the right error level.
local function checkArg(key, val, level)
if type(val) ~= 'string' then
error(string.format(
"type error in '%s' parameter of '_main' (expected string, got %s)",
key, type(val)
), level)
end
end
local ret = {}
-- Adds a positional parameter to the buffer.
local function addPositional(key)
local val = args[key]
if not val then
return nil
end
checkArg(key, val, 4)
ret[#ret + 1] = val
end
-- Adds a named parameter to the buffer. We assume that the parameter name
-- is the same as the argument key.
local function addNamed(key)
local val = args[key]
if not val then
return nil
end
checkArg(key, val, 4)
ret[#ret + 1] = key .. '=' .. val
end
-- Filename
checkArg('file', args.file, 3)
ret[#ret + 1] = 'File:' .. args.file
-- Format
if args.format then
checkArg('format', args.format)
if args.formatfile then
checkArg('formatfile', args.formatfile)
ret[#ret + 1] = args.format .. '=' .. args.formatfile
else
ret[#ret + 1] = args.format
end
end
-- Border
if yesno(args.border) then
ret[#ret + 1] = 'border'
end
addPositional('location')
addPositional('alignment')
addPositional('size')
addNamed('upright')
addNamed('link')
addNamed('alt')
addNamed('page')
addNamed('class')
addNamed('lang')
addNamed('start')
addNamed('end')
addNamed('thumbtime')
addPositional('caption')
return string.format('[[%s]]', table.concat(ret, '|'))
end
function p.main(frame)
local origArgs = require('Module:Arguments').getArgs(frame, {
wrappers = 'Template:File link'
})
if not origArgs.file then
error("'file' parameter missing from [[Template:File link]]", 0)
end
-- Copy the arguments that were passed to a new table to avoid looking up
-- every possible parameter in the frame object.
local args = {}
for k, v in pairs(origArgs) do
-- Make _BLANK a special argument to add a blank parameter. For use in
-- conditional templates etc. it is useful for blank arguments to be
-- ignored, but we still need a way to specify them so that we can do
-- things like [[File:Example.png|link=]].
if v == '_BLANK' then
v = ''
end
args[k] = v
end
return p._main(args)
end
return p
66925f088d11530f2482f04181a3baaaa0ad3d0c
Module:Hatnote
828
29
73
72
2018-05-21T20:36:04Z
Wizzup
4
1 revision imported
Scribunto
text/plain
--------------------------------------------------------------------------------
-- Module:Hatnote --
-- --
-- This module produces hatnote links and links to related articles. It --
-- implements the {{hatnote}} and {{format link}} meta-templates and includes --
-- helper functions for other Lua hatnote modules. --
--------------------------------------------------------------------------------
local libraryUtil = require('libraryUtil')
local checkType = libraryUtil.checkType
local mArguments -- lazily initialise [[Module:Arguments]]
local yesno -- lazily initialise [[Module:Yesno]]
local p = {}
--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------
local function getArgs(frame)
-- Fetches the arguments from the parent frame. Whitespace is trimmed and
-- blanks are removed.
mArguments = require('Module:Arguments')
return mArguments.getArgs(frame, {parentOnly = true})
end
local function removeInitialColon(s)
-- Removes the initial colon from a string, if present.
return s:match('^:?(.*)')
end
function p.findNamespaceId(link, removeColon)
-- Finds the namespace id (namespace number) of a link or a pagename. This
-- function will not work if the link is enclosed in double brackets. Colons
-- are trimmed from the start of the link by default. To skip colon
-- trimming, set the removeColon parameter to false.
checkType('findNamespaceId', 1, link, 'string')
checkType('findNamespaceId', 2, removeColon, 'boolean', true)
if removeColon ~= false then
link = removeInitialColon(link)
end
local namespace = link:match('^(.-):')
if namespace then
local nsTable = mw.site.namespaces[namespace]
if nsTable then
return nsTable.id
end
end
return 0
end
function p.formatPages(...)
-- Formats a list of pages using formatLink and returns it as an array. Nil
-- values are not allowed.
local pages = {...}
local ret = {}
for i, page in ipairs(pages) do
ret[i] = p._formatLink(page)
end
return ret
end
function p.formatPageTables(...)
-- Takes a list of page/display tables and returns it as a list of
-- formatted links. Nil values are not allowed.
local pages = {...}
local links = {}
for i, t in ipairs(pages) do
checkType('formatPageTables', i, t, 'table')
local link = t[1]
local display = t[2]
links[i] = p._formatLink(link, display)
end
return links
end
function p.makeWikitextError(msg, helpLink, addTrackingCategory, title)
-- Formats an error message to be returned to wikitext. If
-- addTrackingCategory is not false after being returned from
-- [[Module:Yesno]], and if we are not on a talk page, a tracking category
-- is added.
checkType('makeWikitextError', 1, msg, 'string')
checkType('makeWikitextError', 2, helpLink, 'string', true)
yesno = require('Module:Yesno')
title = title or mw.title.getCurrentTitle()
-- Make the help link text.
local helpText
if helpLink then
helpText = ' ([[' .. helpLink .. '|help]])'
else
helpText = ''
end
-- Make the category text.
local category
if not title.isTalkPage and yesno(addTrackingCategory) ~= false then
category = 'Hatnote templates with errors'
category = string.format(
'[[%s:%s]]',
mw.site.namespaces[14].name,
category
)
else
category = ''
end
return string.format(
'<strong class="error">Error: %s%s.</strong>%s',
msg,
helpText,
category
)
end
function p.disambiguate(page, disambiguator)
-- Formats a page title with a disambiguation parenthetical,
-- i.e. "Example" → "Example (disambiguation)".
checkType('disambiguate', 1, page, 'string')
checkType('disambiguate', 2, disambiguator, 'string', true)
disambiguator = disambiguator or 'disambiguation'
return string.format('%s (%s)', page, disambiguator)
end
--------------------------------------------------------------------------------
-- Format link
--
-- Makes a wikilink from the given link and display values. Links are escaped
-- with colons if necessary, and links to sections are detected and displayed
-- with " § " as a separator rather than the standard MediaWiki "#". Used in
-- the {{format hatnote link}} template.
--------------------------------------------------------------------------------
function p.formatLink(frame)
local args = getArgs(frame)
local link = args[1]
local display = args[2]
if not link then
return p.makeWikitextError(
'no link specified',
'Template:Format hatnote link#Errors',
args.category
)
end
return p._formatLink(link, display)
end
function p._formatLink(link, display)
checkType('_formatLink', 1, link, 'string')
checkType('_formatLink', 2, display, 'string', true)
-- Remove the initial colon for links where it was specified manually.
link = removeInitialColon(link)
-- Find whether a faux display value has been added with the {{!}} magic
-- word.
if not display then
local prePipe, postPipe = link:match('^(.-)|(.*)$')
link = prePipe or link
display = postPipe
end
-- Find the display value.
if not display then
local page, section = link:match('^(.-)#(.*)$')
if page then
display = page .. ' § ' .. section
end
end
-- Assemble the link.
if display then
return string.format(
'[[:%s|%s]]',
string.gsub(link, '|(.*)$', ''), --display overwrites manual piping
display
)
else
return string.format('[[:%s]]', link)
end
end
--------------------------------------------------------------------------------
-- Hatnote
--
-- Produces standard hatnote text. Implements the {{hatnote}} template.
--------------------------------------------------------------------------------
function p.hatnote(frame)
local args = getArgs(frame)
local s = args[1]
local options = {}
if not s then
return p.makeWikitextError(
'no text specified',
'Template:Hatnote#Errors',
args.category
)
end
options.extraclasses = args.extraclasses
options.selfref = args.selfref
return p._hatnote(s, options)
end
function p._hatnote(s, options)
checkType('_hatnote', 1, s, 'string')
checkType('_hatnote', 2, options, 'table', true)
options = options or {}
local classes = {'hatnote', 'navigation-not-searchable'}
local extraclasses = options.extraclasses
local selfref = options.selfref
if type(extraclasses) == 'string' then
classes[#classes + 1] = extraclasses
end
if selfref then
classes[#classes + 1] = 'selfref'
end
return string.format(
'<div role="note" class="%s">%s</div>',
table.concat(classes, ' '),
s
)
end
return p
68269290db95dca1fb485b69372e2b5a90ed79ad
Module:Hatnote list
828
30
75
74
2018-05-21T20:36:04Z
Wizzup
4
1 revision imported
Scribunto
text/plain
--------------------------------------------------------------------------------
-- Module:Hatnote list --
-- --
-- This module produces and formats lists for use in hatnotes. In particular, --
-- it implements the for-see list, i.e. lists of "For X, see Y" statements, --
-- as used in {{about}}, {{redirect}}, and their variants. Also introduced --
-- are andList & orList helpers for formatting lists with those conjunctions. --
--------------------------------------------------------------------------------
local mArguments --initialize lazily
local mHatnote = require('Module:Hatnote')
local libraryUtil = require('libraryUtil')
local checkType = libraryUtil.checkType
local p = {}
--------------------------------------------------------------------------------
-- List stringification helper functions
--
-- These functions are used for stringifying lists, usually page lists inside
-- the "Y" portion of "For X, see Y" for-see items.
--------------------------------------------------------------------------------
--default options table used across the list stringification functions
local stringifyListDefaultOptions = {
conjunction = "and",
separator = ",",
altSeparator = ";",
space = " ",
formatted = false
}
-- Stringifies a list generically; probably shouldn't be used directly
function stringifyList(list, options)
-- Type-checks, defaults, and a shortcut
checkType("stringifyList", 1, list, "table")
if #list == 0 then return nil end
checkType("stringifyList", 2, options, "table", true)
options = options or {}
for k, v in pairs(stringifyListDefaultOptions) do
if options[k] == nil then options[k] = v end
end
local s = options.space
-- Format the list if requested
if options.formatted then list = mHatnote.formatPages(unpack(list)) end
-- Set the separator; if any item contains it, use the alternate separator
local separator = options.separator
--searches display text only
function searchDisp(t, f)
return string.find(string.sub(t, (string.find(t, '|') or 0) + 1), f)
end
for k, v in pairs(list) do
if searchDisp(v, separator) then
separator = options.altSeparator
break
end
end
-- Set the conjunction, apply Oxford comma, and force a comma if #1 has "§"
local conjunction = s .. options.conjunction .. s
if #list == 2 and searchDisp(list[1], "§") or #list > 2 then
conjunction = separator .. conjunction
end
-- Return the formatted string
return mw.text.listToText(list, separator .. s, conjunction)
end
--DRY function
function conjList (conj, list, fmt)
return stringifyList(list, {conjunction = conj, formatted = fmt})
end
-- Stringifies lists with "and" or "or"
function p.andList (...) return conjList("and", ...) end
function p.orList (...) return conjList("or", ...) end
--------------------------------------------------------------------------------
-- For see
--
-- Makes a "For X, see [[Y]]." list from raw parameters. Intended for the
-- {{about}} and {{redirect}} templates and their variants.
--------------------------------------------------------------------------------
--default options table used across the forSee family of functions
local forSeeDefaultOptions = {
andKeyword = 'and',
title = mw.title.getCurrentTitle().text,
otherText = 'other uses',
forSeeForm = 'For %s, see %s.',
}
--Collapses duplicate punctuation
function punctuationCollapse (text)
local replacements = {
["%.%.$"] = ".",
["%?%.$"] = "?",
["%!%.$"] = "!",
["%.%]%]%.$"] = ".]]",
["%?%]%]%.$"] = "?]]",
["%!%]%]%.$"] = "!]]"
}
for k, v in pairs(replacements) do text = string.gsub(text, k, v) end
return text
end
-- Structures arguments into a table for stringification, & options
function p.forSeeArgsToTable (args, from, options)
-- Type-checks and defaults
checkType("forSeeArgsToTable", 1, args, 'table')
checkType("forSeeArgsToTable", 2, from, 'number', true)
from = from or 1
checkType("forSeeArgsToTable", 3, options, 'table', true)
options = options or {}
for k, v in pairs(forSeeDefaultOptions) do
if options[k] == nil then options[k] = v end
end
-- maxArg's gotten manually because getArgs() and table.maxn aren't friends
local maxArg = 0
for k, v in pairs(args) do
if type(k) == 'number' and k > maxArg then maxArg = k end
end
-- Structure the data out from the parameter list:
-- * forTable is the wrapper table, with forRow rows
-- * Rows are tables of a "use" string & a "pages" table of pagename strings
-- * Blanks are left empty for defaulting elsewhere, but can terminate list
local forTable = {}
local i = from
local terminated = false
-- If there is extra text, and no arguments are given, give nil value
-- to not produce default of "For other uses, see foo (disambiguation)"
if options.extratext and i > maxArg then return nil end
-- Loop to generate rows
repeat
-- New empty row
local forRow = {}
-- On blank use, assume list's ended & break at end of this loop
forRow.use = args[i]
if not args[i] then terminated = true end
-- New empty list of pages
forRow.pages = {}
-- Insert first pages item if present
table.insert(forRow.pages, args[i + 1])
-- If the param after next is "and", do inner loop to collect params
-- until the "and"'s stop. Blanks are ignored: "1|and||and|3" → {1, 3}
while args[i + 2] == options.andKeyword do
if args[i + 3] then
table.insert(forRow.pages, args[i + 3])
end
-- Increment to next "and"
i = i + 2
end
-- Increment to next use
i = i + 2
-- Append the row
table.insert(forTable, forRow)
until terminated or i > maxArg
return forTable
end
-- Stringifies a table as formatted by forSeeArgsToTable
function p.forSeeTableToString (forSeeTable, options)
-- Type-checks and defaults
checkType("forSeeTableToString", 1, forSeeTable, "table", true)
checkType("forSeeTableToString", 2, options, "table", true)
options = options or {}
for k, v in pairs(forSeeDefaultOptions) do
if options[k] == nil then options[k] = v end
end
-- Stringify each for-see item into a list
local strList = {}
if forSeeTable then
for k, v in pairs(forSeeTable) do
local useStr = v.use or options.otherText
local pagesStr = p.andList(v.pages, true) or mHatnote._formatLink(mHatnote.disambiguate(options.title))
local forSeeStr = string.format(options.forSeeForm, useStr, pagesStr)
forSeeStr = punctuationCollapse(forSeeStr)
table.insert(strList, forSeeStr)
end
end
if options.extratext then table.insert(strList, punctuationCollapse(options.extratext..'.')) end
-- Return the concatenated list
return table.concat(strList, ' ')
end
-- Produces a "For X, see [[Y]]" string from arguments. Expects index gaps
-- but not blank/whitespace values. Ignores named args and args < "from".
function p._forSee (args, from, options)
local forSeeTable = p.forSeeArgsToTable(args, from, options)
return p.forSeeTableToString(forSeeTable, options)
end
-- As _forSee, but uses the frame.
function p.forSee (frame, from, options)
mArguments = require('Module:Arguments')
return p._forSee(mArguments.getArgs(frame), from, options)
end
return p
1550e576b518a6a3a72eea6142608a84c010ebe8
Module:Infobox
828
31
77
76
2018-05-21T20:36:04Z
Wizzup
4
1 revision imported
Scribunto
text/plain
--
-- This module implements {{Infobox}}
--
local p = {}
local navbar = require('Module:Navbar')._navbar
local args = {}
local origArgs
local root
local function notempty( s ) return s and s:match( '%S' ) end
local function fixChildBoxes(sval, tt)
if notempty(sval) then
local marker = '<span class=special_infobox_marker>'
local s = sval
s = mw.ustring.gsub(s, '(<%s*[Tt][Rr])', marker .. '%1')
s = mw.ustring.gsub(s, '(</[Tt][Rr]%s*>)', '%1' .. marker)
if s:match(marker) then
s = mw.ustring.gsub(s, marker .. '%s*' .. marker, '')
s = mw.ustring.gsub(s, '([\r\n]|-[^\r\n]*[\r\n])%s*' .. marker, '%1')
s = mw.ustring.gsub(s, marker .. '%s*([\r\n]|-)', '%1')
s = mw.ustring.gsub(s, '(</[Cc][Aa][Pp][Tt][Ii][Oo][Nn]%s*>%s*)' .. marker, '%1')
s = mw.ustring.gsub(s, '(<%s*[Tt][Aa][Bb][Ll][Ee][^<>]*>%s*)' .. marker, '%1')
s = mw.ustring.gsub(s, '^(%{|[^\r\n]*[\r\n]%s*)' .. marker, '%1')
s = mw.ustring.gsub(s, '([\r\n]%{|[^\r\n]*[\r\n]%s*)' .. marker, '%1')
s = mw.ustring.gsub(s, marker .. '(%s*</[Tt][Aa][Bb][Ll][Ee]%s*>)', '%1')
s = mw.ustring.gsub(s, marker .. '(%s*\n|%})', '%1')
end
if s:match(marker) then
local subcells = mw.text.split(s, marker)
s = ''
for k = 1, #subcells do
if k == 1 then
s = s .. subcells[k] .. '</' .. tt .. '></tr>'
elseif k == #subcells then
local rowstyle = ' style="display:none"'
if notempty(subcells[k]) then rowstyle = '' end
s = s .. '<tr' .. rowstyle ..'><' .. tt .. ' colspan=2>\n' .. subcells[k]
elseif notempty(subcells[k]) then
if (k % 2) == 0 then
s = s .. subcells[k]
else
s = s .. '<tr><' .. tt .. ' colspan=2>\n' .. subcells[k] .. '</' .. tt .. '></tr>'
end
end
end
end
return s
else
return sval
end
end
local function union(t1, t2)
-- Returns the union of the values of two tables, as a sequence.
local vals = {}
for k, v in pairs(t1) do
vals[v] = true
end
for k, v in pairs(t2) do
vals[v] = true
end
local ret = {}
for k, v in pairs(vals) do
table.insert(ret, k)
end
return ret
end
local function getArgNums(prefix)
-- Returns a table containing the numbers of the arguments that exist
-- for the specified prefix. For example, if the prefix was 'data', and
-- 'data1', 'data2', and 'data5' exist, it would return {1, 2, 5}.
local nums = {}
for k, v in pairs(args) do
local num = tostring(k):match('^' .. prefix .. '([1-9]%d*)$')
if num then table.insert(nums, tonumber(num)) end
end
table.sort(nums)
return nums
end
local function addRow(rowArgs)
-- Adds a row to the infobox, with either a header cell
-- or a label/data cell combination.
if rowArgs.header then
root
:tag('tr')
:addClass(rowArgs.rowclass)
:cssText(rowArgs.rowstyle)
:attr('id', rowArgs.rowid)
:tag('th')
:attr('colspan', 2)
:attr('id', rowArgs.headerid)
:addClass(rowArgs.class)
:addClass(args.headerclass)
:css('text-align', 'center')
:cssText(args.headerstyle)
:cssText(rowArgs.rowcellstyle)
:wikitext(fixChildBoxes(rowArgs.header, 'th'))
elseif rowArgs.data then
local row = root:tag('tr')
row:addClass(rowArgs.rowclass)
row:cssText(rowArgs.rowstyle)
row:attr('id', rowArgs.rowid)
if rowArgs.label then
row
:tag('th')
:attr('scope', 'row')
:attr('id', rowArgs.labelid)
:cssText(args.labelstyle)
:cssText(rowArgs.rowcellstyle)
:wikitext(rowArgs.label)
:done()
end
local dataCell = row:tag('td')
if not rowArgs.label then
dataCell
:attr('colspan', 2)
:css('text-align', 'center')
end
dataCell
:attr('id', rowArgs.dataid)
:addClass(rowArgs.class)
:cssText(rowArgs.datastyle)
:cssText(rowArgs.rowcellstyle)
:newline()
:wikitext(fixChildBoxes(rowArgs.data, 'td'))
end
end
local function renderTitle()
if not args.title then return end
root
:tag('caption')
:addClass(args.titleclass)
:cssText(args.titlestyle)
:wikitext(args.title)
end
local function renderAboveRow()
if not args.above then return end
root
:tag('tr')
:tag('th')
:attr('colspan', 2)
:addClass(args.aboveclass)
:css('text-align', 'center')
:css('font-size', '125%')
:css('font-weight', 'bold')
:cssText(args.abovestyle)
:wikitext(fixChildBoxes(args.above,'th'))
end
local function renderBelowRow()
if not args.below then return end
root
:tag('tr')
:tag('td')
:attr('colspan', '2')
:addClass(args.belowclass)
:css('text-align', 'center')
:cssText(args.belowstyle)
:newline()
:wikitext(fixChildBoxes(args.below,'td'))
end
local function renderSubheaders()
if args.subheader then
args.subheader1 = args.subheader
end
if args.subheaderrowclass then
args.subheaderrowclass1 = args.subheaderrowclass
end
local subheadernums = getArgNums('subheader')
for k, num in ipairs(subheadernums) do
addRow({
data = args['subheader' .. tostring(num)],
datastyle = args.subheaderstyle or args['subheaderstyle' .. tostring(num)],
class = args.subheaderclass,
rowclass = args['subheaderrowclass' .. tostring(num)]
})
end
end
local function renderImages()
if args.image then
args.image1 = args.image
end
if args.caption then
args.caption1 = args.caption
end
local imagenums = getArgNums('image')
for k, num in ipairs(imagenums) do
local caption = args['caption' .. tostring(num)]
local data = mw.html.create():wikitext(args['image' .. tostring(num)])
if caption then
data
:tag('div')
:cssText(args.captionstyle)
:wikitext(caption)
end
addRow({
data = tostring(data),
datastyle = args.imagestyle,
class = args.imageclass,
rowclass = args['imagerowclass' .. tostring(num)]
})
end
end
local function renderRows()
-- Gets the union of the header and data argument numbers,
-- and renders them all in order using addRow.
local rownums = union(getArgNums('header'), getArgNums('data'))
table.sort(rownums)
for k, num in ipairs(rownums) do
addRow({
header = args['header' .. tostring(num)],
label = args['label' .. tostring(num)],
data = args['data' .. tostring(num)],
datastyle = args.datastyle,
class = args['class' .. tostring(num)],
rowclass = args['rowclass' .. tostring(num)],
rowstyle = args['rowstyle' .. tostring(num)],
rowcellstyle = args['rowcellstyle' .. tostring(num)],
dataid = args['dataid' .. tostring(num)],
labelid = args['labelid' .. tostring(num)],
headerid = args['headerid' .. tostring(num)],
rowid = args['rowid' .. tostring(num)]
})
end
end
local function renderNavBar()
if not args.name then return end
root
:tag('tr')
:tag('td')
:attr('colspan', '2')
:css('text-align', 'right')
:wikitext(navbar{
args.name,
mini = 1,
})
end
local function renderItalicTitle()
local italicTitle = args['italic title'] and mw.ustring.lower(args['italic title'])
if italicTitle == '' or italicTitle == 'force' or italicTitle == 'yes' then
root:wikitext(mw.getCurrentFrame():expandTemplate({title = 'italic title'}))
end
end
local function renderTrackingCategories()
if args.decat ~= 'yes' then
if #(getArgNums('data')) == 0 and mw.title.getCurrentTitle().namespace == 0 then
root:wikitext('[[Category:Articles which use infobox templates with no data rows]]')
end
if args.child == 'yes' and args.title then
root:wikitext('[[Category:Pages which use embedded infobox templates with the title parameter]]')
end
end
end
local function _infobox()
-- Specify the overall layout of the infobox, with special settings
-- if the infobox is used as a 'child' inside another infobox.
if args.child ~= 'yes' then
root = mw.html.create('table')
root
:addClass((args.subbox ~= 'yes') and 'infobox' or nil)
:addClass(args.bodyclass)
if args.subbox == 'yes' then
root
:css('padding', '0')
:css('border', 'none')
:css('margin', '-3px')
:css('width', 'auto')
:css('min-width', '100%')
:css('font-size', '100%')
:css('clear', 'none')
:css('float', 'none')
:css('background-color', 'transparent')
else
root
:css('width', '22em')
end
root
:cssText(args.bodystyle)
renderTitle()
renderAboveRow()
else
root = mw.html.create()
root
:wikitext(args.title)
end
renderSubheaders()
renderImages()
renderRows()
renderBelowRow()
renderNavBar()
renderItalicTitle()
renderTrackingCategories()
return tostring(root)
end
local function preprocessSingleArg(argName)
-- If the argument exists and isn't blank, add it to the argument table.
-- Blank arguments are treated as nil to match the behaviour of ParserFunctions.
if origArgs[argName] and origArgs[argName] ~= '' then
args[argName] = origArgs[argName]
end
end
local function preprocessArgs(prefixTable, step)
-- Assign the parameters with the given prefixes to the args table, in order, in batches
-- of the step size specified. This is to prevent references etc. from appearing in the
-- wrong order. The prefixTable should be an array containing tables, each of which has
-- two possible fields, a "prefix" string and a "depend" table. The function always parses
-- parameters containing the "prefix" string, but only parses parameters in the "depend"
-- table if the prefix parameter is present and non-blank.
if type(prefixTable) ~= 'table' then
error("Non-table value detected for the prefix table", 2)
end
if type(step) ~= 'number' then
error("Invalid step value detected", 2)
end
-- Get arguments without a number suffix, and check for bad input.
for i,v in ipairs(prefixTable) do
if type(v) ~= 'table' or type(v.prefix) ~= "string" or (v.depend and type(v.depend) ~= 'table') then
error('Invalid input detected to preprocessArgs prefix table', 2)
end
preprocessSingleArg(v.prefix)
-- Only parse the depend parameter if the prefix parameter is present and not blank.
if args[v.prefix] and v.depend then
for j, dependValue in ipairs(v.depend) do
if type(dependValue) ~= 'string' then
error('Invalid "depend" parameter value detected in preprocessArgs')
end
preprocessSingleArg(dependValue)
end
end
end
-- Get arguments with number suffixes.
local a = 1 -- Counter variable.
local moreArgumentsExist = true
while moreArgumentsExist == true do
moreArgumentsExist = false
for i = a, a + step - 1 do
for j,v in ipairs(prefixTable) do
local prefixArgName = v.prefix .. tostring(i)
if origArgs[prefixArgName] then
moreArgumentsExist = true -- Do another loop if any arguments are found, even blank ones.
preprocessSingleArg(prefixArgName)
end
-- Process the depend table if the prefix argument is present and not blank, or
-- we are processing "prefix1" and "prefix" is present and not blank, and
-- if the depend table is present.
if v.depend and (args[prefixArgName] or (i == 1 and args[v.prefix])) then
for j,dependValue in ipairs(v.depend) do
local dependArgName = dependValue .. tostring(i)
preprocessSingleArg(dependArgName)
end
end
end
end
a = a + step
end
end
function p.infobox(frame)
-- If called via #invoke, use the args passed into the invoking template.
-- Otherwise, for testing purposes, assume args are being passed directly in.
if frame == mw.getCurrentFrame() then
origArgs = frame:getParent().args
else
origArgs = frame
end
-- Parse the data parameters in the same order that the old {{infobox}} did, so that
-- references etc. will display in the expected places. Parameters that depend on
-- another parameter are only processed if that parameter is present, to avoid
-- phantom references appearing in article reference lists.
preprocessSingleArg('child')
preprocessSingleArg('bodyclass')
preprocessSingleArg('subbox')
preprocessSingleArg('bodystyle')
preprocessSingleArg('title')
preprocessSingleArg('titleclass')
preprocessSingleArg('titlestyle')
preprocessSingleArg('above')
preprocessSingleArg('aboveclass')
preprocessSingleArg('abovestyle')
preprocessArgs({
{prefix = 'subheader', depend = {'subheaderstyle', 'subheaderrowclass'}}
}, 10)
preprocessSingleArg('subheaderstyle')
preprocessSingleArg('subheaderclass')
preprocessArgs({
{prefix = 'image', depend = {'caption', 'imagerowclass'}}
}, 10)
preprocessSingleArg('captionstyle')
preprocessSingleArg('imagestyle')
preprocessSingleArg('imageclass')
preprocessArgs({
{prefix = 'header'},
{prefix = 'data', depend = {'label'}},
{prefix = 'rowclass'},
{prefix = 'rowstyle'},
{prefix = 'rowcellstyle'},
{prefix = 'class'},
{prefix = 'dataid'},
{prefix = 'labelid'},
{prefix = 'headerid'},
{prefix = 'rowid'}
}, 50)
preprocessSingleArg('headerclass')
preprocessSingleArg('headerstyle')
preprocessSingleArg('labelstyle')
preprocessSingleArg('datastyle')
preprocessSingleArg('below')
preprocessSingleArg('belowclass')
preprocessSingleArg('belowstyle')
preprocessSingleArg('name')
args['italic title'] = origArgs['italic title'] -- different behaviour if blank or absent
preprocessSingleArg('decat')
return _infobox()
end
return p
3c0184beda9afaf0fe936d06101680d646f31874
Module:List
828
32
79
78
2018-05-21T20:36:05Z
Wizzup
4
1 revision imported
Scribunto
text/plain
-- This module outputs different kinds of lists. At the moment, bulleted,
-- unbulleted, horizontal, ordered, and horizontal ordered lists are supported.
local libUtil = require('libraryUtil')
local checkType = libUtil.checkType
local mTableTools = require('Module:TableTools')
local p = {}
local listTypes = {
['bulleted'] = true,
['unbulleted'] = true,
['horizontal'] = true,
['ordered'] = true,
['horizontal_ordered'] = true
}
function p.makeListData(listType, args)
-- Constructs a data table to be passed to p.renderList.
local data = {}
-- Classes
data.classes = {}
if listType == 'horizontal' or listType == 'horizontal_ordered' then
table.insert(data.classes, 'hlist hlist-separated')
elseif listType == 'unbulleted' then
table.insert(data.classes, 'plainlist')
end
table.insert(data.classes, args.class)
-- Main div style
data.style = args.style
-- Indent for horizontal lists
if listType == 'horizontal' or listType == 'horizontal_ordered' then
local indent = tonumber(args.indent)
indent = indent and indent * 1.6 or 0
if indent > 0 then
data.marginLeft = indent .. 'em'
end
end
-- List style types for ordered lists
-- This could be "1, 2, 3", "a, b, c", or a number of others. The list style
-- type is either set by the "type" attribute or the "list-style-type" CSS
-- property.
if listType == 'ordered' or listType == 'horizontal_ordered' then
data.listStyleType = args.list_style_type or args['list-style-type']
data.type = args['type']
-- Detect invalid type attributes and attempt to convert them to
-- list-style-type CSS properties.
if data.type
and not data.listStyleType
and not tostring(data.type):find('^%s*[1AaIi]%s*$')
then
data.listStyleType = data.type
data.type = nil
end
end
-- List tag type
if listType == 'ordered' or listType == 'horizontal_ordered' then
data.listTag = 'ol'
else
data.listTag = 'ul'
end
-- Start number for ordered lists
data.start = args.start
if listType == 'horizontal_ordered' then
-- Apply fix to get start numbers working with horizontal ordered lists.
local startNum = tonumber(data.start)
if startNum then
data.counterReset = 'listitem ' .. tostring(startNum - 1)
end
end
-- List style
-- ul_style and ol_style are included for backwards compatibility. No
-- distinction is made for ordered or unordered lists.
data.listStyle = args.list_style
-- List items
-- li_style is included for backwards compatibility. item_style was included
-- to be easier to understand for non-coders.
data.itemStyle = args.item_style or args.li_style
data.items = {}
for i, num in ipairs(mTableTools.numKeys(args)) do
local item = {}
item.content = args[num]
item.style = args['item' .. tostring(num) .. '_style']
or args['item_style' .. tostring(num)]
item.value = args['item' .. tostring(num) .. '_value']
or args['item_value' .. tostring(num)]
table.insert(data.items, item)
end
return data
end
function p.renderList(data)
-- Renders the list HTML.
-- Return the blank string if there are no list items.
if type(data.items) ~= 'table' or #data.items < 1 then
return ''
end
-- Render the main div tag.
local root = mw.html.create('div')
for i, class in ipairs(data.classes or {}) do
root:addClass(class)
end
root:css{['margin-left'] = data.marginLeft}
if data.style then
root:cssText(data.style)
end
-- Render the list tag.
local list = root:tag(data.listTag or 'ul')
list
:attr{start = data.start, type = data.type}
:css{
['counter-reset'] = data.counterReset,
['list-style-type'] = data.listStyleType
}
if data.listStyle then
list:cssText(data.listStyle)
end
-- Render the list items
for i, t in ipairs(data.items or {}) do
local item = list:tag('li')
if data.itemStyle then
item:cssText(data.itemStyle)
end
if t.style then
item:cssText(t.style)
end
item
:attr{value = t.value}
:wikitext(t.content)
end
return tostring(root)
end
function p.renderTrackingCategories(args)
local isDeprecated = false -- Tracks deprecated parameters.
for k, v in pairs(args) do
k = tostring(k)
if k:find('^item_style%d+$') or k:find('^item_value%d+$') then
isDeprecated = true
break
end
end
local ret = ''
if isDeprecated then
ret = ret .. '[[Category:List templates with deprecated parameters]]'
end
return ret
end
function p.makeList(listType, args)
if not listType or not listTypes[listType] then
error(string.format(
"bad argument #1 to 'makeList' ('%s' is not a valid list type)",
tostring(listType)
), 2)
end
checkType('makeList', 2, args, 'table')
local data = p.makeListData(listType, args)
local list = p.renderList(data)
local trackingCategories = p.renderTrackingCategories(args)
return list .. trackingCategories
end
for listType in pairs(listTypes) do
p[listType] = function (frame)
local mArguments = require('Module:Arguments')
local origArgs = mArguments.getArgs(frame)
-- Copy all the arguments to a new table, for faster indexing.
local args = {}
for k, v in pairs(origArgs) do
args[k] = v
end
return p.makeList(listType, args)
end
end
return p
b8b58ee51a76c9278f4768603e06adfb83cac978
Module:Lua banner
828
33
81
80
2018-05-21T20:36:05Z
Wizzup
4
1 revision imported
Scribunto
text/plain
-- This module implements the {{lua}} template.
local yesno = require('Module:Yesno')
local mList = require('Module:List')
local mTableTools = require('Module:TableTools')
local mMessageBox = require('Module:Message box')
local p = {}
function p.main(frame)
local origArgs = frame:getParent().args
local args = {}
for k, v in pairs(origArgs) do
v = v:match('^%s*(.-)%s*$')
if v ~= '' then
args[k] = v
end
end
return p._main(args)
end
function p._main(args)
local modules = mTableTools.compressSparseArray(args)
local box = p.renderBox(modules)
local trackingCategories = p.renderTrackingCategories(args, modules)
return box .. trackingCategories
end
function p.renderBox(modules)
local boxArgs = {}
if #modules < 1 then
boxArgs.text = '<strong class="error">Error: no modules specified</strong>'
else
local moduleLinks = {}
for i, module in ipairs(modules) do
moduleLinks[i] = string.format('[[:%s]]', module)
end
local moduleList = mList.makeList('bulleted', moduleLinks)
boxArgs.text = 'This template uses [[Wikipedia:Lua|Lua]]:\n' .. moduleList
end
boxArgs.type = 'notice'
boxArgs.small = true
boxArgs.image = '[[File:Lua-logo-nolabel.svg|30px|alt=|link=]]'
return mMessageBox.main('mbox', boxArgs)
end
function p.renderTrackingCategories(args, modules, titleObj)
if yesno(args.nocat) then
return ''
end
local cats = {}
-- Error category
if #modules < 1 then
cats[#cats + 1] = 'Lua templates with errors'
end
-- Lua templates category
titleObj = titleObj or mw.title.getCurrentTitle()
local subpageBlacklist = {
doc = true,
sandbox = true,
sandbox2 = true,
testcases = true
}
if titleObj.namespace == 10
and not subpageBlacklist[titleObj.subpageText]
then
local category = args.category
if not category then
local categories = {
['Module:String'] = 'Lua String-based templates',
['Module:Math'] = 'Templates based on the Math Lua module',
['Module:BaseConvert'] = 'Templates based on the BaseConvert Lua module',
['Module:Citation'] = 'Lua-based citation templates'
}
categories['Module:Citation/CS1'] = categories['Module:Citation']
category = modules[1] and categories[modules[1]]
category = category or 'Lua-based templates'
end
cats[#cats + 1] = category
local protLevels = {
autoconfirmed = 1,
extendedconfirmed = 2,
templateeditor = 3,
sysop = 4
}
local currentProt = titleObj.protectionLevels["edit"][1]
if currentProt == nil then currentProt = 0 else currentProt = protLevels[currentProt] end
for i, module in ipairs(modules) do
local moduleProt = mw.title.new(module).protectionLevels["edit"][1]
if moduleProt == nil then moduleProt = 0 else moduleProt = protLevels[moduleProt] end
if moduleProt < currentProt then
cats[#cats + 1] = "Templates using under-protected Lua modules"
break
end
end
end
for i, cat in ipairs(cats) do
cats[i] = string.format('[[Category:%s]]', cat)
end
return table.concat(cats)
end
return p
7bea7885f6c43535b79846f2bf414fd167d42d11
Module:Message box
828
34
83
82
2018-05-21T20:36:06Z
Wizzup
4
1 revision imported
Scribunto
text/plain
-- This is a meta-module for producing message box templates, including
-- {{mbox}}, {{ambox}}, {{imbox}}, {{tmbox}}, {{ombox}}, {{cmbox}} and {{fmbox}}.
-- Load necessary modules.
require('Module:No globals')
local getArgs
local yesno = require('Module:Yesno')
-- Get a language object for formatDate and ucfirst.
local lang = mw.language.getContentLanguage()
-- Define constants
local CONFIG_MODULE = 'Module:Message box/configuration'
--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------
local function getTitleObject(...)
-- Get the title object, passing the function through pcall
-- in case we are over the expensive function count limit.
local success, title = pcall(mw.title.new, ...)
if success then
return title
end
end
local function union(t1, t2)
-- Returns the union of two arrays.
local vals = {}
for i, v in ipairs(t1) do
vals[v] = true
end
for i, v in ipairs(t2) do
vals[v] = true
end
local ret = {}
for k in pairs(vals) do
table.insert(ret, k)
end
table.sort(ret)
return ret
end
local function getArgNums(args, prefix)
local nums = {}
for k, v in pairs(args) do
local num = mw.ustring.match(tostring(k), '^' .. prefix .. '([1-9]%d*)$')
if num then
table.insert(nums, tonumber(num))
end
end
table.sort(nums)
return nums
end
--------------------------------------------------------------------------------
-- Box class definition
--------------------------------------------------------------------------------
local MessageBox = {}
MessageBox.__index = MessageBox
function MessageBox.new(boxType, args, cfg)
args = args or {}
local obj = {}
-- Set the title object and the namespace.
obj.title = getTitleObject(args.page) or mw.title.getCurrentTitle()
-- Set the config for our box type.
obj.cfg = cfg[boxType]
if not obj.cfg then
local ns = obj.title.namespace
-- boxType is "mbox" or invalid input
if ns == 0 then
obj.cfg = cfg.ambox -- main namespace
elseif ns == 6 then
obj.cfg = cfg.imbox -- file namespace
elseif ns == 14 then
obj.cfg = cfg.cmbox -- category namespace
else
local nsTable = mw.site.namespaces[ns]
if nsTable and nsTable.isTalk then
obj.cfg = cfg.tmbox -- any talk namespace
else
obj.cfg = cfg.ombox -- other namespaces or invalid input
end
end
end
-- Set the arguments, and remove all blank arguments except for the ones
-- listed in cfg.allowBlankParams.
do
local newArgs = {}
for k, v in pairs(args) do
if v ~= '' then
newArgs[k] = v
end
end
for i, param in ipairs(obj.cfg.allowBlankParams or {}) do
newArgs[param] = args[param]
end
obj.args = newArgs
end
-- Define internal data structure.
obj.categories = {}
obj.classes = {}
-- For lazy loading of [[Module:Category handler]].
obj.hasCategories = false
return setmetatable(obj, MessageBox)
end
function MessageBox:addCat(ns, cat, sort)
if not cat then
return nil
end
if sort then
cat = string.format('[[Category:%s|%s]]', cat, sort)
else
cat = string.format('[[Category:%s]]', cat)
end
self.hasCategories = true
self.categories[ns] = self.categories[ns] or {}
table.insert(self.categories[ns], cat)
end
function MessageBox:addClass(class)
if not class then
return nil
end
table.insert(self.classes, class)
end
function MessageBox:setParameters()
local args = self.args
local cfg = self.cfg
-- Get type data.
self.type = args.type
local typeData = cfg.types[self.type]
self.invalidTypeError = cfg.showInvalidTypeError
and self.type
and not typeData
typeData = typeData or cfg.types[cfg.default]
self.typeClass = typeData.class
self.typeImage = typeData.image
-- Find if the box has been wrongly substituted.
self.isSubstituted = cfg.substCheck and args.subst == 'SUBST'
-- Find whether we are using a small message box.
self.isSmall = cfg.allowSmall and (
cfg.smallParam and args.small == cfg.smallParam
or not cfg.smallParam and yesno(args.small)
)
-- Add attributes, classes and styles.
self.id = args.id
if yesno(args.plainlinks) ~= false then
self:addClass('plainlinks')
end
for _, class in ipairs(cfg.classes or {}) do
self:addClass(class)
end
if self.isSmall then
self:addClass(cfg.smallClass or 'mbox-small')
end
self:addClass(self.typeClass)
self:addClass(args.class)
self.style = args.style
self.attrs = args.attrs
-- Set text style.
self.textstyle = args.textstyle
-- Find if we are on the template page or not. This functionality is only
-- used if useCollapsibleTextFields is set, or if both cfg.templateCategory
-- and cfg.templateCategoryRequireName are set.
self.useCollapsibleTextFields = cfg.useCollapsibleTextFields
if self.useCollapsibleTextFields
or cfg.templateCategory
and cfg.templateCategoryRequireName
then
self.name = args.name
if self.name then
local templateName = mw.ustring.match(
self.name,
'^[tT][eE][mM][pP][lL][aA][tT][eE][%s_]*:[%s_]*(.*)$'
) or self.name
templateName = 'Template:' .. templateName
self.templateTitle = getTitleObject(templateName)
end
self.isTemplatePage = self.templateTitle
and mw.title.equals(self.title, self.templateTitle)
end
-- Process data for collapsible text fields. At the moment these are only
-- used in {{ambox}}.
if self.useCollapsibleTextFields then
-- Get the self.issue value.
if self.isSmall and args.smalltext then
self.issue = args.smalltext
else
local sect
if args.sect == '' then
sect = 'This ' .. (cfg.sectionDefault or 'page')
elseif type(args.sect) == 'string' then
sect = 'This ' .. args.sect
end
local issue = args.issue
issue = type(issue) == 'string' and issue ~= '' and issue or nil
local text = args.text
text = type(text) == 'string' and text or nil
local issues = {}
table.insert(issues, sect)
table.insert(issues, issue)
table.insert(issues, text)
self.issue = table.concat(issues, ' ')
end
-- Get the self.talk value.
local talk = args.talk
-- Show talk links on the template page or template subpages if the talk
-- parameter is blank.
if talk == ''
and self.templateTitle
and (
mw.title.equals(self.templateTitle, self.title)
or self.title:isSubpageOf(self.templateTitle)
)
then
talk = '#'
elseif talk == '' then
talk = nil
end
if talk then
-- If the talk value is a talk page, make a link to that page. Else
-- assume that it's a section heading, and make a link to the talk
-- page of the current page with that section heading.
local talkTitle = getTitleObject(talk)
local talkArgIsTalkPage = true
if not talkTitle or not talkTitle.isTalkPage then
talkArgIsTalkPage = false
talkTitle = getTitleObject(
self.title.text,
mw.site.namespaces[self.title.namespace].talk.id
)
end
if talkTitle and talkTitle.exists then
local talkText = 'Relevant discussion may be found on'
if talkArgIsTalkPage then
talkText = string.format(
'%s [[%s|%s]].',
talkText,
talk,
talkTitle.prefixedText
)
else
talkText = string.format(
'%s the [[%s#%s|talk page]].',
talkText,
talkTitle.prefixedText,
talk
)
end
self.talk = talkText
end
end
-- Get other values.
self.fix = args.fix ~= '' and args.fix or nil
local date
if args.date and args.date ~= '' then
date = args.date
elseif args.date == '' and self.isTemplatePage then
date = lang:formatDate('F Y')
end
if date then
self.date = string.format(" <small>''(%s)''</small>", date)
end
self.info = args.info
if yesno(args.removalnotice) then
self.removalNotice = cfg.removalNotice
end
end
-- Set the non-collapsible text field. At the moment this is used by all box
-- types other than ambox, and also by ambox when small=yes.
if self.isSmall then
self.text = args.smalltext or args.text
else
self.text = args.text
end
-- Set the below row.
self.below = cfg.below and args.below
-- General image settings.
self.imageCellDiv = not self.isSmall and cfg.imageCellDiv
self.imageEmptyCell = cfg.imageEmptyCell
if cfg.imageEmptyCellStyle then
self.imageEmptyCellStyle = 'border:none;padding:0px;width:1px'
end
-- Left image settings.
local imageLeft = self.isSmall and args.smallimage or args.image
if cfg.imageCheckBlank and imageLeft ~= 'blank' and imageLeft ~= 'none'
or not cfg.imageCheckBlank and imageLeft ~= 'none'
then
self.imageLeft = imageLeft
if not imageLeft then
local imageSize = self.isSmall
and (cfg.imageSmallSize or '30x30px')
or '40x40px'
self.imageLeft = string.format('[[File:%s|%s|link=|alt=]]', self.typeImage
or 'Imbox notice.png', imageSize)
end
end
-- Right image settings.
local imageRight = self.isSmall and args.smallimageright or args.imageright
if not (cfg.imageRightNone and imageRight == 'none') then
self.imageRight = imageRight
end
end
function MessageBox:setMainspaceCategories()
local args = self.args
local cfg = self.cfg
if not cfg.allowMainspaceCategories then
return nil
end
local nums = {}
for _, prefix in ipairs{'cat', 'category', 'all'} do
args[prefix .. '1'] = args[prefix]
nums = union(nums, getArgNums(args, prefix))
end
-- The following is roughly equivalent to the old {{Ambox/category}}.
local date = args.date
date = type(date) == 'string' and date
local preposition = 'from'
for _, num in ipairs(nums) do
local mainCat = args['cat' .. tostring(num)]
or args['category' .. tostring(num)]
local allCat = args['all' .. tostring(num)]
mainCat = type(mainCat) == 'string' and mainCat
allCat = type(allCat) == 'string' and allCat
if mainCat and date and date ~= '' then
local catTitle = string.format('%s %s %s', mainCat, preposition, date)
self:addCat(0, catTitle)
catTitle = getTitleObject('Category:' .. catTitle)
if not catTitle or not catTitle.exists then
self:addCat(0, 'Articles with invalid date parameter in template')
end
elseif mainCat and (not date or date == '') then
self:addCat(0, mainCat)
end
if allCat then
self:addCat(0, allCat)
end
end
end
function MessageBox:setTemplateCategories()
local args = self.args
local cfg = self.cfg
-- Add template categories.
if cfg.templateCategory then
if cfg.templateCategoryRequireName then
if self.isTemplatePage then
self:addCat(10, cfg.templateCategory)
end
elseif not self.title.isSubpage then
self:addCat(10, cfg.templateCategory)
end
end
-- Add template error categories.
if cfg.templateErrorCategory then
local templateErrorCategory = cfg.templateErrorCategory
local templateCat, templateSort
if not self.name and not self.title.isSubpage then
templateCat = templateErrorCategory
elseif self.isTemplatePage then
local paramsToCheck = cfg.templateErrorParamsToCheck or {}
local count = 0
for i, param in ipairs(paramsToCheck) do
if not args[param] then
count = count + 1
end
end
if count > 0 then
templateCat = templateErrorCategory
templateSort = tostring(count)
end
if self.categoryNums and #self.categoryNums > 0 then
templateCat = templateErrorCategory
templateSort = 'C'
end
end
self:addCat(10, templateCat, templateSort)
end
end
function MessageBox:setAllNamespaceCategories()
-- Set categories for all namespaces.
if self.invalidTypeError then
local allSort = (self.title.namespace == 0 and 'Main:' or '') .. self.title.prefixedText
self:addCat('all', 'Wikipedia message box parameter needs fixing', allSort)
end
if self.isSubstituted then
self:addCat('all', 'Pages with incorrectly substituted templates')
end
end
function MessageBox:setCategories()
if self.title.namespace == 0 then
self:setMainspaceCategories()
elseif self.title.namespace == 10 then
self:setTemplateCategories()
end
self:setAllNamespaceCategories()
end
function MessageBox:renderCategories()
if not self.hasCategories then
-- No categories added, no need to pass them to Category handler so,
-- if it was invoked, it would return the empty string.
-- So we shortcut and return the empty string.
return ""
end
-- Convert category tables to strings and pass them through
-- [[Module:Category handler]].
return require('Module:Category handler')._main{
main = table.concat(self.categories[0] or {}),
template = table.concat(self.categories[10] or {}),
all = table.concat(self.categories.all or {}),
nocat = self.args.nocat,
page = self.args.page
}
end
function MessageBox:export()
local root = mw.html.create()
-- Add the subst check error.
if self.isSubstituted and self.name then
root:tag('b')
:addClass('error')
:wikitext(string.format(
'Template <code>%s[[Template:%s|%s]]%s</code> has been incorrectly substituted.',
mw.text.nowiki('{{'), self.name, self.name, mw.text.nowiki('}}')
))
end
-- Create the box table.
local boxTable = root:tag('table')
boxTable:attr('id', self.id or nil)
for i, class in ipairs(self.classes or {}) do
boxTable:addClass(class or nil)
end
boxTable
:cssText(self.style or nil)
:attr('role', 'presentation')
if self.attrs then
boxTable:attr(self.attrs)
end
-- Add the left-hand image.
local row = boxTable:tag('tr')
if self.imageLeft then
local imageLeftCell = row:tag('td'):addClass('mbox-image')
if self.imageCellDiv then
-- If we are using a div, redefine imageLeftCell so that the image
-- is inside it. Divs use style="width: 52px;", which limits the
-- image width to 52px. If any images in a div are wider than that,
-- they may overlap with the text or cause other display problems.
imageLeftCell = imageLeftCell:tag('div'):css('width', '52px')
end
imageLeftCell:wikitext(self.imageLeft or nil)
elseif self.imageEmptyCell then
-- Some message boxes define an empty cell if no image is specified, and
-- some don't. The old template code in templates where empty cells are
-- specified gives the following hint: "No image. Cell with some width
-- or padding necessary for text cell to have 100% width."
row:tag('td')
:addClass('mbox-empty-cell')
:cssText(self.imageEmptyCellStyle or nil)
end
-- Add the text.
local textCell = row:tag('td'):addClass('mbox-text')
if self.useCollapsibleTextFields then
-- The message box uses advanced text parameters that allow things to be
-- collapsible. At the moment, only ambox uses this.
textCell:cssText(self.textstyle or nil)
local textCellDiv = textCell:tag('div')
textCellDiv
:addClass('mbox-text-span')
:wikitext(self.issue or nil)
if (self.talk or self.fix) and not self.isSmall then
textCellDiv:tag('span')
:addClass('hide-when-compact')
:wikitext(self.talk and (' ' .. self.talk) or nil)
:wikitext(self.fix and (' ' .. self.fix) or nil)
end
textCellDiv:wikitext(self.date and (' ' .. self.date) or nil)
if self.info and not self.isSmall then
textCellDiv
:tag('span')
:addClass('hide-when-compact')
:wikitext(self.info and (' ' .. self.info) or nil)
end
if self.removalNotice then
textCellDiv:tag('small')
:addClass('hide-when-compact')
:tag('i')
:wikitext(string.format(" (%s)", self.removalNotice))
end
else
-- Default text formatting - anything goes.
textCell
:cssText(self.textstyle or nil)
:wikitext(self.text or nil)
end
-- Add the right-hand image.
if self.imageRight then
local imageRightCell = row:tag('td'):addClass('mbox-imageright')
if self.imageCellDiv then
-- If we are using a div, redefine imageRightCell so that the image
-- is inside it.
imageRightCell = imageRightCell:tag('div'):css('width', '52px')
end
imageRightCell
:wikitext(self.imageRight or nil)
end
-- Add the below row.
if self.below then
boxTable:tag('tr')
:tag('td')
:attr('colspan', self.imageRight and '3' or '2')
:addClass('mbox-text')
:cssText(self.textstyle or nil)
:wikitext(self.below or nil)
end
-- Add error message for invalid type parameters.
if self.invalidTypeError then
root:tag('div')
:css('text-align', 'center')
:wikitext(string.format(
'This message box is using an invalid "type=%s" parameter and needs fixing.',
self.type or ''
))
end
-- Add categories.
root:wikitext(self:renderCategories() or nil)
return tostring(root)
end
--------------------------------------------------------------------------------
-- Exports
--------------------------------------------------------------------------------
local p, mt = {}, {}
function p._exportClasses()
-- For testing.
return {
MessageBox = MessageBox
}
end
function p.main(boxType, args, cfgTables)
local box = MessageBox.new(boxType, args, cfgTables or mw.loadData(CONFIG_MODULE))
box:setParameters()
box:setCategories()
return box:export()
end
function mt.__index(t, k)
return function (frame)
if not getArgs then
getArgs = require('Module:Arguments').getArgs
end
return t.main(k, getArgs(frame, {trim = false, removeBlanks = false}))
end
end
return setmetatable(p, mt)
39d4071dc75c256d3094ce8a34e631eada1e3e2e
Module:Message box/configuration
828
35
85
84
2018-05-21T20:36:06Z
Wizzup
4
1 revision imported
Scribunto
text/plain
--------------------------------------------------------------------------------
-- Message box configuration --
-- --
-- This module contains configuration data for [[Module:Message box]]. --
--------------------------------------------------------------------------------
return {
ambox = {
types = {
speedy = {
class = 'ambox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'ambox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'ambox-content',
image = 'Ambox important.svg'
},
style = {
class = 'ambox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'ambox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'ambox-protection',
image = 'Padlock-silver-medium.svg'
},
notice = {
class = 'ambox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
allowBlankParams = {'talk', 'sect', 'date', 'issue', 'fix', 'subst', 'hidden'},
allowSmall = true,
smallParam = 'left',
smallClass = 'mbox-small-left',
substCheck = true,
classes = {'metadata', 'ambox'},
imageEmptyCell = true,
imageCheckBlank = true,
imageSmallSize = '20x20px',
imageCellDiv = true,
useCollapsibleTextFields = true,
imageRightNone = true,
sectionDefault = 'article',
allowMainspaceCategories = true,
templateCategory = 'Article message templates',
templateCategoryRequireName = true,
templateErrorCategory = 'Article message templates with missing parameters',
templateErrorParamsToCheck = {'issue', 'fix', 'subst'},
removalNotice = '[[Help:Maintenance template removal|Learn how and when to remove this template message]]'
},
cmbox = {
types = {
speedy = {
class = 'cmbox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'cmbox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'cmbox-content',
image = 'Ambox important.svg'
},
style = {
class = 'cmbox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'cmbox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'cmbox-protection',
image = 'Padlock-silver-medium.svg'
},
notice = {
class = 'cmbox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'cmbox'},
imageEmptyCell = true
},
fmbox = {
types = {
warning = {
class = 'fmbox-warning',
image = 'Ambox warning pn.svg'
},
editnotice = {
class = 'fmbox-editnotice',
image = 'Information icon4.svg'
},
system = {
class = 'fmbox-system',
image = 'Information icon4.svg'
}
},
default = 'system',
showInvalidTypeError = true,
classes = {'fmbox'},
imageEmptyCell = false,
imageRightNone = false
},
imbox = {
types = {
speedy = {
class = 'imbox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'imbox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'imbox-content',
image = 'Ambox important.svg'
},
style = {
class = 'imbox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'imbox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'imbox-protection',
image = 'Padlock-silver-medium.svg'
},
license = {
class = 'imbox-license licensetpl',
image = 'Imbox license.png' -- @todo We need an SVG version of this
},
featured = {
class = 'imbox-featured',
image = 'Cscr-featured.svg'
},
notice = {
class = 'imbox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'imbox'},
imageEmptyCell = true,
below = true,
templateCategory = 'File message boxes'
},
ombox = {
types = {
speedy = {
class = 'ombox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'ombox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'ombox-content',
image = 'Ambox important.svg'
},
style = {
class = 'ombox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'ombox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'ombox-protection',
image = 'Padlock-silver-medium.svg'
},
notice = {
class = 'ombox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'ombox'},
allowSmall = true,
imageEmptyCell = true,
imageRightNone = true
},
tmbox = {
types = {
speedy = {
class = 'tmbox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'tmbox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'tmbox-content',
image = 'Ambox important.svg'
},
style = {
class = 'tmbox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'tmbox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'tmbox-protection',
image = 'Padlock-silver-medium.svg'
},
notice = {
class = 'tmbox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'tmbox'},
allowSmall = true,
imageRightNone = true,
imageEmptyCell = true,
imageEmptyCellStyle = true,
templateCategory = 'Talk message boxes'
}
}
0a35f7ed72823141fd5c661fd96cfa6d7a3a823a
Module:Navbar
828
36
87
86
2018-05-21T20:36:06Z
Wizzup
4
1 revision imported
Scribunto
text/plain
local p = {}
local getArgs
local ul
function p.addItem (mini, full, link, descrip, args, url)
local l
if url then
l = {'[', '', ']'}
else
l = {'[[', '|', ']]'}
end
ul:tag('li')
:addClass('nv-'..full)
:wikitext(l[1] .. link .. l[2])
:tag(args.mini and 'abbr' or 'span')
:attr('title', descrip..' this template')
:cssText(args.fontstyle)
:wikitext(args.mini and mini or full)
:done()
:wikitext(l[3])
end
function p.brackets (position, c, args, div)
if args.brackets then
div
:tag('span')
:css('margin-'..position, '-0.125em')
:cssText(args.fontstyle)
:wikitext(c)
end
end
function p._navbar(args)
local show = {true, true, true, false, false, false}
local titleArg = 1
if args.collapsible then
titleArg = 2
if not args.plain then args.mini = 1 end
if args.fontcolor then
args.fontstyle = 'color:' .. args.fontcolor .. ';'
end
args.style = 'float:left; text-align:left'
end
if args.template then
titleArg = 'template'
show = {true, false, false, false, false, false}
local index = {t = 2, d = 2, e = 3, h = 4, m = 5, w = 6, talk = 2, edit = 3, hist = 4, move = 5, watch = 6}
for k,v in ipairs(require ('Module:TableTools').compressSparseArray(args)) do
local num = index[v]
if num then show[num] = true end
end
end
if args.noedit then show[3] = false end
local titleText = args[titleArg] or (':' .. mw.getCurrentFrame():getParent():getTitle())
local title = mw.title.new(mw.text.trim(titleText), 'Template')
if not title then
error('Invalid title ' .. titleText)
end
local talkpage = title.talkPageTitle and title.talkPageTitle.fullText or ''
local div = mw.html.create():tag('div')
div
:addClass('plainlinks')
:addClass('hlist')
:addClass('navbar')
:cssText(args.style)
if args.mini then div:addClass('mini') end
if not (args.mini or args.plain) then
div
:tag('span')
:css('word-spacing', 0)
:cssText(args.fontstyle)
:wikitext(args.text or 'This box:')
:wikitext(' ')
end
p.brackets('right', '[ ', args, div)
ul = div:tag('ul')
if show[1] then p.addItem('v', 'view', title.fullText, 'View', args) end
if show[2] then p.addItem('t', 'talk', talkpage, 'Discuss', args) end
if show[3] then p.addItem('e', 'edit', title:fullUrl('action=edit'), 'Edit', args, true) end
if show[4] then p.addItem('h', 'hist', title:fullUrl('action=history'), 'History of', args, true) end
if show[5] then
local move = mw.title.new ('Special:Movepage')
p.addItem('m', 'move', move:fullUrl('target='..title.fullText), 'Move', args, true) end
if show[6] then p.addItem('w', 'watch', title:fullUrl('action=watch'), 'Watch', args, true) end
p.brackets('left', ' ]', args, div)
if args.collapsible then
div
:done()
:tag('div')
:css('font-size', '114%')
:css('margin', args.mini and '0 4em' or '0 7em')
:cssText(args.fontstyle)
:wikitext(args[1])
end
return tostring(div:done())
end
function p.navbar(frame)
if not getArgs then
getArgs = require('Module:Arguments').getArgs
end
return p._navbar(getArgs(frame))
end
return p
04f3b81927127526bd5d8bda44128b559fc97d0d
Module:No globals
828
37
89
88
2018-05-21T20:36:06Z
Wizzup
4
1 revision imported
Scribunto
text/plain
local mt = getmetatable(_G) or {}
function mt.__index (t, k)
if k ~= 'arg' then
error('Tried to read nil global ' .. tostring(k), 2)
end
return nil
end
function mt.__newindex(t, k, v)
if k ~= 'arg' then
error('Tried to write global ' .. tostring(k), 2)
end
rawset(t, k, v)
end
setmetatable(_G, mt)
8ce3969f7d53b08bd00dabe4cc9780bc6afd412a
Module:Parameter names example
828
38
91
90
2018-05-21T20:36:07Z
Wizzup
4
1 revision imported
Scribunto
text/plain
-- This module implements {{parameter names example}}.
local p = {}
local function makeParam(s)
local lb = '{'
local rb = '}'
return lb:rep(3) .. s .. rb:rep(3)
end
local function italicize(s)
return "''" .. s .. "''"
end
local function plain(s)
return s
end
function p._main(args, frame)
-- Find how we want to format the arguments to the template.
local formatFunc
if args._display == 'italics' or args._display == 'italic' then
formatFunc = italicize
elseif args._display == 'plain' then
formatFunc = plain
else
formatFunc = makeParam
end
-- Build the table of template arguments.
local targs = {}
for k, v in pairs(args) do
if type(k) == 'number' then
targs[v] = formatFunc(v)
elseif not k:find('^_') then
targs[k] = v
end
end
-- Find the template name.
local template
if args._template then
template = args._template
else
local currentTitle = mw.title.getCurrentTitle()
if currentTitle.prefixedText:find('/sandbox$') then
template = currentTitle.prefixedText
else
template = currentTitle.basePageTitle.prefixedText
end
end
-- Call the template with the arguments.
frame = frame or mw.getCurrentFrame()
local success, result = pcall(
frame.expandTemplate,
frame,
{title = template, args = targs}
)
if success then
return result
else
return ''
end
end
function p.main(frame)
local args = require('Module:Arguments').getArgs(frame, {
wrappers = 'Template:Parameter names example'
})
return p._main(args, frame)
end
return p
391f002bab27f87b76adcc1e33439496d080e6ab
Module:Protection banner
828
39
93
92
2018-05-21T20:36:07Z
Wizzup
4
1 revision imported
Scribunto
text/plain
-- This module implements {{pp-meta}} and its daughter templates such as
-- {{pp-dispute}}, {{pp-vandalism}} and {{pp-sock}}.
-- Initialise necessary modules.
require('Module:No globals')
local makeFileLink = require('Module:File link')._main
local effectiveProtectionLevel = require('Module:Effective protection level')._main
local effectiveProtectionExpiry = require('Module:Effective protection expiry')._main
local yesno = require('Module:Yesno')
-- Lazily initialise modules and objects we don't always need.
local getArgs, makeMessageBox, lang
-- Set constants.
local CONFIG_MODULE = 'Module:Protection banner/config'
--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------
local function makeCategoryLink(cat, sort)
if cat then
return string.format(
'[[%s:%s|%s]]',
mw.site.namespaces[14].name,
cat,
sort
)
end
end
-- Validation function for the expiry and the protection date
local function validateDate(dateString, dateType)
if not lang then
lang = mw.language.getContentLanguage()
end
local success, result = pcall(lang.formatDate, lang, 'U', dateString)
if success then
result = tonumber(result)
if result then
return result
end
end
error(string.format(
'invalid %s: %s',
dateType,
tostring(dateString)
), 4)
end
local function makeFullUrl(page, query, display)
return string.format(
'[%s %s]',
tostring(mw.uri.fullUrl(page, query)),
display
)
end
-- Given a directed graph formatted as node -> table of direct successors,
-- get a table of all nodes reachable from a given node (though always
-- including the given node).
local function getReachableNodes(graph, start)
local toWalk, retval = {[start] = true}, {}
while true do
-- Can't use pairs() since we're adding and removing things as we're iterating
local k = next(toWalk) -- This always gets the "first" key
if k == nil then
return retval
end
toWalk[k] = nil
retval[k] = true
for _,v in ipairs(graph[k]) do
if not retval[v] then
toWalk[v] = true
end
end
end
end
--------------------------------------------------------------------------------
-- Protection class
--------------------------------------------------------------------------------
local Protection = {}
Protection.__index = Protection
Protection.supportedActions = {
edit = true,
move = true,
autoreview = true,
upload = true
}
Protection.bannerConfigFields = {
'text',
'explanation',
'tooltip',
'alt',
'link',
'image'
}
function Protection.new(args, cfg, title)
local obj = {}
obj._cfg = cfg
obj.title = title or mw.title.getCurrentTitle()
-- Set action
if not args.action then
obj.action = 'edit'
elseif Protection.supportedActions[args.action] then
obj.action = args.action
else
error(string.format(
'invalid action: %s',
tostring(args.action)
), 3)
end
-- Set level
obj.level = args.demolevel or effectiveProtectionLevel(obj.action, obj.title)
if not obj.level or (obj.action == 'move' and obj.level == 'autoconfirmed') then
-- Users need to be autoconfirmed to move pages anyway, so treat
-- semi-move-protected pages as unprotected.
obj.level = '*'
end
-- Set expiry
local effectiveExpiry = effectiveProtectionExpiry(obj.action, obj.title)
if effectiveExpiry == 'infinity' then
obj.expiry = 'indef'
elseif effectiveExpiry ~= 'unknown' then
obj.expiry = validateDate(effectiveExpiry, 'expiry date')
end
-- Set reason
if args[1] then
obj.reason = mw.ustring.lower(args[1])
if obj.reason:find('|') then
error('reasons cannot contain the pipe character ("|")', 3)
end
end
-- Set protection date
if args.date then
obj.protectionDate = validateDate(args.date, 'protection date')
end
-- Set banner config
do
obj.bannerConfig = {}
local configTables = {}
if cfg.banners[obj.action] then
configTables[#configTables + 1] = cfg.banners[obj.action][obj.reason]
end
if cfg.defaultBanners[obj.action] then
configTables[#configTables + 1] = cfg.defaultBanners[obj.action][obj.level]
configTables[#configTables + 1] = cfg.defaultBanners[obj.action].default
end
configTables[#configTables + 1] = cfg.masterBanner
for i, field in ipairs(Protection.bannerConfigFields) do
for j, t in ipairs(configTables) do
if t[field] then
obj.bannerConfig[field] = t[field]
break
end
end
end
end
return setmetatable(obj, Protection)
end
function Protection:isProtected()
return self.level ~= '*'
end
function Protection:isTemporary()
return type(self.expiry) == 'number'
end
function Protection:makeProtectionCategory()
local cfg = self._cfg
local title = self.title
-- Exit if the page is not protected.
if not self:isProtected() then
return ''
end
-- Get the expiry key fragment.
local expiryFragment
if self.expiry == 'indef' then
expiryFragment = self.expiry
elseif type(self.expiry) == 'number' then
expiryFragment = 'temp'
end
-- Get the namespace key fragment.
local namespaceFragment = cfg.categoryNamespaceKeys[title.namespace]
if not namespaceFragment and title.namespace % 2 == 1 then
namespaceFragment = 'talk'
end
-- Define the order that key fragments are tested in. This is done with an
-- array of tables containing the value to be tested, along with its
-- position in the cfg.protectionCategories table.
local order = {
{val = expiryFragment, keypos = 1},
{val = namespaceFragment, keypos = 2},
{val = self.reason, keypos = 3},
{val = self.level, keypos = 4},
{val = self.action, keypos = 5}
}
--[[
-- The old protection templates used an ad-hoc protection category system,
-- with some templates prioritising namespaces in their categories, and
-- others prioritising the protection reason. To emulate this in this module
-- we use the config table cfg.reasonsWithNamespacePriority to set the
-- reasons for which namespaces have priority over protection reason.
-- If we are dealing with one of those reasons, move the namespace table to
-- the end of the order table, i.e. give it highest priority. If not, the
-- reason should have highest priority, so move that to the end of the table
-- instead.
--]]
table.insert(order, table.remove(order, self.reason and cfg.reasonsWithNamespacePriority[self.reason] and 2 or 3))
--[[
-- Define the attempt order. Inactive subtables (subtables with nil "value"
-- fields) are moved to the end, where they will later be given the key
-- "all". This is to cut down on the number of table lookups in
-- cfg.protectionCategories, which grows exponentially with the number of
-- non-nil keys. We keep track of the number of active subtables with the
-- noActive parameter.
--]]
local noActive, attemptOrder
do
local active, inactive = {}, {}
for i, t in ipairs(order) do
if t.val then
active[#active + 1] = t
else
inactive[#inactive + 1] = t
end
end
noActive = #active
attemptOrder = active
for i, t in ipairs(inactive) do
attemptOrder[#attemptOrder + 1] = t
end
end
--[[
-- Check increasingly generic key combinations until we find a match. If a
-- specific category exists for the combination of key fragments we are
-- given, that match will be found first. If not, we keep trying different
-- key fragment combinations until we match using the key
-- "all-all-all-all-all".
--
-- To generate the keys, we index the key subtables using a binary matrix
-- with indexes i and j. j is only calculated up to the number of active
-- subtables. For example, if there were three active subtables, the matrix
-- would look like this, with 0 corresponding to the key fragment "all", and
-- 1 corresponding to other key fragments.
--
-- j 1 2 3
-- i
-- 1 1 1 1
-- 2 0 1 1
-- 3 1 0 1
-- 4 0 0 1
-- 5 1 1 0
-- 6 0 1 0
-- 7 1 0 0
-- 8 0 0 0
--
-- Values of j higher than the number of active subtables are set
-- to the string "all".
--
-- A key for cfg.protectionCategories is constructed for each value of i.
-- The position of the value in the key is determined by the keypos field in
-- each subtable.
--]]
local cats = cfg.protectionCategories
for i = 1, 2^noActive do
local key = {}
for j, t in ipairs(attemptOrder) do
if j > noActive then
key[t.keypos] = 'all'
else
local quotient = i / 2 ^ (j - 1)
quotient = math.ceil(quotient)
if quotient % 2 == 1 then
key[t.keypos] = t.val
else
key[t.keypos] = 'all'
end
end
end
key = table.concat(key, '|')
local attempt = cats[key]
if attempt then
return makeCategoryLink(attempt, title.text)
end
end
return ''
end
function Protection:isIncorrect()
local expiry = self.expiry
return not self:isProtected()
or type(expiry) == 'number' and expiry < os.time()
end
function Protection:isTemplateProtectedNonTemplate()
local action, namespace = self.action, self.title.namespace
return self.level == 'templateeditor'
and (
(action ~= 'edit' and action ~= 'move')
or (namespace ~= 10 and namespace ~= 828)
)
end
function Protection:makeCategoryLinks()
local msg = self._cfg.msg
local ret = { self:makeProtectionCategory() }
if self:isIncorrect() then
ret[#ret + 1] = makeCategoryLink(
msg['tracking-category-incorrect'],
self.title.text
)
end
if self:isTemplateProtectedNonTemplate() then
ret[#ret + 1] = makeCategoryLink(
msg['tracking-category-template'],
self.title.text
)
end
return table.concat(ret)
end
--------------------------------------------------------------------------------
-- Blurb class
--------------------------------------------------------------------------------
local Blurb = {}
Blurb.__index = Blurb
Blurb.bannerTextFields = {
text = true,
explanation = true,
tooltip = true,
alt = true,
link = true
}
function Blurb.new(protectionObj, args, cfg)
return setmetatable({
_cfg = cfg,
_protectionObj = protectionObj,
_args = args
}, Blurb)
end
-- Private methods --
function Blurb:_formatDate(num)
-- Formats a Unix timestamp into dd Month, YYYY format.
lang = lang or mw.language.getContentLanguage()
local success, date = pcall(
lang.formatDate,
lang,
self._cfg.msg['expiry-date-format'] or 'j F Y',
'@' .. tostring(num)
)
if success then
return date
end
end
function Blurb:_getExpandedMessage(msgKey)
return self:_substituteParameters(self._cfg.msg[msgKey])
end
function Blurb:_substituteParameters(msg)
if not self._params then
local parameterFuncs = {}
parameterFuncs.CURRENTVERSION = self._makeCurrentVersionParameter
parameterFuncs.EDITREQUEST = self._makeEditRequestParameter
parameterFuncs.EXPIRY = self._makeExpiryParameter
parameterFuncs.EXPLANATIONBLURB = self._makeExplanationBlurbParameter
parameterFuncs.IMAGELINK = self._makeImageLinkParameter
parameterFuncs.INTROBLURB = self._makeIntroBlurbParameter
parameterFuncs.INTROFRAGMENT = self._makeIntroFragmentParameter
parameterFuncs.PAGETYPE = self._makePagetypeParameter
parameterFuncs.PROTECTIONBLURB = self._makeProtectionBlurbParameter
parameterFuncs.PROTECTIONDATE = self._makeProtectionDateParameter
parameterFuncs.PROTECTIONLEVEL = self._makeProtectionLevelParameter
parameterFuncs.PROTECTIONLOG = self._makeProtectionLogParameter
parameterFuncs.TALKPAGE = self._makeTalkPageParameter
parameterFuncs.TOOLTIPBLURB = self._makeTooltipBlurbParameter
parameterFuncs.TOOLTIPFRAGMENT = self._makeTooltipFragmentParameter
parameterFuncs.VANDAL = self._makeVandalTemplateParameter
self._params = setmetatable({}, {
__index = function (t, k)
local param
if parameterFuncs[k] then
param = parameterFuncs[k](self)
end
param = param or ''
t[k] = param
return param
end
})
end
msg = msg:gsub('${(%u+)}', self._params)
return msg
end
function Blurb:_makeCurrentVersionParameter()
-- A link to the page history or the move log, depending on the kind of
-- protection.
local pagename = self._protectionObj.title.prefixedText
if self._protectionObj.action == 'move' then
-- We need the move log link.
return makeFullUrl(
'Special:Log',
{type = 'move', page = pagename},
self:_getExpandedMessage('current-version-move-display')
)
else
-- We need the history link.
return makeFullUrl(
pagename,
{action = 'history'},
self:_getExpandedMessage('current-version-edit-display')
)
end
end
function Blurb:_makeEditRequestParameter()
local mEditRequest = require('Module:Submit an edit request')
local action = self._protectionObj.action
local level = self._protectionObj.level
-- Get the edit request type.
local requestType
if action == 'edit' then
if level == 'autoconfirmed' then
requestType = 'semi'
elseif level == 'extendedconfirmed' then
requestType = 'extended'
elseif level == 'templateeditor' then
requestType = 'template'
end
end
requestType = requestType or 'full'
-- Get the display value.
local display = self:_getExpandedMessage('edit-request-display')
return mEditRequest._link{type = requestType, display = display}
end
function Blurb:_makeExpiryParameter()
local expiry = self._protectionObj.expiry
if type(expiry) == 'number' then
return self:_formatDate(expiry)
else
return expiry
end
end
function Blurb:_makeExplanationBlurbParameter()
-- Cover special cases first.
if self._protectionObj.title.namespace == 8 then
-- MediaWiki namespace
return self:_getExpandedMessage('explanation-blurb-nounprotect')
end
-- Get explanation blurb table keys
local action = self._protectionObj.action
local level = self._protectionObj.level
local talkKey = self._protectionObj.title.isTalkPage and 'talk' or 'subject'
-- Find the message in the explanation blurb table and substitute any
-- parameters.
local explanations = self._cfg.explanationBlurbs
local msg
if explanations[action][level] and explanations[action][level][talkKey] then
msg = explanations[action][level][talkKey]
elseif explanations[action][level] and explanations[action][level].default then
msg = explanations[action][level].default
elseif explanations[action].default and explanations[action].default[talkKey] then
msg = explanations[action].default[talkKey]
elseif explanations[action].default and explanations[action].default.default then
msg = explanations[action].default.default
else
error(string.format(
'could not find explanation blurb for action "%s", level "%s" and talk key "%s"',
action,
level,
talkKey
), 8)
end
return self:_substituteParameters(msg)
end
function Blurb:_makeImageLinkParameter()
local imageLinks = self._cfg.imageLinks
local action = self._protectionObj.action
local level = self._protectionObj.level
local msg
if imageLinks[action][level] then
msg = imageLinks[action][level]
elseif imageLinks[action].default then
msg = imageLinks[action].default
else
msg = imageLinks.edit.default
end
return self:_substituteParameters(msg)
end
function Blurb:_makeIntroBlurbParameter()
if self._protectionObj:isTemporary() then
return self:_getExpandedMessage('intro-blurb-expiry')
else
return self:_getExpandedMessage('intro-blurb-noexpiry')
end
end
function Blurb:_makeIntroFragmentParameter()
if self._protectionObj:isTemporary() then
return self:_getExpandedMessage('intro-fragment-expiry')
else
return self:_getExpandedMessage('intro-fragment-noexpiry')
end
end
function Blurb:_makePagetypeParameter()
local pagetypes = self._cfg.pagetypes
return pagetypes[self._protectionObj.title.namespace]
or pagetypes.default
or error('no default pagetype defined', 8)
end
function Blurb:_makeProtectionBlurbParameter()
local protectionBlurbs = self._cfg.protectionBlurbs
local action = self._protectionObj.action
local level = self._protectionObj.level
local msg
if protectionBlurbs[action][level] then
msg = protectionBlurbs[action][level]
elseif protectionBlurbs[action].default then
msg = protectionBlurbs[action].default
elseif protectionBlurbs.edit.default then
msg = protectionBlurbs.edit.default
else
error('no protection blurb defined for protectionBlurbs.edit.default', 8)
end
return self:_substituteParameters(msg)
end
function Blurb:_makeProtectionDateParameter()
local protectionDate = self._protectionObj.protectionDate
if type(protectionDate) == 'number' then
return self:_formatDate(protectionDate)
else
return protectionDate
end
end
function Blurb:_makeProtectionLevelParameter()
local protectionLevels = self._cfg.protectionLevels
local action = self._protectionObj.action
local level = self._protectionObj.level
local msg
if protectionLevels[action][level] then
msg = protectionLevels[action][level]
elseif protectionLevels[action].default then
msg = protectionLevels[action].default
elseif protectionLevels.edit.default then
msg = protectionLevels.edit.default
else
error('no protection level defined for protectionLevels.edit.default', 8)
end
return self:_substituteParameters(msg)
end
function Blurb:_makeProtectionLogParameter()
local pagename = self._protectionObj.title.prefixedText
if self._protectionObj.action == 'autoreview' then
-- We need the pending changes log.
return makeFullUrl(
'Special:Log',
{type = 'stable', page = pagename},
self:_getExpandedMessage('pc-log-display')
)
else
-- We need the protection log.
return makeFullUrl(
'Special:Log',
{type = 'protect', page = pagename},
self:_getExpandedMessage('protection-log-display')
)
end
end
function Blurb:_makeTalkPageParameter()
return string.format(
'[[%s:%s#%s|%s]]',
mw.site.namespaces[self._protectionObj.title.namespace].talk.name,
self._protectionObj.title.text,
self._args.section or 'top',
self:_getExpandedMessage('talk-page-link-display')
)
end
function Blurb:_makeTooltipBlurbParameter()
if self._protectionObj:isTemporary() then
return self:_getExpandedMessage('tooltip-blurb-expiry')
else
return self:_getExpandedMessage('tooltip-blurb-noexpiry')
end
end
function Blurb:_makeTooltipFragmentParameter()
if self._protectionObj:isTemporary() then
return self:_getExpandedMessage('tooltip-fragment-expiry')
else
return self:_getExpandedMessage('tooltip-fragment-noexpiry')
end
end
function Blurb:_makeVandalTemplateParameter()
return require('Module:Vandal-m')._main{
self._args.user or self._protectionObj.title.baseText
}
end
-- Public methods --
function Blurb:makeBannerText(key)
-- Validate input.
if not key or not Blurb.bannerTextFields[key] then
error(string.format(
'"%s" is not a valid banner config field',
tostring(key)
), 2)
end
-- Generate the text.
local msg = self._protectionObj.bannerConfig[key]
if type(msg) == 'string' then
return self:_substituteParameters(msg)
elseif type(msg) == 'function' then
msg = msg(self._protectionObj, self._args)
if type(msg) ~= 'string' then
error(string.format(
'bad output from banner config function with key "%s"'
.. ' (expected string, got %s)',
tostring(key),
type(msg)
), 4)
end
return self:_substituteParameters(msg)
end
end
--------------------------------------------------------------------------------
-- BannerTemplate class
--------------------------------------------------------------------------------
local BannerTemplate = {}
BannerTemplate.__index = BannerTemplate
function BannerTemplate.new(protectionObj, cfg)
local obj = {}
obj._cfg = cfg
-- Set the image filename.
local imageFilename = protectionObj.bannerConfig.image
if imageFilename then
obj._imageFilename = imageFilename
else
-- If an image filename isn't specified explicitly in the banner config,
-- generate it from the protection status and the namespace.
local action = protectionObj.action
local level = protectionObj.level
local namespace = protectionObj.title.namespace
local reason = protectionObj.reason
-- Deal with special cases first.
if (
namespace == 10
or namespace == 828
or reason and obj._cfg.indefImageReasons[reason]
)
and action == 'edit'
and level == 'sysop'
and not protectionObj:isTemporary()
then
-- Fully protected modules and templates get the special red "indef"
-- padlock.
obj._imageFilename = obj._cfg.msg['image-filename-indef']
else
-- Deal with regular protection types.
local images = obj._cfg.images
if images[action] then
if images[action][level] then
obj._imageFilename = images[action][level]
elseif images[action].default then
obj._imageFilename = images[action].default
end
end
end
end
return setmetatable(obj, BannerTemplate)
end
function BannerTemplate:renderImage()
local filename = self._imageFilename
or self._cfg.msg['image-filename-default']
or 'Transparent.gif'
return makeFileLink{
file = filename,
size = (self.imageWidth or 20) .. 'px',
alt = self._imageAlt,
link = self._imageLink,
caption = self.imageCaption
}
end
--------------------------------------------------------------------------------
-- Banner class
--------------------------------------------------------------------------------
local Banner = setmetatable({}, BannerTemplate)
Banner.__index = Banner
function Banner.new(protectionObj, blurbObj, cfg)
local obj = BannerTemplate.new(protectionObj, cfg) -- This doesn't need the blurb.
obj.imageWidth = 40
obj.imageCaption = blurbObj:makeBannerText('alt') -- Large banners use the alt text for the tooltip.
obj._reasonText = blurbObj:makeBannerText('text')
obj._explanationText = blurbObj:makeBannerText('explanation')
obj._page = protectionObj.title.prefixedText -- Only makes a difference in testing.
return setmetatable(obj, Banner)
end
function Banner:__tostring()
-- Renders the banner.
makeMessageBox = makeMessageBox or require('Module:Message box').main
local reasonText = self._reasonText or error('no reason text set', 2)
local explanationText = self._explanationText
local mbargs = {
page = self._page,
type = 'protection',
image = self:renderImage(),
text = string.format(
"'''%s'''%s",
reasonText,
explanationText and '<br />' .. explanationText or ''
)
}
return makeMessageBox('mbox', mbargs)
end
--------------------------------------------------------------------------------
-- Padlock class
--------------------------------------------------------------------------------
local Padlock = setmetatable({}, BannerTemplate)
Padlock.__index = Padlock
function Padlock.new(protectionObj, blurbObj, cfg)
local obj = BannerTemplate.new(protectionObj, cfg) -- This doesn't need the blurb.
obj.imageWidth = 20
obj.imageCaption = blurbObj:makeBannerText('tooltip')
obj._imageAlt = blurbObj:makeBannerText('alt')
obj._imageLink = blurbObj:makeBannerText('link')
obj._indicatorName = cfg.padlockIndicatorNames[protectionObj.action]
or cfg.padlockIndicatorNames.default
or 'pp-default'
return setmetatable(obj, Padlock)
end
function Padlock:__tostring()
local frame = mw.getCurrentFrame()
-- The nowiki tag helps prevent whitespace at the top of articles.
return frame:extensionTag{name = 'nowiki'} .. frame:extensionTag{
name = 'indicator',
args = {name = self._indicatorName},
content = self:renderImage()
}
end
--------------------------------------------------------------------------------
-- Exports
--------------------------------------------------------------------------------
local p = {}
function p._exportClasses()
-- This is used for testing purposes.
return {
Protection = Protection,
Blurb = Blurb,
BannerTemplate = BannerTemplate,
Banner = Banner,
Padlock = Padlock,
}
end
function p._main(args, cfg, title)
args = args or {}
cfg = cfg or require(CONFIG_MODULE)
local protectionObj = Protection.new(args, cfg, title)
local ret = {}
-- If a page's edit protection is equally or more restrictive than its
-- protection from some other action, then don't bother displaying anything
-- for the other action (except categories).
if protectionObj.action == 'edit' or
args.demolevel or
not getReachableNodes(
cfg.hierarchy,
protectionObj.level
)[effectiveProtectionLevel('edit', protectionObj.title)]
then
-- Initialise the blurb object
local blurbObj = Blurb.new(protectionObj, args, cfg)
-- Render the banner
if protectionObj:isProtected() then
ret[#ret + 1] = tostring(
(yesno(args.small) and Padlock or Banner)
.new(protectionObj, blurbObj, cfg)
)
end
end
-- Render the categories
if yesno(args.category) ~= false then
ret[#ret + 1] = protectionObj:makeCategoryLinks()
end
return table.concat(ret)
end
function p.main(frame, cfg)
cfg = cfg or require(CONFIG_MODULE)
-- Find default args, if any.
local parent = frame.getParent and frame:getParent()
local defaultArgs = parent and cfg.wrappers[parent:getTitle():gsub('/sandbox$', '')]
-- Find user args, and use the parent frame if we are being called from a
-- wrapper template.
getArgs = getArgs or require('Module:Arguments').getArgs
local userArgs = getArgs(frame, {
parentOnly = defaultArgs,
frameOnly = not defaultArgs
})
-- Build the args table. User-specified args overwrite default args.
local args = {}
for k, v in pairs(defaultArgs or {}) do
args[k] = v
end
for k, v in pairs(userArgs) do
args[k] = v
end
return p._main(args, cfg)
end
return p
9d0a8a59e09f1bb6f641e6d0f7e27b3f3686cc6e
Module:Protection banner/config
828
40
95
94
2018-05-21T20:36:08Z
Wizzup
4
1 revision imported
Scribunto
text/plain
-- This module provides configuration data for [[Module:Protection banner]].
return {
--------------------------------------------------------------------------------
--
-- BANNER DATA
--
--------------------------------------------------------------------------------
--[[
-- Banner data consists of six fields:
-- * text - the main protection text that appears at the top of protection
-- banners.
-- * explanation - the text that appears below the main protection text, used
-- to explain the details of the protection.
-- * tooltip - the tooltip text you see when you move the mouse over a small
-- padlock icon.
-- * link - the page that the small padlock icon links to.
-- * alt - the alt text for the small padlock icon. This is also used as tooltip
-- text for the large protection banners.
-- * image - the padlock image used in both protection banners and small padlock
-- icons.
--
-- The module checks in three separate tables to find a value for each field.
-- First it checks the banners table, which has values specific to the reason
-- for the page being protected. Then the module checks the defaultBanners
-- table, which has values specific to each protection level. Finally, the
-- module checks the masterBanner table, which holds data for protection
-- templates to use if no data has been found in the previous two tables.
--
-- The values in the banner data can take parameters. These are specified
-- using ${TEXTLIKETHIS} (a dollar sign preceding a parameter name
-- enclosed in curly braces).
--
-- Available parameters:
--
-- ${CURRENTVERSION} - a link to the page history or the move log, with the
-- display message "current-version-edit-display" or
-- "current-version-move-display".
--
-- ${EDITREQUEST} - a link to create an edit request for the current page.
--
-- ${EXPLANATIONBLURB} - an explanation blurb, e.g. "Please discuss any changes
-- on the talk page; you may submit a request to ask an administrator to make
-- an edit if it is minor or supported by consensus."
--
-- ${IMAGELINK} - a link to set the image to, depending on the protection
-- action and protection level.
--
-- ${INTROBLURB} - the PROTECTIONBLURB parameter, plus the expiry if an expiry
-- is set. E.g. "Editing of this page by new or unregistered users is currently
-- disabled until dd Month YYYY."
--
-- ${INTROFRAGMENT} - the same as ${INTROBLURB}, but without final punctuation
-- so that it can be used in run-on sentences.
--
-- ${PAGETYPE} - the type of the page, e.g. "article" or "template".
-- Defined in the cfg.pagetypes table.
--
-- ${PROTECTIONBLURB} - a blurb explaining the protection level of the page, e.g.
-- "Editing of this page by new or unregistered users is currently disabled"
--
-- ${PROTECTIONDATE} - the protection date, if it has been supplied to the
-- template.
--
-- ${PROTECTIONLEVEL} - the protection level, e.g. "fully protected" or
-- "semi-protected".
--
-- ${PROTECTIONLOG} - a link to the protection log or the pending changes log,
-- depending on the protection action.
--
-- ${TALKPAGE} - a link to the talk page. If a section is specified, links
-- straight to that talk page section.
--
-- ${TOOLTIPBLURB} - uses the PAGETYPE, PROTECTIONTYPE and EXPIRY parameters to
-- create a blurb like "This template is semi-protected", or "This article is
-- move-protected until DD Month YYYY".
--
-- ${VANDAL} - links for the specified username (or the root page name)
-- using Module:Vandal-m.
--
-- Functions
--
-- For advanced users, it is possible to use Lua functions instead of strings
-- in the banner config tables. Using functions gives flexibility that is not
-- possible just by using parameters. Functions take two arguments, the
-- protection object and the template arguments, and they must output a string.
--
-- For example:
--
-- text = function (protectionObj, args)
-- if protectionObj.level == 'autoconfirmed' then
-- return 'foo'
-- else
-- return 'bar'
-- end
-- end
--
-- Some protection object properties and methods that may be useful:
-- protectionObj.action - the protection action
-- protectionObj.level - the protection level
-- protectionObj.reason - the protection reason
-- protectionObj.expiry - the expiry. Nil if unset, the string "indef" if set
-- to indefinite, and the protection time in unix time if temporary.
-- protectionObj.protectionDate - the protection date in unix time, or nil if
-- unspecified.
-- protectionObj.bannerConfig - the banner config found by the module. Beware
-- of editing the config field used by the function, as it could create an
-- infinite loop.
-- protectionObj:isProtected - returns a boolean showing whether the page is
-- protected.
-- protectionObj:isTemporary - returns a boolean showing whether the expiry is
-- temporary.
-- protectionObj:isIncorrect - returns a boolean showing whether the protection
-- template is incorrect.
--]]
-- The master banner data, used if no values have been found in banners or
-- defaultBanners.
masterBanner = {
text = '${INTROBLURB}',
explanation = '${EXPLANATIONBLURB}',
tooltip = '${TOOLTIPBLURB}',
link = '${IMAGELINK}',
alt = 'Page ${PROTECTIONLEVEL}'
},
-- The default banner data. This holds banner data for different protection
-- levels.
-- *required* - this table needs edit, move, autoreview and upload subtables.
defaultBanners = {
edit = {},
move = {},
autoreview = {
autoconfirmed = {
alt = 'Page protected with pending changes level 1',
tooltip = 'All edits by unregistered and new users are subject to review prior to becoming visible to unregistered users',
image = 'Padlock-silver-light.svg'
},
default = {
alt = 'Page protected with pending changes level 2',
tooltip = 'All edits by users who are not reviewers or administrators are'
.. ' subject to review prior to becoming visible to unregistered users',
image = 'Padlock-orange.svg'
}
},
upload = {}
},
-- The banner data. This holds banner data for different protection reasons.
-- In fact, the reasons specified in this table control which reasons are
-- valid inputs to the first positional parameter.
--
-- There is also a non-standard "description" field that can be used for items
-- in this table. This is a description of the protection reason for use in the
-- module documentation.
--
-- *required* - this table needs edit, move, autoreview and upload subtables.
banners = {
edit = {
blp = {
description = 'For pages protected to promote compliance with the'
.. ' [[Wikipedia:Biographies of living persons'
.. '|biographies of living persons]] policy',
text = '${INTROFRAGMENT} to promote compliance with'
.. ' [[Wikipedia:Biographies of living persons'
.. "|Wikipedia's policy on the biographies"
.. ' of living people]].',
tooltip = '${TOOLTIPFRAGMENT} to promote compliance with the policy on'
.. ' biographies of living people',
},
dmca = {
description = 'For pages protected by the Wikimedia Foundation'
.. ' due to [[Digital Millennium Copyright Act]] takedown requests',
explanation = function (protectionObj, args)
local ret = 'Pursuant to a rights owner notice under the Digital'
.. ' Millennium Copyright Act (DMCA) regarding some content'
.. ' in this article, the Wikimedia Foundation acted under'
.. ' applicable law and took down and restricted the content'
.. ' in question.'
if args.notice then
ret = ret .. ' A copy of the received notice can be found here: '
.. args.notice .. '.'
end
ret = ret .. ' For more information, including websites discussing'
.. ' how to file a counter-notice, please see'
.. " [[Wikipedia:Office actions]] and the article's ${TALKPAGE}."
.. "'''Do not remove this template from the article until the"
.. " restrictions are withdrawn'''."
return ret
end,
image = 'Padlock-black.svg',
},
dispute = {
description = 'For pages protected due to editing disputes',
text = function (protectionObj, args)
-- Find the value of "disputes".
local display = 'disputes'
local disputes
if args.section then
disputes = string.format(
'[[%s:%s#%s|%s]]',
mw.site.namespaces[protectionObj.title.namespace].talk.name,
protectionObj.title.text,
args.section,
display
)
else
disputes = display
end
-- Make the blurb, depending on the expiry.
local msg
if type(protectionObj.expiry) == 'number' then
msg = '${INTROFRAGMENT} or until editing %s have been resolved.'
else
msg = '${INTROFRAGMENT} until editing %s have been resolved.'
end
return string.format(msg, disputes)
end,
explanation = "This protection is '''not''' an endorsement of the"
.. ' ${CURRENTVERSION}. ${EXPLANATIONBLURB}',
tooltip = '${TOOLTIPFRAGMENT} due to editing disputes',
},
ecp = {
description = 'For articles in topic areas authorized by'
.. ' [[Wikipedia:Arbitration Committee|ArbCom]] or'
.. ' meets the criteria for community use',
tooltip = 'This ${PAGETYPE} is extended-confirmed protected',
alt = 'Extended-protected ${PAGETYPE}',
},
mainpage = {
description = 'For pages protected for being displayed on the [[Main Page]]',
text = 'This file is currently'
.. ' [[Wikipedia:This page is protected|protected]] from'
.. ' editing because it is currently or will soon be displayed'
.. ' on the [[Main Page]].',
explanation = 'Images on the Main Page are protected due to their high'
.. ' visibility. Please discuss any necessary changes on the ${TALKPAGE}.'
.. '<br /><span style="font-size:90%;">'
.. "'''Administrators:''' Once this image is definitely off the Main Page,"
.. ' please unprotect this file, or reduce to semi-protection,'
.. ' as appropriate.</span>',
},
office = {
description = 'For pages protected by the Wikimedia Foundation',
text = function (protectionObj, args)
local ret = 'This ${PAGETYPE} is currently under the'
.. ' scrutiny of the'
.. ' [[Wikipedia:Office actions|Wikimedia Foundation Office]]'
.. ' and is protected.'
if protectionObj.protectionDate then
ret = ret .. ' It has been protected since ${PROTECTIONDATE}.'
end
return ret
end,
explanation = "If you can edit this page, please discuss all changes and"
.. " additions on the ${TALKPAGE} first. '''Do not remove protection from this"
.. " page unless you are authorized by the Wikimedia Foundation to do"
.. " so.'''",
image = 'Padlock-black.svg',
},
reset = {
description = 'For pages protected by the Wikimedia Foundation and'
.. ' "reset" to a bare-bones version',
text = 'This ${PAGETYPE} is currently under the'
.. ' scrutiny of the'
.. ' [[Wikipedia:Office actions|Wikimedia Foundation Office]]'
.. ' and is protected.',
explanation = function (protectionObj, args)
local ret = ''
if protectionObj.protectionDate then
ret = ret .. 'On ${PROTECTIONDATE} this ${PAGETYPE} was'
else
ret = ret .. 'This ${PAGETYPE} has been'
end
ret = ret .. ' reduced to a'
.. ' simplified, "bare bones" version so that it may be completely'
.. ' rewritten to ensure it meets the policies of'
.. ' [[WP:NPOV|Neutral Point of View]] and [[WP:V|Verifiability]].'
.. ' Standard Wikipedia policies will apply to its rewriting—which'
.. ' will eventually be open to all editors—and will be strictly'
.. ' enforced. The ${PAGETYPE} has been ${PROTECTIONLEVEL} while'
.. ' it is being rebuilt.\n\n'
.. 'Any insertion of material directly from'
.. ' pre-protection revisions of the ${PAGETYPE} will be removed, as'
.. ' will any material added to the ${PAGETYPE} that is not properly'
.. ' sourced. The associated talk page(s) were also cleared on the'
.. " same date.\n\n"
.. "If you can edit this page, please discuss all changes and"
.. " additions on the ${TALKPAGE} first. '''Do not override"
.. " this action, and do not remove protection from this page,"
.. " unless you are authorized by the Wikimedia Foundation"
.. " to do so. No editor may remove this notice.'''"
return ret
end,
image = 'Padlock-black.svg',
},
sock = {
description = 'For pages protected due to'
.. ' [[Wikipedia:Sock puppetry|sock puppetry]]',
text = '${INTROFRAGMENT} to prevent [[Wikipedia:Sock puppetry|sock puppets]] of'
.. ' [[Wikipedia:Blocking policy|blocked]] or'
.. ' [[Wikipedia:Banning policy|banned users]]'
.. ' from editing it.',
tooltip = '${TOOLTIPFRAGMENT} to prevent sock puppets of blocked or banned users from'
.. ' editing it',
},
template = {
description = 'For [[Wikipedia:High-risk templates|high-risk]]'
.. ' templates and Lua modules',
text = 'This is a permanently [[Help:Protection|protected]] ${PAGETYPE},'
.. ' as it is [[Wikipedia:High-risk templates|high-risk]].',
explanation = 'Please discuss any changes on the ${TALKPAGE}; you may'
.. ' ${EDITREQUEST} to ask an'
.. ' [[Wikipedia:Administrators|administrator]] or'
.. ' [[Wikipedia:Template editor|template editor]] to make an edit if'
.. ' it is [[Help:Minor edit#When to mark an edit as a minor edit'
.. '|uncontroversial]] or supported by'
.. ' [[Wikipedia:Consensus|consensus]]. You can also'
.. ' [[Wikipedia:Requests for page protection|request]] that the page be'
.. ' unprotected.',
tooltip = 'This high-risk ${PAGETYPE} is permanently ${PROTECTIONLEVEL}'
.. ' to prevent vandalism',
alt = 'Permanently protected ${PAGETYPE}',
},
usertalk = {
description = 'For pages protected against disruptive edits by a'
.. ' particular user',
text = '${INTROFRAGMENT} to prevent ${VANDAL} from using it to make disruptive edits,'
.. ' such as abusing the'
.. ' {{[[Template:unblock|unblock]]}} template.',
explanation = 'If you cannot edit this user talk page and you need to'
.. ' make a change or leave a message, you can'
.. ' [[Wikipedia:Requests for page protection'
.. '#Current requests for edits to a protected page'
.. '|request an edit]],'
.. ' [[Wikipedia:Requests for page protection'
.. '#Current requests for reduction in protection level'
.. '|request unprotection]],'
.. ' [[Special:Userlogin|log in]],'
.. ' or [[Special:UserLogin/signup|create an account]].',
},
vandalism = {
description = 'For pages protected against'
.. ' [[Wikipedia:Vandalism|vandalism]]',
text = '${INTROFRAGMENT} due to [[Wikipedia:Vandalism|vandalism]].',
explanation = function (protectionObj, args)
local ret = ''
if protectionObj.level == 'sysop' then
ret = ret .. "This protection is '''not''' an endorsement of the"
.. ' ${CURRENTVERSION}. '
end
return ret .. '${EXPLANATIONBLURB}'
end,
tooltip = '${TOOLTIPFRAGMENT} due to vandalism',
}
},
move = {
dispute = {
description = 'For pages protected against page moves due to'
.. ' disputes over the page title',
explanation = "This protection is '''not''' an endorsement of the"
.. ' ${CURRENTVERSION}. ${EXPLANATIONBLURB}',
image = 'Padlock-olive.svg'
},
vandalism = {
description = 'For pages protected against'
.. ' [[Wikipedia:Vandalism#Page-move vandalism'
.. ' |page-move vandalism]]'
}
},
autoreview = {},
upload = {}
},
--------------------------------------------------------------------------------
--
-- GENERAL DATA TABLES
--
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-- Protection blurbs
--------------------------------------------------------------------------------
-- This table produces the protection blurbs available with the
-- ${PROTECTIONBLURB} parameter. It is sorted by protection action and
-- protection level, and is checked by the module in the following order:
-- 1. page's protection action, page's protection level
-- 2. page's protection action, default protection level
-- 3. "edit" protection action, default protection level
--
-- It is possible to use banner parameters inside this table.
-- *required* - this table needs edit, move, autoreview and upload subtables.
protectionBlurbs = {
edit = {
default = 'This ${PAGETYPE} is currently [[Help:Protection|'
.. 'protected]] from editing',
autoconfirmed = 'Editing of this ${PAGETYPE} by [[Wikipedia:User access'
.. ' levels#New users|new]] or [[Wikipedia:User access levels#Unregistered'
.. ' users|unregistered]] users is currently [[Help:Protection|disabled]]',
extendedconfirmed = 'This ${PAGETYPE} is ${PROTECTIONLEVEL} as a result of'
.. ' [[Wikipedia:Arbitration Committee|ArbCom]] enforcement or meets the'
.. ' [[Wikipedia:Protection policy#extended|criteria for community use]]',
},
move = {
default = 'This ${PAGETYPE} is currently [[Help:Protection|protected]]'
.. ' from [[Help:Moving a page|page moves]]'
},
autoreview = {
autoconfirmed = 'All edits made to this ${PAGETYPE} by'
.. ' [[Wikipedia:User access levels#New users|new]] or'
.. ' [[Wikipedia:User access levels#Unregistered users|unregistered]]'
.. ' users are currently'
.. ' [[Wikipedia:Pending changes|subject to review]]',
default = 'All edits made to this ${PAGETYPE} by users who are not'
.. ' [[Wikipedia:Reviewing|reviewers]] or'
.. ' [[Wikipedia:Administrators|administrators]] are currently'
.. ' [[Wikipedia:Pending changes|subject to review]]'
},
upload = {
default = 'Uploading new versions of this ${PAGETYPE} is currently disabled'
}
},
--------------------------------------------------------------------------------
-- Explanation blurbs
--------------------------------------------------------------------------------
-- This table produces the explanation blurbs available with the
-- ${EXPLANATIONBLURB} parameter. It is sorted by protection action,
-- protection level, and whether the page is a talk page or not. If the page is
-- a talk page it will have a talk key of "talk"; otherwise it will have a talk
-- key of "subject". The table is checked in the following order:
-- 1. page's protection action, page's protection level, page's talk key
-- 2. page's protection action, page's protection level, default talk key
-- 3. page's protection action, default protection level, page's talk key
-- 4. page's protection action, default protection level, default talk key
--
-- It is possible to use banner parameters inside this table.
-- *required* - this table needs edit, move, autoreview and upload subtables.
explanationBlurbs = {
edit = {
autoconfirmed = {
subject = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details. If you'
.. ' cannot edit this ${PAGETYPE} and you wish to make a change, you can'
.. ' ${EDITREQUEST}, discuss changes on the ${TALKPAGE},'
.. ' [[Wikipedia:Requests for page protection'
.. '#Current requests for reduction in protection level'
.. '|request unprotection]], [[Special:Userlogin|log in]], or'
.. ' [[Special:UserLogin/signup|create an account]].',
default = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details. If you'
.. ' cannot edit this ${PAGETYPE} and you wish to make a change, you can'
.. ' [[Wikipedia:Requests for page protection'
.. '#Current requests for reduction in protection level'
.. '|request unprotection]], [[Special:Userlogin|log in]], or'
.. ' [[Special:UserLogin/signup|create an account]].',
},
extendedconfirmed = {
default = 'Extended confirmed protection prevents edits from all IP editors'
.. ' and registered users with fewer than 30 days tenure and 500 edits.'
.. ' The [[Wikipedia:Protection policy#extended|policy on community use]]'
.. ' specifies that extended confirmed protection can be applied to combat'
.. ' disruption, given that semi-protection has proven to be ineffective.'
.. ' Please discuss any changes on the ${TALKPAGE}; you may'
.. ' ${EDITREQUEST} to ask for unconversial changes supported by'
.. ' [[Wikipedia:Consensus|consensus]].'
},
default = {
subject = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details.'
.. ' Please discuss any changes on the ${TALKPAGE}; you'
.. ' may ${EDITREQUEST} to ask an'
.. ' [[Wikipedia:Administrators|administrator]] to make an edit if it'
.. ' is [[Help:Minor edit#When to mark an edit as a minor edit'
.. '|uncontroversial]] or supported by [[Wikipedia:Consensus'
.. '|consensus]]. You may also [[Wikipedia:Requests for'
.. ' page protection#Current requests for reduction in protection level'
.. '|request]] that this page be unprotected.',
default = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details.'
.. ' You may [[Wikipedia:Requests for page'
.. ' protection#Current requests for edits to a protected page|request an'
.. ' edit]] to this page, or [[Wikipedia:Requests for'
.. ' page protection#Current requests for reduction in protection level'
.. '|ask]] for it to be unprotected.'
}
},
move = {
default = {
subject = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details.'
.. ' The page may still be edited but cannot be moved'
.. ' until unprotected. Please discuss any suggested moves on the'
.. ' ${TALKPAGE} or at [[Wikipedia:Requested moves]]. You can also'
.. ' [[Wikipedia:Requests for page protection|request]] that the page be'
.. ' unprotected.',
default = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details.'
.. ' The page may still be edited but cannot be moved'
.. ' until unprotected. Please discuss any suggested moves at'
.. ' [[Wikipedia:Requested moves]]. You can also'
.. ' [[Wikipedia:Requests for page protection|request]] that the page be'
.. ' unprotected.'
}
},
autoreview = {
default = {
reviewer = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details.'
.. ' Edits to this ${PAGETYPE} will not be visible to readers'
.. ' until they are accepted by a reviewer or an administrator.'
.. ' To avoid the need for your edits to be reviewed, you may'
.. ' [[Wikipedia:Requests for page protection'
.. '#Current requests for reduction in protection level'
.. '|request unprotection]]. Experienced editors may also'
.. ' request the [[Wikipedia:Reviewing|reviewer user right]].',
default = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details.'
.. ' Edits to this ${PAGETYPE} by new and unregistered users'
.. ' will not be visible to readers until they are accepted by'
.. ' a reviewer. To avoid the need for your edits to be'
.. ' reviewed, you may'
.. ' [[Wikipedia:Requests for page protection'
.. '#Current requests for reduction in protection level'
.. '|request unprotection]], [[Special:Userlogin|log in]], or'
.. ' [[Special:UserLogin/signup|create an account]].'
},
},
upload = {
default = {
default = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details.'
.. ' The page may still be edited but new versions of the file'
.. ' cannot be uploaded until it is unprotected. You can'
.. ' request that a new version be uploaded by using a'
.. ' [[Wikipedia:Edit requests|protected edit request]], or you'
.. ' can [[Wikipedia:Requests for page protection|request]]'
.. ' that the file be unprotected.'
}
}
},
--------------------------------------------------------------------------------
-- Protection levels
--------------------------------------------------------------------------------
-- This table provides the data for the ${PROTECTIONLEVEL} parameter, which
-- produces a short label for different protection levels. It is sorted by
-- protection action and protection level, and is checked in the following
-- order:
-- 1. page's protection action, page's protection level
-- 2. page's protection action, default protection level
-- 3. "edit" protection action, default protection level
--
-- It is possible to use banner parameters inside this table.
-- *required* - this table needs edit, move, autoreview and upload subtables.
protectionLevels = {
edit = {
default = 'protected',
templateeditor = 'template-protected',
extendedconfirmed = 'extended-protected',
autoconfirmed = 'semi-protected',
},
move = {
default = 'move-protected'
},
autoreview = {
},
upload = {
default = 'upload-protected'
}
},
--------------------------------------------------------------------------------
-- Images
--------------------------------------------------------------------------------
-- This table lists different padlock images for each protection action and
-- protection level. It is used if an image is not specified in any of the
-- banner data tables, and if the page does not satisfy the conditions for using
-- the ['image-filename-indef'] image. It is checked in the following order:
-- 1. page's protection action, page's protection level
-- 2. page's protection action, default protection level
images = {
edit = {
default = 'Padlock.svg',
templateeditor = 'Padlock-pink.svg',
extendedconfirmed = 'Padlock-blue.svg',
autoconfirmed = 'Padlock-silver.svg'
},
move = {
default = 'Padlock-olive.svg',
},
autoreview = {
autoconfirmed = 'Padlock-silver-light.svg',
default = 'Padlock-orange.svg'
},
upload = {
default = 'Padlock-purple.svg'
}
},
-- Pages with a reason specified in this table will show the special "indef"
-- padlock, defined in the 'image-filename-indef' message, if no expiry is set.
indefImageReasons = {
template = true
},
--------------------------------------------------------------------------------
-- Image links
--------------------------------------------------------------------------------
-- This table provides the data for the ${IMAGELINK} parameter, which gets
-- the image link for small padlock icons based on the page's protection action
-- and protection level. It is checked in the following order:
-- 1. page's protection action, page's protection level
-- 2. page's protection action, default protection level
-- 3. "edit" protection action, default protection level
--
-- It is possible to use banner parameters inside this table.
-- *required* - this table needs edit, move, autoreview and upload subtables.
imageLinks = {
edit = {
default = 'Wikipedia:Protection policy#full',
templateeditor = 'Wikipedia:Protection policy#template',
extendedconfirmed = 'Wikipedia:Protection policy#extended',
autoconfirmed = 'Wikipedia:Protection policy#semi'
},
move = {
default = 'Wikipedia:Protection policy#move'
},
autoreview = {
autoconfirmed = 'Wikipedia:Protection policy#pc1',
reviewer = 'Wikipedia:Protection policy#pc2'
},
upload = {
default = 'Wikipedia:Protection policy#upload'
}
},
--------------------------------------------------------------------------------
-- Padlock indicator names
--------------------------------------------------------------------------------
-- This table provides the "name" attribute for the <indicator> extension tag
-- with which small padlock icons are generated. All indicator tags on a page
-- are displayed in alphabetical order based on this attribute, and with
-- indicator tags with duplicate names, the last tag on the page wins.
-- The attribute is chosen based on the protection action; table keys must be a
-- protection action name or the string "default".
padlockIndicatorNames = {
autoreview = 'pp-autoreview',
default = 'pp-default'
},
--------------------------------------------------------------------------------
-- Protection categories
--------------------------------------------------------------------------------
--[[
-- The protection categories are stored in the protectionCategories table.
-- Keys to this table are made up of the following strings:
--
-- 1. the expiry date
-- 2. the namespace
-- 3. the protection reason (e.g. "dispute" or "vandalism")
-- 4. the protection level (e.g. "sysop" or "autoconfirmed")
-- 5. the action (e.g. "edit" or "move")
--
-- When the module looks up a category in the table, first it will will check to
-- see a key exists that corresponds to all five parameters. For example, a
-- user page semi-protected from vandalism for two weeks would have the key
-- "temp-user-vandalism-autoconfirmed-edit". If no match is found, the module
-- changes the first part of the key to "all" and checks the table again. It
-- keeps checking increasingly generic key combinations until it finds the
-- field, or until it reaches the key "all-all-all-all-all".
--
-- The module uses a binary matrix to determine the order in which to search.
-- This is best demonstrated by a table. In this table, the "0" values
-- represent "all", and the "1" values represent the original data (e.g.
-- "indef" or "file" or "vandalism").
--
-- expiry namespace reason level action
-- order
-- 1 1 1 1 1 1
-- 2 0 1 1 1 1
-- 3 1 0 1 1 1
-- 4 0 0 1 1 1
-- 5 1 1 0 1 1
-- 6 0 1 0 1 1
-- 7 1 0 0 1 1
-- 8 0 0 0 1 1
-- 9 1 1 1 0 1
-- 10 0 1 1 0 1
-- 11 1 0 1 0 1
-- 12 0 0 1 0 1
-- 13 1 1 0 0 1
-- 14 0 1 0 0 1
-- 15 1 0 0 0 1
-- 16 0 0 0 0 1
-- 17 1 1 1 1 0
-- 18 0 1 1 1 0
-- 19 1 0 1 1 0
-- 20 0 0 1 1 0
-- 21 1 1 0 1 0
-- 22 0 1 0 1 0
-- 23 1 0 0 1 0
-- 24 0 0 0 1 0
-- 25 1 1 1 0 0
-- 26 0 1 1 0 0
-- 27 1 0 1 0 0
-- 28 0 0 1 0 0
-- 29 1 1 0 0 0
-- 30 0 1 0 0 0
-- 31 1 0 0 0 0
-- 32 0 0 0 0 0
--
-- In this scheme the action has the highest priority, as it is the last
-- to change, and the expiry has the least priority, as it changes the most.
-- The priorities of the expiry, the protection level and the action are
-- fixed, but the priorities of the reason and the namespace can be swapped
-- through the use of the cfg.bannerDataNamespaceHasPriority table.
--]]
-- If the reason specified to the template is listed in this table,
-- namespace data will take priority over reason data in the protectionCategories
-- table.
reasonsWithNamespacePriority = {
vandalism = true,
},
-- The string to use as a namespace key for the protectionCategories table for each
-- namespace number.
categoryNamespaceKeys = {
[ 2] = 'user',
[ 3] = 'user',
[ 4] = 'project',
[ 6] = 'file',
[ 8] = 'mediawiki',
[ 10] = 'template',
[ 12] = 'project',
[ 14] = 'category',
[100] = 'portal',
[828] = 'module',
},
protectionCategories = {
['all|all|all|all|all'] = 'Wikipedia fully protected pages',
['all|all|office|all|all'] = 'Wikipedia Office-protected pages',
['all|all|reset|all|all'] = 'Wikipedia Office-protected pages',
['all|all|dmca|all|all'] = 'Wikipedia Office-protected pages',
['all|all|mainpage|all|all'] = 'Wikipedia fully-protected main page files',
['all|all|all|extendedconfirmed|all'] = 'Wikipedia pages under 30-500 editing restriction',
['all|all|ecp|extendedconfirmed|all'] = 'Wikipedia pages under 30-500 editing restriction',
['all|template|all|all|edit'] = 'Wikipedia fully-protected templates',
['all|all|all|autoconfirmed|edit'] = 'Wikipedia semi-protected pages',
['indef|all|all|autoconfirmed|edit'] = 'Wikipedia indefinitely semi-protected pages',
['all|all|blp|autoconfirmed|edit'] = 'Wikipedia indefinitely semi-protected biographies of living people',
['temp|all|blp|autoconfirmed|edit'] = 'Wikipedia temporarily semi-protected biographies of living people',
['all|all|dispute|autoconfirmed|edit'] = 'Wikipedia pages semi-protected due to dispute',
['all|all|sock|autoconfirmed|edit'] = 'Wikipedia pages semi-protected from banned users',
['all|all|vandalism|autoconfirmed|edit'] = 'Wikipedia pages semi-protected against vandalism',
['all|category|all|autoconfirmed|edit'] = 'Wikipedia semi-protected categories',
['all|file|all|autoconfirmed|edit'] = 'Wikipedia semi-protected files',
['all|portal|all|autoconfirmed|edit'] = 'Wikipedia semi-protected portals',
['all|project|all|autoconfirmed|edit'] = 'Wikipedia semi-protected project pages',
['all|talk|all|autoconfirmed|edit'] = 'Wikipedia semi-protected talk pages',
['all|template|all|autoconfirmed|edit'] = 'Wikipedia semi-protected templates',
['all|user|all|autoconfirmed|edit'] = 'Wikipedia semi-protected user and user talk pages',
['all|template|all|templateeditor|edit'] = 'Wikipedia template-protected templates',
['all|all|blp|sysop|edit'] = 'Wikipedia indefinitely protected biographies of living people',
['temp|all|blp|sysop|edit'] = 'Wikipedia temporarily protected biographies of living people',
['all|all|dispute|sysop|edit'] = 'Wikipedia pages protected due to dispute',
['all|all|sock|sysop|edit'] = 'Wikipedia pages protected from banned users',
['all|all|vandalism|sysop|edit'] = 'Wikipedia pages protected against vandalism',
['all|category|all|sysop|edit'] = 'Wikipedia protected categories',
['all|file|all|sysop|edit'] = 'Wikipedia fully-protected files',
['all|project|all|sysop|edit'] = 'Wikipedia fully-protected project pages',
['all|talk|all|sysop|edit'] = 'Wikipedia fully-protected talk pages',
['all|template|all|sysop|edit'] = 'Wikipedia fully-protected templates',
['all|user|all|sysop|edit'] = 'Wikipedia protected user and user talk pages',
['all|module|all|all|edit'] = 'Wikipedia fully-protected modules',
['all|module|all|templateeditor|edit'] = 'Wikipedia template-protected modules',
['all|module|all|autoconfirmed|edit'] = 'Wikipedia semi-protected modules',
['all|all|all|sysop|move'] = 'Wikipedia move-protected pages',
['indef|all|all|sysop|move'] = 'Wikipedia indefinitely move-protected pages',
['all|all|dispute|sysop|move'] = 'Wikipedia pages move-protected due to dispute',
['all|all|vandalism|sysop|move'] = 'Wikipedia pages move-protected due to vandalism',
['all|portal|all|sysop|move'] = 'Wikipedia move-protected portals',
['all|portal|all|sysop|move'] = 'Wikipedia move-protected portals',
['all|project|all|sysop|move'] = 'Wikipedia move-protected project pages',
['all|talk|all|sysop|move'] = 'Wikipedia move-protected talk pages',
['all|template|all|sysop|move'] = 'Wikipedia move-protected templates',
['all|user|all|sysop|move'] = 'Wikipedia move-protected user and user talk pages',
['all|all|all|autoconfirmed|autoreview'] = 'Wikipedia pending changes protected pages',
['all|all|all|reviewer|autoreview'] = 'Wikipedia pending changes protected pages (level 2)',
['all|file|all|all|upload'] = 'Wikipedia upload-protected files',
},
--------------------------------------------------------------------------------
-- Expiry category config
--------------------------------------------------------------------------------
-- This table configures the expiry category behaviour for each protection
-- action.
-- * If set to true, setting that action will always categorise the page if
-- an expiry parameter is not set.
-- * If set to false, setting that action will never categorise the page.
-- * If set to nil, the module will categorise the page if:
-- 1) an expiry parameter is not set, and
-- 2) a reason is provided, and
-- 3) the specified reason is not blacklisted in the reasonsWithoutExpiryCheck
-- table.
expiryCheckActions = {
edit = nil,
move = false,
autoreview = true,
upload = false
},
reasonsWithoutExpiryCheck = {
blp = true,
template = true,
},
--------------------------------------------------------------------------------
-- Pagetypes
--------------------------------------------------------------------------------
-- This table produces the page types available with the ${PAGETYPE} parameter.
-- Keys are namespace numbers, or the string "default" for the default value.
pagetypes = {
[0] = 'article',
[6] = 'file',
[10] = 'template',
[14] = 'category',
[828] = 'module',
default = 'page'
},
--------------------------------------------------------------------------------
-- Strings marking indefinite protection
--------------------------------------------------------------------------------
-- This table contains values passed to the expiry parameter that mean the page
-- is protected indefinitely.
indefStrings = {
['indef'] = true,
['indefinite'] = true,
['indefinitely'] = true,
['infinite'] = true,
},
--------------------------------------------------------------------------------
-- Group hierarchy
--------------------------------------------------------------------------------
-- This table maps each group to all groups that have a superset of the original
-- group's page editing permissions.
hierarchy = {
sysop = {},
reviewer = {'sysop'},
filemover = {'sysop'},
templateeditor = {'sysop'},
extendedconfirmed = {'sysop'},
autoconfirmed = {'reviewer', 'filemover', 'templateeditor', 'extendedconfirmed'},
user = {'autoconfirmed'},
['*'] = {'user'}
},
--------------------------------------------------------------------------------
-- Wrapper templates and their default arguments
--------------------------------------------------------------------------------
-- This table contains wrapper templates used with the module, and their
-- default arguments. Templates specified in this table should contain the
-- following invocation, and no other template content:
--
-- {{#invoke:Protection banner|main}}
--
-- If other content is desired, it can be added between
-- <noinclude>...</noinclude> tags.
--
-- When a user calls one of these wrapper templates, they will use the
-- default arguments automatically. However, users can override any of the
-- arguments.
wrappers = {
['Template:Pp'] = {},
['Template:Pp-30-500'] = {'ecp'},
['Template:Pp-blp'] = {'blp'},
-- we don't need Template:Pp-create
['Template:Pp-dispute'] = {'dispute'},
['Template:Pp-main-page'] = {'mainpage'},
['Template:Pp-move'] = {action = 'move'},
['Template:Pp-move-dispute'] = {'dispute', action = 'move'},
-- we don't need Template:Pp-move-indef
['Template:Pp-move-vandalism'] = {'vandalism', action = 'move'},
['Template:Pp-office'] = {'office'},
['Template:Pp-office-dmca'] = {'dmca'},
['Template:Pp-pc1'] = {action = 'autoreview', small = true},
['Template:Pp-pc2'] = {action = 'autoreview', small = true},
['Template:Pp-reset'] = {'reset'},
['Template:Pp-semi-indef'] = {small = true},
['Template:Pp-sock'] = {'sock'},
['Template:Pp-template'] = {'template', small = true},
['Template:Pp-upload'] = {action = 'upload'},
['Template:Pp-usertalk'] = {'usertalk'},
['Template:Pp-vandalism'] = {'vandalism'},
},
--------------------------------------------------------------------------------
--
-- MESSAGES
--
--------------------------------------------------------------------------------
msg = {
--------------------------------------------------------------------------------
-- Intro blurb and intro fragment
--------------------------------------------------------------------------------
-- These messages specify what is produced by the ${INTROBLURB} and
-- ${INTROFRAGMENT} parameters. If the protection is temporary they use the
-- intro-blurb-expiry or intro-fragment-expiry, and if not they use
-- intro-blurb-noexpiry or intro-fragment-noexpiry.
-- It is possible to use banner parameters in these messages.
['intro-blurb-expiry'] = '${PROTECTIONBLURB} until ${EXPIRY}.',
['intro-blurb-noexpiry'] = '${PROTECTIONBLURB}.',
['intro-fragment-expiry'] = '${PROTECTIONBLURB} until ${EXPIRY},',
['intro-fragment-noexpiry'] = '${PROTECTIONBLURB}',
--------------------------------------------------------------------------------
-- Tooltip blurb
--------------------------------------------------------------------------------
-- These messages specify what is produced by the ${TOOLTIPBLURB} parameter.
-- If the protection is temporary the tooltip-blurb-expiry message is used, and
-- if not the tooltip-blurb-noexpiry message is used.
-- It is possible to use banner parameters in these messages.
['tooltip-blurb-expiry'] = 'This ${PAGETYPE} is ${PROTECTIONLEVEL} until ${EXPIRY}.',
['tooltip-blurb-noexpiry'] = 'This ${PAGETYPE} is ${PROTECTIONLEVEL}.',
['tooltip-fragment-expiry'] = 'This ${PAGETYPE} is ${PROTECTIONLEVEL} until ${EXPIRY},',
['tooltip-fragment-noexpiry'] = 'This ${PAGETYPE} is ${PROTECTIONLEVEL}',
--------------------------------------------------------------------------------
-- Special explanation blurb
--------------------------------------------------------------------------------
-- An explanation blurb for pages that cannot be unprotected, e.g. for pages
-- in the MediaWiki namespace.
-- It is possible to use banner parameters in this message.
['explanation-blurb-nounprotect'] = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details.'
.. ' Please discuss any changes on the ${TALKPAGE}; you'
.. ' may ${EDITREQUEST} to ask an'
.. ' [[Wikipedia:Administrators|administrator]] to make an edit if it'
.. ' is [[Help:Minor edit#When to mark an edit as a minor edit'
.. '|uncontroversial]] or supported by [[Wikipedia:Consensus'
.. '|consensus]].',
--------------------------------------------------------------------------------
-- Protection log display values
--------------------------------------------------------------------------------
-- These messages determine the display values for the protection log link
-- or the pending changes log link produced by the ${PROTECTIONLOG} parameter.
-- It is possible to use banner parameters in these messages.
['protection-log-display'] = 'protection log',
['pc-log-display'] = 'pending changes log',
--------------------------------------------------------------------------------
-- Current version display values
--------------------------------------------------------------------------------
-- These messages determine the display values for the page history link
-- or the move log link produced by the ${CURRENTVERSION} parameter.
-- It is possible to use banner parameters in these messages.
['current-version-move-display'] = 'current title',
['current-version-edit-display'] = 'current version',
--------------------------------------------------------------------------------
-- Talk page
--------------------------------------------------------------------------------
-- This message determines the display value of the talk page link produced
-- with the ${TALKPAGE} parameter.
-- It is possible to use banner parameters in this message.
['talk-page-link-display'] = 'talk page',
--------------------------------------------------------------------------------
-- Edit requests
--------------------------------------------------------------------------------
-- This message determines the display value of the edit request link produced
-- with the ${EDITREQUEST} parameter.
-- It is possible to use banner parameters in this message.
['edit-request-display'] = 'submit an edit request',
--------------------------------------------------------------------------------
-- Expiry date format
--------------------------------------------------------------------------------
-- This is the format for the blurb expiry date. It should be valid input for
-- the first parameter of the #time parser function.
['expiry-date-format'] = 'F j, Y',
--------------------------------------------------------------------------------
-- Tracking categories
--------------------------------------------------------------------------------
-- These messages determine which tracking categories the module outputs.
['tracking-category-incorrect'] = 'Wikipedia pages with incorrect protection templates',
['tracking-category-template'] = 'Wikipedia template-protected pages other than templates and modules',
--------------------------------------------------------------------------------
-- Images
--------------------------------------------------------------------------------
-- These are images that are not defined by their protection action and protection level.
['image-filename-indef'] = 'Padlock.svg',
['image-filename-default'] = 'Transparent.gif',
--------------------------------------------------------------------------------
-- End messages
--------------------------------------------------------------------------------
}
--------------------------------------------------------------------------------
-- End configuration
--------------------------------------------------------------------------------
}
95d00c81f0f92f7a46edfc4f74dcdb1b4b3346db
Module:Sidebar
828
41
97
96
2018-05-21T20:36:08Z
Wizzup
4
1 revision imported
Scribunto
text/plain
--
-- This module implements {{Sidebar}}
--
require('Module:No globals')
local p = {}
local getArgs = require('Module:Arguments').getArgs
local navbar = require('Module:Navbar')._navbar
local function trimAndAddAutomaticNewline(s)
-- For compatibility with the original {{sidebar with collapsible lists}}
-- implementation, which passed some parameters through {{#if}} to trim
-- their whitespace. This also triggered the automatic newline behavior.
-- ([[meta:Help:Newlines and spaces#Automatic newline]])
s = mw.ustring.gsub(s, "^%s*(.-)%s*$", "%1")
if mw.ustring.find(s, '^[#*:;]') or mw.ustring.find(s, '^{|') then
return '\n' .. s
else
return s
end
end
local function hasSubgroup(s)
if mw.ustring.find(s, 'vertical%-navbox%-subgroup') then
return true
else
return false
end
end
function p.sidebar(frame, args)
if not args then
args = getArgs(frame)
end
local root = mw.html.create()
local child = args.child and mw.text.trim(args.child) == 'yes'
root = root:tag('table')
if not child then
root
:addClass('vertical-navbox')
:addClass(args.wraplinks ~= 'true' and 'nowraplinks' or nil)
:addClass(args.bodyclass or args.class)
:css('float', args.float or 'right')
:css('clear', (args.float == 'none' and 'both') or args.float or 'right')
:css('width', args.width or '22.0em')
:css('margin', args.float == 'left' and '0 1.0em 1.0em 0' or '0 0 1.0em 1.0em')
:css('background', '#f9f9f9')
:css('border', '1px solid #aaa')
:css('padding', '0.2em')
:css('border-spacing', '0.4em 0')
:css('text-align', 'center')
:css('line-height', '1.4em')
:css('font-size', '88%')
:cssText(args.bodystyle or args.style)
if args.outertitle then
root
:tag('caption')
:addClass(args.outertitleclass)
:css('padding-bottom', '0.2em')
:css('font-size', '125%')
:css('line-height', '1.2em')
:css('font-weight', 'bold')
:cssText(args.outertitlestyle)
:wikitext(args.outertitle)
end
if args.topimage then
local imageCell = root:tag('tr'):tag('td')
imageCell
:addClass(args.topimageclass)
:css('padding', '0.4em 0')
:cssText(args.topimagestyle)
:wikitext(args.topimage)
if args.topcaption then
imageCell
:tag('div')
:css('padding-top', '0.2em')
:css('line-height', '1.2em')
:cssText(args.topcaptionstyle)
:wikitext(args.topcaption)
end
end
if args.pretitle then
root
:tag('tr')
:tag('td')
:addClass(args.pretitleclass)
:cssText(args.basestyle)
:css('padding-top', args.topimage and '0.2em' or '0.4em')
:css('line-height', '1.2em')
:cssText(args.pretitlestyle)
:wikitext(args.pretitle)
end
else
root
:addClass('vertical-navbox-subgroup')
:css('width', '100%')
:css('margin', '0px')
:css('border-spacing', '0px')
:addClass(args.bodyclass or args.class)
:cssText(args.bodystyle or args.style)
end
if args.title then
if child then
root
:wikitext(args.title)
else
root
:tag('tr')
:tag('th')
:addClass(args.titleclass)
:cssText(args.basestyle)
:css('padding', '0.2em 0.4em 0.2em')
:css('padding-top', args.pretitle and 0)
:css('font-size', '145%')
:css('line-height', '1.2em')
:cssText(args.titlestyle)
:wikitext(args.title)
end
end
if args.image then
local imageCell = root:tag('tr'):tag('td')
imageCell
:addClass(args.imageclass)
:css('padding', '0.2em 0 0.4em')
:cssText(args.imagestyle)
:wikitext(args.image)
if args.caption then
imageCell
:tag('div')
:css('padding-top', '0.2em')
:css('line-height', '1.2em')
:cssText(args.captionstyle)
:wikitext(args.caption)
end
end
if args.above then
root
:tag('tr')
:tag('td')
:addClass(args.aboveclass)
:css('padding', '0.3em 0.4em 0.3em')
:css('font-weight', 'bold')
:cssText(args.abovestyle)
:newline() -- newline required for bullet-points to work
:wikitext(args.above)
end
local rowNums = {}
for k, v in pairs(args) do
k = '' .. k
local num = k:match('^heading(%d+)$') or k:match('^content(%d+)$')
if num then table.insert(rowNums, tonumber(num)) end
end
table.sort(rowNums)
-- remove duplicates from the list (e.g. 3 will be duplicated if both heading3 and content3 are specified)
for i = #rowNums, 1, -1 do
if rowNums[i] == rowNums[i - 1] then
table.remove(rowNums, i)
end
end
for i, num in ipairs(rowNums) do
local heading = args['heading' .. num]
if heading then
root
:tag('tr')
:tag('th')
:addClass(args.headingclass)
:css('padding', '0.1em')
:cssText(args.basestyle)
:cssText(args.headingstyle)
:cssText(args['heading' .. num .. 'style'])
:newline()
:wikitext(heading)
end
local content = args['content' .. num]
if content then
root
:tag('tr')
:tag('td')
:addClass(args.contentclass)
:css('padding', hasSubgroup(content) and '0.1em 0 0.2em' or '0 0.1em 0.4em')
:cssText(args.contentstyle)
:cssText(args['content' .. num .. 'style'])
:newline()
:wikitext(content)
:done()
:newline() -- Without a linebreak after the </td>, a nested list like "* {{hlist| ...}}" doesn't parse correctly.
end
end
if args.below then
root
:tag('tr')
:tag('td')
:addClass(args.belowclass)
:css('padding', '0.3em 0.4em 0.3em')
:css('font-weight', 'bold')
:cssText(args.belowstyle)
:newline()
:wikitext(args.below)
end
if not child then
local navbarArg = args.navbar or args.tnavbar
if navbarArg ~= 'none' and navbarArg ~= 'off' and (args.name or frame:getParent():getTitle():gsub('/sandbox$', '') ~= 'Template:Sidebar') then
root
:tag('tr')
:tag('td')
:css('text-align', 'right')
:css('font-size', '115%')
:cssText(args.navbarstyle or args.tnavbarstyle)
:wikitext(navbar{
args.name,
mini = 1,
fontstyle = args.navbarfontstyle or args.tnavbarfontstyle
})
end
end
return tostring(root) .. (child and '[[Category:Pages using sidebar with the child parameter]]' or '')
end
function p.collapsible(frame)
local args = getArgs(frame)
args.abovestyle = 'border-top: 1px solid #aaa; border-bottom: 1px solid #aaa;' .. (args.abovestyle or '')
args.belowstyle = 'border-top: 1px solid #aaa; border-bottom: 1px solid #aaa;' .. (args.belowstyle or '')
args.navbarstyle = 'padding-top: 0.6em;' .. (args.navbarstyle or args.tnavbarstyle or '')
if not args.name and frame:getParent():getTitle():gsub('/sandbox$', '') == 'Template:Sidebar with collapsible lists' then
args.navbar = 'none'
end
local contentArgs = {}
for k, v in pairs(args) do
local num = string.match(k, '^list(%d+)$')
if num then
local expand = args.expanded and (args.expanded == 'all' or args.expanded == args['list' .. num .. 'name'])
local row = mw.html.create('div')
row
:addClass('NavFrame')
:addClass((not expand) and 'collapsed' or nil)
:css('border', 'none')
:css('padding', 0)
:cssText(args.listframestyle)
:cssText(args['list' .. num .. 'framestyle'])
:tag('div')
:addClass('NavHead')
:addClass(args.listtitleclass)
:css('font-size', '105%')
:css('background', 'transparent')
:css('text-align', 'left')
:cssText(args.basestyle)
:cssText(args.listtitlestyle)
:cssText(args['list' .. num .. 'titlestyle'])
:wikitext(trimAndAddAutomaticNewline(args['list' .. num .. 'title'] or 'List'))
:done()
:tag('div')
:addClass('NavContent')
:addClass(args.listclass)
:addClass(args['list' .. num .. 'class'])
:css('font-size', '105%')
:css('padding', '0.2em 0 0.4em')
:css('text-align', 'center')
:cssText(args.liststyle)
:cssText(args['list' .. num .. 'style'])
:wikitext(trimAndAddAutomaticNewline(args['list' .. num]))
contentArgs['content' .. num] = tostring(row)
end
end
for k, v in pairs(contentArgs) do
args[k] = v
end
return p.sidebar(frame, args)
end
return p
c9e636a93bc3b868bb53b389630e9e30e73f9c66
Module:String
828
42
99
98
2018-05-21T20:36:08Z
Wizzup
4
1 revision imported
Scribunto
text/plain
--[[
This module is intended to provide access to basic string functions.
Most of the functions provided here can be invoked with named parameters,
unnamed parameters, or a mixture. If named parameters are used, Mediawiki will
automatically remove any leading or trailing whitespace from the parameter.
Depending on the intended use, it may be advantageous to either preserve or
remove such whitespace.
Global options
ignore_errors: If set to 'true' or 1, any error condition will result in
an empty string being returned rather than an error message.
error_category: If an error occurs, specifies the name of a category to
include with the error message. The default category is
[Category:Errors reported by Module String].
no_category: If set to 'true' or 1, no category will be added if an error
is generated.
Unit tests for this module are available at Module:String/tests.
]]
local str = {}
--[[
len
This function returns the length of the target string.
Usage:
{{#invoke:String|len|target_string|}}
OR
{{#invoke:String|len|s=target_string}}
Parameters
s: The string whose length to report
If invoked using named parameters, Mediawiki will automatically remove any leading or
trailing whitespace from the target string.
]]
function str.len( frame )
local new_args = str._getParameters( frame.args, {'s'} );
local s = new_args['s'] or '';
return mw.ustring.len( s )
end
--[[
sub
This function returns a substring of the target string at specified indices.
Usage:
{{#invoke:String|sub|target_string|start_index|end_index}}
OR
{{#invoke:String|sub|s=target_string|i=start_index|j=end_index}}
Parameters
s: The string to return a subset of
i: The fist index of the substring to return, defaults to 1.
j: The last index of the string to return, defaults to the last character.
The first character of the string is assigned an index of 1. If either i or j
is a negative value, it is interpreted the same as selecting a character by
counting from the end of the string. Hence, a value of -1 is the same as
selecting the last character of the string.
If the requested indices are out of range for the given string, an error is
reported.
]]
function str.sub( frame )
local new_args = str._getParameters( frame.args, { 's', 'i', 'j' } );
local s = new_args['s'] or '';
local i = tonumber( new_args['i'] ) or 1;
local j = tonumber( new_args['j'] ) or -1;
local len = mw.ustring.len( s );
-- Convert negatives for range checking
if i < 0 then
i = len + i + 1;
end
if j < 0 then
j = len + j + 1;
end
if i > len or j > len or i < 1 or j < 1 then
return str._error( 'String subset index out of range' );
end
if j < i then
return str._error( 'String subset indices out of order' );
end
return mw.ustring.sub( s, i, j )
end
--[[
This function implements that features of {{str sub old}} and is kept in order
to maintain these older templates.
]]
function str.sublength( frame )
local i = tonumber( frame.args.i ) or 0
local len = tonumber( frame.args.len )
return mw.ustring.sub( frame.args.s, i + 1, len and ( i + len ) )
end
--[[
match
This function returns a substring from the source string that matches a
specified pattern.
Usage:
{{#invoke:String|match|source_string|pattern_string|start_index|match_number|plain_flag|nomatch_output}}
OR
{{#invoke:String|pos|s=source_string|pattern=pattern_string|start=start_index
|match=match_number|plain=plain_flag|nomatch=nomatch_output}}
Parameters
s: The string to search
pattern: The pattern or string to find within the string
start: The index within the source string to start the search. The first
character of the string has index 1. Defaults to 1.
match: In some cases it may be possible to make multiple matches on a single
string. This specifies which match to return, where the first match is
match= 1. If a negative number is specified then a match is returned
counting from the last match. Hence match = -1 is the same as requesting
the last match. Defaults to 1.
plain: A flag indicating that the pattern should be understood as plain
text. Defaults to false.
nomatch: If no match is found, output the "nomatch" value rather than an error.
If invoked using named parameters, Mediawiki will automatically remove any leading or
trailing whitespace from each string. In some circumstances this is desirable, in
other cases one may want to preserve the whitespace.
If the match_number or start_index are out of range for the string being queried, then
this function generates an error. An error is also generated if no match is found.
If one adds the parameter ignore_errors=true, then the error will be suppressed and
an empty string will be returned on any failure.
For information on constructing Lua patterns, a form of [regular expression], see:
* http://www.lua.org/manual/5.1/manual.html#5.4.1
* http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Patterns
* http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Ustring_patterns
]]
function str.match( frame )
local new_args = str._getParameters( frame.args, {'s', 'pattern', 'start', 'match', 'plain', 'nomatch'} );
local s = new_args['s'] or '';
local start = tonumber( new_args['start'] ) or 1;
local plain_flag = str._getBoolean( new_args['plain'] or false );
local pattern = new_args['pattern'] or '';
local match_index = math.floor( tonumber(new_args['match']) or 1 );
local nomatch = new_args['nomatch'];
if s == '' then
return str._error( 'Target string is empty' );
end
if pattern == '' then
return str._error( 'Pattern string is empty' );
end
if math.abs(start) < 1 or math.abs(start) > mw.ustring.len( s ) then
return str._error( 'Requested start is out of range' );
end
if match_index == 0 then
return str._error( 'Match index is out of range' );
end
if plain_flag then
pattern = str._escapePattern( pattern );
end
local result
if match_index == 1 then
-- Find first match is simple case
result = mw.ustring.match( s, pattern, start )
else
if start > 1 then
s = mw.ustring.sub( s, start );
end
local iterator = mw.ustring.gmatch(s, pattern);
if match_index > 0 then
-- Forward search
for w in iterator do
match_index = match_index - 1;
if match_index == 0 then
result = w;
break;
end
end
else
-- Reverse search
local result_table = {};
local count = 1;
for w in iterator do
result_table[count] = w;
count = count + 1;
end
result = result_table[ count + match_index ];
end
end
if result == nil then
if nomatch == nil then
return str._error( 'Match not found' );
else
return nomatch;
end
else
return result;
end
end
--[[
pos
This function returns a single character from the target string at position pos.
Usage:
{{#invoke:String|pos|target_string|index_value}}
OR
{{#invoke:String|pos|target=target_string|pos=index_value}}
Parameters
target: The string to search
pos: The index for the character to return
If invoked using named parameters, Mediawiki will automatically remove any leading or
trailing whitespace from the target string. In some circumstances this is desirable, in
other cases one may want to preserve the whitespace.
The first character has an index value of 1.
If one requests a negative value, this function will select a character by counting backwards
from the end of the string. In other words pos = -1 is the same as asking for the last character.
A requested value of zero, or a value greater than the length of the string returns an error.
]]
function str.pos( frame )
local new_args = str._getParameters( frame.args, {'target', 'pos'} );
local target_str = new_args['target'] or '';
local pos = tonumber( new_args['pos'] ) or 0;
if pos == 0 or math.abs(pos) > mw.ustring.len( target_str ) then
return str._error( 'String index out of range' );
end
return mw.ustring.sub( target_str, pos, pos );
end
--[[
str_find
This function duplicates the behavior of {{str_find}}, including all of its quirks.
This is provided in order to support existing templates, but is NOT RECOMMENDED for
new code and templates. New code is recommended to use the "find" function instead.
Returns the first index in "source" that is a match to "target". Indexing is 1-based,
and the function returns -1 if the "target" string is not present in "source".
Important Note: If the "target" string is empty / missing, this function returns a
value of "1", which is generally unexpected behavior, and must be accounted for
separatetly.
]]
function str.str_find( frame )
local new_args = str._getParameters( frame.args, {'source', 'target'} );
local source_str = new_args['source'] or '';
local target_str = new_args['target'] or '';
if target_str == '' then
return 1;
end
local start = mw.ustring.find( source_str, target_str, 1, true )
if start == nil then
start = -1
end
return start
end
--[[
find
This function allows one to search for a target string or pattern within another
string.
Usage:
{{#invoke:String|find|source_str|target_string|start_index|plain_flag}}
OR
{{#invoke:String|find|source=source_str|target=target_str|start=start_index|plain=plain_flag}}
Parameters
source: The string to search
target: The string or pattern to find within source
start: The index within the source string to start the search, defaults to 1
plain: Boolean flag indicating that target should be understood as plain
text and not as a Lua style regular expression, defaults to true
If invoked using named parameters, Mediawiki will automatically remove any leading or
trailing whitespace from the parameter. In some circumstances this is desirable, in
other cases one may want to preserve the whitespace.
This function returns the first index >= "start" where "target" can be found
within "source". Indices are 1-based. If "target" is not found, then this
function returns 0. If either "source" or "target" are missing / empty, this
function also returns 0.
This function should be safe for UTF-8 strings.
]]
function str.find( frame )
local new_args = str._getParameters( frame.args, {'source', 'target', 'start', 'plain' } );
local source_str = new_args['source'] or '';
local pattern = new_args['target'] or '';
local start_pos = tonumber(new_args['start']) or 1;
local plain = new_args['plain'] or true;
if source_str == '' or pattern == '' then
return 0;
end
plain = str._getBoolean( plain );
local start = mw.ustring.find( source_str, pattern, start_pos, plain )
if start == nil then
start = 0
end
return start
end
--[[
replace
This function allows one to replace a target string or pattern within another
string.
Usage:
{{#invoke:String|replace|source_str|pattern_string|replace_string|replacement_count|plain_flag}}
OR
{{#invoke:String|replace|source=source_string|pattern=pattern_string|replace=replace_string|
count=replacement_count|plain=plain_flag}}
Parameters
source: The string to search
pattern: The string or pattern to find within source
replace: The replacement text
count: The number of occurences to replace, defaults to all.
plain: Boolean flag indicating that pattern should be understood as plain
text and not as a Lua style regular expression, defaults to true
]]
function str.replace( frame )
local new_args = str._getParameters( frame.args, {'source', 'pattern', 'replace', 'count', 'plain' } );
local source_str = new_args['source'] or '';
local pattern = new_args['pattern'] or '';
local replace = new_args['replace'] or '';
local count = tonumber( new_args['count'] );
local plain = new_args['plain'] or true;
if source_str == '' or pattern == '' then
return source_str;
end
plain = str._getBoolean( plain );
if plain then
pattern = str._escapePattern( pattern );
replace = mw.ustring.gsub( replace, "%%", "%%%%" ); --Only need to escape replacement sequences.
end
local result;
if count ~= nil then
result = mw.ustring.gsub( source_str, pattern, replace, count );
else
result = mw.ustring.gsub( source_str, pattern, replace );
end
return result;
end
--[[
simple function to pipe string.rep to templates.
]]
function str.rep( frame )
local repetitions = tonumber( frame.args[2] )
if not repetitions then
return str._error( 'function rep expects a number as second parameter, received "' .. ( frame.args[2] or '' ) .. '"' )
end
return string.rep( frame.args[1] or '', repetitions )
end
--[[
Helper function that populates the argument list given that user may need to use a mix of
named and unnamed parameters. This is relevant because named parameters are not
identical to unnamed parameters due to string trimming, and when dealing with strings
we sometimes want to either preserve or remove that whitespace depending on the application.
]]
function str._getParameters( frame_args, arg_list )
local new_args = {};
local index = 1;
local value;
for i,arg in ipairs( arg_list ) do
value = frame_args[arg]
if value == nil then
value = frame_args[index];
index = index + 1;
end
new_args[arg] = value;
end
return new_args;
end
--[[
Helper function to handle error messages.
]]
function str._error( error_str )
local frame = mw.getCurrentFrame();
local error_category = frame.args.error_category or 'Errors reported by Module String';
local ignore_errors = frame.args.ignore_errors or false;
local no_category = frame.args.no_category or false;
if str._getBoolean(ignore_errors) then
return '';
end
local error_str = '<strong class="error">String Module Error: ' .. error_str .. '</strong>';
if error_category ~= '' and not str._getBoolean( no_category ) then
error_str = '[[Category:' .. error_category .. ']]' .. error_str;
end
return error_str;
end
--[[
Helper Function to interpret boolean strings
]]
function str._getBoolean( boolean_str )
local boolean_value;
if type( boolean_str ) == 'string' then
boolean_str = boolean_str:lower();
if boolean_str == 'false' or boolean_str == 'no' or boolean_str == '0'
or boolean_str == '' then
boolean_value = false;
else
boolean_value = true;
end
elseif type( boolean_str ) == 'boolean' then
boolean_value = boolean_str;
else
error( 'No boolean value found' );
end
return boolean_value
end
--[[
Helper function that escapes all pattern characters so that they will be treated
as plain text.
]]
function str._escapePattern( pattern_str )
return mw.ustring.gsub( pattern_str, "([%(%)%.%%%+%-%*%?%[%^%$%]])", "%%%1" );
end
return str
b3f731f2026437e7ef7e3f22bb9d823788125c39
Module:TableTools
828
43
101
100
2018-05-21T20:36:09Z
Wizzup
4
1 revision imported
Scribunto
text/plain
--[[
------------------------------------------------------------------------------------
-- TableTools --
-- --
-- This module includes a number of functions for dealing with Lua tables. --
-- It is a meta-module, meant to be called from other Lua modules, and should --
-- not be called directly from #invoke. --
------------------------------------------------------------------------------------
--]]
local libraryUtil = require('libraryUtil')
local p = {}
-- Define often-used variables and functions.
local floor = math.floor
local infinity = math.huge
local checkType = libraryUtil.checkType
--[[
------------------------------------------------------------------------------------
-- isPositiveInteger
--
-- This function returns true if the given value is a positive integer, and false
-- if not. Although it doesn't operate on tables, it is included here as it is
-- useful for determining whether a given table key is in the array part or the
-- hash part of a table.
------------------------------------------------------------------------------------
--]]
function p.isPositiveInteger(v)
if type(v) == 'number' and v >= 1 and floor(v) == v and v < infinity then
return true
else
return false
end
end
--[[
------------------------------------------------------------------------------------
-- isNan
--
-- This function returns true if the given number is a NaN value, and false
-- if not. Although it doesn't operate on tables, it is included here as it is
-- useful for determining whether a value can be a valid table key. Lua will
-- generate an error if a NaN is used as a table key.
------------------------------------------------------------------------------------
--]]
function p.isNan(v)
if type(v) == 'number' and tostring(v) == '-nan' then
return true
else
return false
end
end
--[[
------------------------------------------------------------------------------------
-- shallowClone
--
-- This returns a clone of a table. The value returned is a new table, but all
-- subtables and functions are shared. Metamethods are respected, but the returned
-- table will have no metatable of its own.
------------------------------------------------------------------------------------
--]]
function p.shallowClone(t)
local ret = {}
for k, v in pairs(t) do
ret[k] = v
end
return ret
end
--[[
------------------------------------------------------------------------------------
-- removeDuplicates
--
-- This removes duplicate values from an array. Non-positive-integer keys are
-- ignored. The earliest value is kept, and all subsequent duplicate values are
-- removed, but otherwise the array order is unchanged.
------------------------------------------------------------------------------------
--]]
function p.removeDuplicates(t)
checkType('removeDuplicates', 1, t, 'table')
local isNan = p.isNan
local ret, exists = {}, {}
for i, v in ipairs(t) do
if isNan(v) then
-- NaNs can't be table keys, and they are also unique, so we don't need to check existence.
ret[#ret + 1] = v
else
if not exists[v] then
ret[#ret + 1] = v
exists[v] = true
end
end
end
return ret
end
--[[
------------------------------------------------------------------------------------
-- numKeys
--
-- This takes a table and returns an array containing the numbers of any numerical
-- keys that have non-nil values, sorted in numerical order.
------------------------------------------------------------------------------------
--]]
function p.numKeys(t)
checkType('numKeys', 1, t, 'table')
local isPositiveInteger = p.isPositiveInteger
local nums = {}
for k, v in pairs(t) do
if isPositiveInteger(k) then
nums[#nums + 1] = k
end
end
table.sort(nums)
return nums
end
--[[
------------------------------------------------------------------------------------
-- affixNums
--
-- This takes a table and returns an array containing the numbers of keys with the
-- specified prefix and suffix. For example, for the table
-- {a1 = 'foo', a3 = 'bar', a6 = 'baz'} and the prefix "a", affixNums will
-- return {1, 3, 6}.
------------------------------------------------------------------------------------
--]]
function p.affixNums(t, prefix, suffix)
checkType('affixNums', 1, t, 'table')
checkType('affixNums', 2, prefix, 'string', true)
checkType('affixNums', 3, suffix, 'string', true)
local function cleanPattern(s)
-- Cleans a pattern so that the magic characters ()%.[]*+-?^$ are interpreted literally.
s = s:gsub('([%(%)%%%.%[%]%*%+%-%?%^%$])', '%%%1')
return s
end
prefix = prefix or ''
suffix = suffix or ''
prefix = cleanPattern(prefix)
suffix = cleanPattern(suffix)
local pattern = '^' .. prefix .. '([1-9]%d*)' .. suffix .. '$'
local nums = {}
for k, v in pairs(t) do
if type(k) == 'string' then
local num = mw.ustring.match(k, pattern)
if num then
nums[#nums + 1] = tonumber(num)
end
end
end
table.sort(nums)
return nums
end
--[[
------------------------------------------------------------------------------------
-- numData
--
-- Given a table with keys like ("foo1", "bar1", "foo2", "baz2"), returns a table
-- of subtables in the format
-- { [1] = {foo = 'text', bar = 'text'}, [2] = {foo = 'text', baz = 'text'} }
-- Keys that don't end with an integer are stored in a subtable named "other".
-- The compress option compresses the table so that it can be iterated over with
-- ipairs.
------------------------------------------------------------------------------------
--]]
function p.numData(t, compress)
checkType('numData', 1, t, 'table')
checkType('numData', 2, compress, 'boolean', true)
local ret = {}
for k, v in pairs(t) do
local prefix, num = mw.ustring.match(tostring(k), '^([^0-9]*)([1-9][0-9]*)$')
if num then
num = tonumber(num)
local subtable = ret[num] or {}
if prefix == '' then
-- Positional parameters match the blank string; put them at the start of the subtable instead.
prefix = 1
end
subtable[prefix] = v
ret[num] = subtable
else
local subtable = ret.other or {}
subtable[k] = v
ret.other = subtable
end
end
if compress then
local other = ret.other
ret = p.compressSparseArray(ret)
ret.other = other
end
return ret
end
--[[
------------------------------------------------------------------------------------
-- compressSparseArray
--
-- This takes an array with one or more nil values, and removes the nil values
-- while preserving the order, so that the array can be safely traversed with
-- ipairs.
------------------------------------------------------------------------------------
--]]
function p.compressSparseArray(t)
checkType('compressSparseArray', 1, t, 'table')
local ret = {}
local nums = p.numKeys(t)
for _, num in ipairs(nums) do
ret[#ret + 1] = t[num]
end
return ret
end
--[[
------------------------------------------------------------------------------------
-- sparseIpairs
--
-- This is an iterator for sparse arrays. It can be used like ipairs, but can
-- handle nil values.
------------------------------------------------------------------------------------
--]]
function p.sparseIpairs(t)
checkType('sparseIpairs', 1, t, 'table')
local nums = p.numKeys(t)
local i = 0
local lim = #nums
return function ()
i = i + 1
if i <= lim then
local key = nums[i]
return key, t[key]
else
return nil, nil
end
end
end
--[[
------------------------------------------------------------------------------------
-- size
--
-- This returns the size of a key/value pair table. It will also work on arrays,
-- but for arrays it is more efficient to use the # operator.
------------------------------------------------------------------------------------
--]]
function p.size(t)
checkType('size', 1, t, 'table')
local i = 0
for k in pairs(t) do
i = i + 1
end
return i
end
return p
ab9df0eb210b08945b9eed86435858f6e931a79a
Module:Yesno
828
44
103
102
2018-05-21T20:36:09Z
Wizzup
4
1 revision imported
Scribunto
text/plain
-- Function allowing for consistent treatment of boolean-like wikitext input.
-- It works similarly to the template {{yesno}}.
return function (val, default)
-- If your wiki uses non-ascii characters for any of "yes", "no", etc., you
-- should replace "val:lower()" with "mw.ustring.lower(val)" in the
-- following line.
val = type(val) == 'string' and val:lower() or val
if val == nil then
return nil
elseif val == true
or val == 'yes'
or val == 'y'
or val == 'true'
or val == 't'
or val == 'on'
or tonumber(val) == 1
then
return true
elseif val == false
or val == 'no'
or val == 'n'
or val == 'false'
or val == 'f'
or val == 'off'
or tonumber(val) == 0
then
return false
else
return default
end
end
f767643e7d12126d020d88d662a3dd057817b9dc
Main Page
0
1
104
20
2018-05-21T20:40:08Z
Sicelo
5
wikitext
text/x-wiki
= Description =
Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo (Fremantle). We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more.
You can find us on '''freenode''', channel '''#maemo-leste'''.
Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels.
The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available, such as the N900.
So far we have set up devuan/debian repositories for our packages, with builds for armel, armhf and amd64. We have FOSS replacements for some closed maemo packages, further building on the Maemo community efforts to replace all closed bits by open software.
= Supported Devices =
== N900 ==
[https://maemo-leste.github.io/pages/n900-status.html Status]
=== Installation ===
''' U-Boot from sdcard '''
''' Boot through flasher from sdcard'''
=== Known Issues and workarounds ===
=== Kernel development ===
Status: [https://elinux.org/N900 https://elinux.org/N900]
Sources: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip
== N9/N950 ==
[https://github.com/maemo-leste/bugtracker/issues/121 Status]
=== Installation ===
''' [http://www.swagman.org/juice/ubiboot/ubiboot-02/ ubiboot] from eMMC '''
# [http://www.swagman.org/juice/ubiboot/README Install ubiboot].
# [https://talk.maemo.org/showthread.php?t=91914 Create a new slice on the eMMC] and format it to ext4.
# Mount your new ext4 slice and unpack the .tar.gz dist ([https://maedevu.maemo.org/images/n9/20180425/maemo-leste-1.0-armhf-n9-20180425.tar.gz N9 - 20180424], [https://maedevu.maemo.org/images/n950/20180425/maemo-leste-1.0-armhf-n950-20180424.tar.gz N950 - 20180424]) to it.
# Configure <code>ubiboot.conf</code>. This guide assumes you will use slot 5 for Maemo Leste ([https://github.com/dderby/ubiboot-animatronics/blob/master/ubiboot.conf example]):
#* Set '''G_OS5_INITSCRIPT''' to <code>\/sbin\/preinit</code>
#* Set '''G_OS5_NUM''' to <code>1</code>
#* Set '''G_OS5_PARTITION''' to the partition number of your Maemo Leste slice
#* Set '''G_OS5_NAME''' to <code>Maemo</code>
#* Set '''G_OS5_1_LABEL''' to <code>Maemo Leste - Linux 4.16</code> or whatever description you like
#* Set '''G_OS5_1_FILE''' to <code>/boot/Maemo/boot/zImage</code>
# Reboot to ubiboot and select the slot for Maemo Leste.
If you don't want to repartition your eMMC, there are two alternatives:
* Use [https://talk.maemo.org/showthread.php?t=94042 N9 Easy Boot].
* Unpack the dist to Harmattan's <code>/home</code> directory and set '''G_OS5_PARTITION''' in ubiboot.conf to <code>3</code>. This will result in Maemo Leste sharing a slice with Harmattan's <code>/home</code>. Be careful when removing Maemo Leste, not to remove Harmattan's <code>user</code> or <code>developer</code> home directories.
=== Kernel development ===
Linux 4.16.4 plus patches
N950 status: https://elinux.org/N950
N9 status: https://elinux.org/N9
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.16.y linux-stable 4.16.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n950-patches N950 patches], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n9-patches N9 patches]
== Droid 4 ==
[https://maemo-leste.github.io/pages/droid-4-status.html Status]
=== Installation ===
''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card '''
(This is the boot method currently being used but we'll probably replace this with [https://github.com/tmlind/droid4-kexecboot droid4-kexecboot] to aid kernel updates via deb package)
=== Kernel development ===
Linux 4.14 plus patches
Status: http://elektranox.org/droid4/
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]
== Generic AMD64 ==
== Allwinner A20 LIME2 ==
== Allwinner A33 Tablet ==
== Raspberry 2 or 3 ==
= Development =
== Set up a VM ==
== Packages needing testing ==
== Packages needing building ==
== Packages needing porting ==
= Roadmap =
== Project milestones ==
https://github.com/maemo-leste/bugtracker/milestones
= Links =
<div>
*Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io]
*Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues]
*Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/]
*Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/]
The central point of meeting and talking is IRC and this thread: https://talk.maemo.org/showthread.php?t=100192.
</div>
*[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)]
661b3faddbc369bd4731a7f6ce337cd84e6b3cc8
120
104
2018-05-21T21:26:44Z
Wizzup
4
wikitext
text/x-wiki
= Description =
Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo (Fremantle). We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more.
You can find us on '''freenode''', channel '''#maemo-leste'''.
Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels.
The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available, such as the N900.
So far we have set up devuan/debian repositories for our packages, with builds for armel, armhf and amd64. We have FOSS replacements for some closed maemo packages, further building on the Maemo community efforts to replace all closed bits by open software.
= Supported Devices =
See [[Category:Device]]
== N900 ==
[https://maemo-leste.github.io/pages/n900-status.html Status]
=== Installation ===
''' U-Boot from sdcard '''
''' Boot through flasher from sdcard'''
=== Known Issues and workarounds ===
=== Kernel development ===
Status: [https://elinux.org/N900 https://elinux.org/N900]
Sources: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip
== N9/N950 ==
[https://github.com/maemo-leste/bugtracker/issues/121 Status]
=== Installation ===
''' [http://www.swagman.org/juice/ubiboot/ubiboot-02/ ubiboot] from eMMC '''
# [http://www.swagman.org/juice/ubiboot/README Install ubiboot].
# [https://talk.maemo.org/showthread.php?t=91914 Create a new slice on the eMMC] and format it to ext4.
# Mount your new ext4 slice and unpack the .tar.gz dist ([https://maedevu.maemo.org/images/n9/20180425/maemo-leste-1.0-armhf-n9-20180425.tar.gz N9 - 20180424], [https://maedevu.maemo.org/images/n950/20180425/maemo-leste-1.0-armhf-n950-20180424.tar.gz N950 - 20180424]) to it.
# Configure <code>ubiboot.conf</code>. This guide assumes you will use slot 5 for Maemo Leste ([https://github.com/dderby/ubiboot-animatronics/blob/master/ubiboot.conf example]):
#* Set '''G_OS5_INITSCRIPT''' to <code>\/sbin\/preinit</code>
#* Set '''G_OS5_NUM''' to <code>1</code>
#* Set '''G_OS5_PARTITION''' to the partition number of your Maemo Leste slice
#* Set '''G_OS5_NAME''' to <code>Maemo</code>
#* Set '''G_OS5_1_LABEL''' to <code>Maemo Leste - Linux 4.16</code> or whatever description you like
#* Set '''G_OS5_1_FILE''' to <code>/boot/Maemo/boot/zImage</code>
# Reboot to ubiboot and select the slot for Maemo Leste.
If you don't want to repartition your eMMC, there are two alternatives:
* Use [https://talk.maemo.org/showthread.php?t=94042 N9 Easy Boot].
* Unpack the dist to Harmattan's <code>/home</code> directory and set '''G_OS5_PARTITION''' in ubiboot.conf to <code>3</code>. This will result in Maemo Leste sharing a slice with Harmattan's <code>/home</code>. Be careful when removing Maemo Leste, not to remove Harmattan's <code>user</code> or <code>developer</code> home directories.
=== Kernel development ===
Linux 4.16.4 plus patches
N950 status: https://elinux.org/N950
N9 status: https://elinux.org/N9
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.16.y linux-stable 4.16.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n950-patches N950 patches], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n9-patches N9 patches]
== Droid 4 ==
[https://maemo-leste.github.io/pages/droid-4-status.html Status]
=== Installation ===
''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card '''
(This is the boot method currently being used but we'll probably replace this with [https://github.com/tmlind/droid4-kexecboot droid4-kexecboot] to aid kernel updates via deb package)
=== Kernel development ===
Linux 4.14 plus patches
Status: http://elektranox.org/droid4/
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]
== Generic AMD64 ==
== Allwinner A20 LIME2 ==
== Allwinner A33 Tablet ==
== Raspberry 2 or 3 ==
= Development =
== Set up a VM ==
== Packages needing testing ==
== Packages needing building ==
== Packages needing porting ==
= Roadmap =
== Project milestones ==
https://github.com/maemo-leste/bugtracker/milestones
= Links =
<div>
*Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io]
*Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues]
*Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/]
*Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/]
The central point of meeting and talking is IRC and this thread: https://talk.maemo.org/showthread.php?t=100192.
</div>
*[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)]
89ef3b9a54a007daddbbbd943d3819736a24540f
122
120
2018-05-21T21:28:52Z
Wizzup
4
wikitext
text/x-wiki
= Description =
Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo (Fremantle). We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more.
You can find us on '''freenode''', channel '''#maemo-leste'''.
Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels.
The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available, such as the N900.
So far we have set up devuan/debian repositories for our packages, with builds for armel, armhf and amd64. We have FOSS replacements for some closed maemo packages, further building on the Maemo community efforts to replace all closed bits by open software.
= Supported Devices =
See [Category:Device]
== N900 ==
[https://maemo-leste.github.io/pages/n900-status.html Status]
=== Installation ===
''' U-Boot from sdcard '''
''' Boot through flasher from sdcard'''
=== Known Issues and workarounds ===
=== Kernel development ===
Status: [https://elinux.org/N900 https://elinux.org/N900]
Sources: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip
== N9/N950 ==
[https://github.com/maemo-leste/bugtracker/issues/121 Status]
=== Installation ===
''' [http://www.swagman.org/juice/ubiboot/ubiboot-02/ ubiboot] from eMMC '''
# [http://www.swagman.org/juice/ubiboot/README Install ubiboot].
# [https://talk.maemo.org/showthread.php?t=91914 Create a new slice on the eMMC] and format it to ext4.
# Mount your new ext4 slice and unpack the .tar.gz dist ([https://maedevu.maemo.org/images/n9/20180425/maemo-leste-1.0-armhf-n9-20180425.tar.gz N9 - 20180424], [https://maedevu.maemo.org/images/n950/20180425/maemo-leste-1.0-armhf-n950-20180424.tar.gz N950 - 20180424]) to it.
# Configure <code>ubiboot.conf</code>. This guide assumes you will use slot 5 for Maemo Leste ([https://github.com/dderby/ubiboot-animatronics/blob/master/ubiboot.conf example]):
#* Set '''G_OS5_INITSCRIPT''' to <code>\/sbin\/preinit</code>
#* Set '''G_OS5_NUM''' to <code>1</code>
#* Set '''G_OS5_PARTITION''' to the partition number of your Maemo Leste slice
#* Set '''G_OS5_NAME''' to <code>Maemo</code>
#* Set '''G_OS5_1_LABEL''' to <code>Maemo Leste - Linux 4.16</code> or whatever description you like
#* Set '''G_OS5_1_FILE''' to <code>/boot/Maemo/boot/zImage</code>
# Reboot to ubiboot and select the slot for Maemo Leste.
If you don't want to repartition your eMMC, there are two alternatives:
* Use [https://talk.maemo.org/showthread.php?t=94042 N9 Easy Boot].
* Unpack the dist to Harmattan's <code>/home</code> directory and set '''G_OS5_PARTITION''' in ubiboot.conf to <code>3</code>. This will result in Maemo Leste sharing a slice with Harmattan's <code>/home</code>. Be careful when removing Maemo Leste, not to remove Harmattan's <code>user</code> or <code>developer</code> home directories.
=== Kernel development ===
Linux 4.16.4 plus patches
N950 status: https://elinux.org/N950
N9 status: https://elinux.org/N9
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.16.y linux-stable 4.16.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n950-patches N950 patches], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n9-patches N9 patches]
== Droid 4 ==
[https://maemo-leste.github.io/pages/droid-4-status.html Status]
=== Installation ===
''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card '''
(This is the boot method currently being used but we'll probably replace this with [https://github.com/tmlind/droid4-kexecboot droid4-kexecboot] to aid kernel updates via deb package)
=== Kernel development ===
Linux 4.14 plus patches
Status: http://elektranox.org/droid4/
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]
== Generic AMD64 ==
== Allwinner A20 LIME2 ==
== Allwinner A33 Tablet ==
== Raspberry 2 or 3 ==
= Development =
== Set up a VM ==
== Packages needing testing ==
== Packages needing building ==
== Packages needing porting ==
= Roadmap =
== Project milestones ==
https://github.com/maemo-leste/bugtracker/milestones
= Links =
<div>
*Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io]
*Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues]
*Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/]
*Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/]
The central point of meeting and talking is IRC and this thread: https://talk.maemo.org/showthread.php?t=100192.
</div>
*[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)]
7d6a9fc489094d56b62d048a78d3df668a808b83
123
122
2018-05-21T21:31:23Z
Wizzup
4
wikitext
text/x-wiki
= Description =
Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo (Fremantle). We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more.
You can find us on '''freenode''', channel '''#maemo-leste'''.
Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels.
The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available, such as the N900.
So far we have set up devuan/debian repositories for our packages, with builds for armel, armhf and amd64. We have FOSS replacements for some closed maemo packages, further building on the Maemo community efforts to replace all closed bits by open software.
= Supported Devices =
See [[:Category:Device]]
== N900 ==
[https://maemo-leste.github.io/pages/n900-status.html Status]
=== Installation ===
''' U-Boot from sdcard '''
''' Boot through flasher from sdcard'''
=== Known Issues and workarounds ===
=== Kernel development ===
Status: [https://elinux.org/N900 https://elinux.org/N900]
Sources: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip
== N9/N950 ==
[https://github.com/maemo-leste/bugtracker/issues/121 Status]
=== Installation ===
''' [http://www.swagman.org/juice/ubiboot/ubiboot-02/ ubiboot] from eMMC '''
# [http://www.swagman.org/juice/ubiboot/README Install ubiboot].
# [https://talk.maemo.org/showthread.php?t=91914 Create a new slice on the eMMC] and format it to ext4.
# Mount your new ext4 slice and unpack the .tar.gz dist ([https://maedevu.maemo.org/images/n9/20180425/maemo-leste-1.0-armhf-n9-20180425.tar.gz N9 - 20180424], [https://maedevu.maemo.org/images/n950/20180425/maemo-leste-1.0-armhf-n950-20180424.tar.gz N950 - 20180424]) to it.
# Configure <code>ubiboot.conf</code>. This guide assumes you will use slot 5 for Maemo Leste ([https://github.com/dderby/ubiboot-animatronics/blob/master/ubiboot.conf example]):
#* Set '''G_OS5_INITSCRIPT''' to <code>\/sbin\/preinit</code>
#* Set '''G_OS5_NUM''' to <code>1</code>
#* Set '''G_OS5_PARTITION''' to the partition number of your Maemo Leste slice
#* Set '''G_OS5_NAME''' to <code>Maemo</code>
#* Set '''G_OS5_1_LABEL''' to <code>Maemo Leste - Linux 4.16</code> or whatever description you like
#* Set '''G_OS5_1_FILE''' to <code>/boot/Maemo/boot/zImage</code>
# Reboot to ubiboot and select the slot for Maemo Leste.
If you don't want to repartition your eMMC, there are two alternatives:
* Use [https://talk.maemo.org/showthread.php?t=94042 N9 Easy Boot].
* Unpack the dist to Harmattan's <code>/home</code> directory and set '''G_OS5_PARTITION''' in ubiboot.conf to <code>3</code>. This will result in Maemo Leste sharing a slice with Harmattan's <code>/home</code>. Be careful when removing Maemo Leste, not to remove Harmattan's <code>user</code> or <code>developer</code> home directories.
=== Kernel development ===
Linux 4.16.4 plus patches
N950 status: https://elinux.org/N950
N9 status: https://elinux.org/N9
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.16.y linux-stable 4.16.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n950-patches N950 patches], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n9-patches N9 patches]
== Droid 4 ==
[https://maemo-leste.github.io/pages/droid-4-status.html Status]
=== Installation ===
''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card '''
(This is the boot method currently being used but we'll probably replace this with [https://github.com/tmlind/droid4-kexecboot droid4-kexecboot] to aid kernel updates via deb package)
=== Kernel development ===
Linux 4.14 plus patches
Status: http://elektranox.org/droid4/
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]
== Generic AMD64 ==
== Allwinner A20 LIME2 ==
== Allwinner A33 Tablet ==
== Raspberry 2 or 3 ==
= Development =
== Set up a VM ==
== Packages needing testing ==
== Packages needing building ==
== Packages needing porting ==
= Roadmap =
== Project milestones ==
https://github.com/maemo-leste/bugtracker/milestones
= Links =
<div>
*Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io]
*Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues]
*Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/]
*Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/]
The central point of meeting and talking is IRC and this thread: https://talk.maemo.org/showthread.php?t=100192.
</div>
*[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)]
b2dee7f2483aee5c77791933d62f9ab6568044b0
Template:Infobox Device
10
45
106
105
2018-05-21T20:40:43Z
Wizzup
4
1 revision imported
wikitext
text/x-wiki
{{Infobox
| abovestyle = background: #dedede;
| headerstyle = background: #dedede;
| above = {{{name|<includeonly>{{PAGENAME}}</includeonly>}}}
| image = {{{image|}}}
| caption = {{{caption|}}}
| header2 =
| label2 = Manufacturer
| data2 = {{{manufacturer|}}}
| header3 =
| label3 = Codename
| data3 = {{{codename|}}}
| header4 =
| label4 = Dimensions
| data4 = {{{dimensions|}}}
| header5 =
| label5 = Release Date
| data5 = {{{release_date|}}}
| header6 =
| label6 = Website
| data6 = {{{website|}}}
| header7 = Specifications
| label7 =
| data7 =
| header8 =
| label8 = SoC
| data8 = {{{soc|}}}
| header9 =
| label9 = DRAM
| data9 = {{{dram|}}}
| header10 =
| label10 = NAND
| data10 = {{{nand|}}}
| header11 =
| label11 = Power
| data11 = {{{power|}}}
| header12 = Features
| label12 =
| data12 =
| header13 =
| label13 = LCD
| data13 = {{{lcd|}}}
| header14 =
| label14 = Input
| data14 = {{{input|}}}
| header15 =
| label15 = Video
| data15 = {{{video|}}}
| header16 =
| label16 = Audio
| data16 = {{{audio|}}}
| header17 =
| label17 = Network
| data17 = {{{network|}}}
| header18 =
| label18 = Storage
| data18 = {{{storage|}}}
| header19 =
| label19 = USB (<small>Host/OTG</small>)
| data19 = {{{usb|}}}
| header20 =
| label20 = Camera
| data20 = {{{camera|}}}
| header21 =
| label21 = Sensors
| data21 = {{{sensors|}}}
| header22 =
| label22 = Other
| data22 = {{{other|}}}
| header23 =
| label23 = External Headers
| data23 = {{{headers|}}}
}}
993003e5ee469a6119c5d643d599b7028809c79e
Template:Infobox
10
4
108
23
2018-05-21T20:40:54Z
Wizzup
4
1 revision imported
wikitext
text/x-wiki
{{#invoke:Infobox|infobox}}<includeonly>{{#ifeq:{{NAMESPACE}}|Template|{{#ifeq:{{str left|{{SUBPAGENAME}}|7}}|Infobox|[[Category:Infobox templates|{{remove first word|{{SUBPAGENAME}}}}]]}}}}</includeonly><noinclude>
{{documentation}}
<!-- Categories go in the /doc subpage, and interwikis go in Wikidata. -->
</noinclude>
e6db96a81f994b02e93b537be937d443c0890566
Module:Infobox
828
31
110
77
2018-05-21T20:40:54Z
Wizzup
4
1 revision imported
Scribunto
text/plain
--
-- This module implements {{Infobox}}
--
local p = {}
local navbar = require('Module:Navbar')._navbar
local args = {}
local origArgs
local root
local function notempty( s ) return s and s:match( '%S' ) end
local function fixChildBoxes(sval, tt)
if notempty(sval) then
local marker = '<span class=special_infobox_marker>'
local s = sval
s = mw.ustring.gsub(s, '(<%s*[Tt][Rr])', marker .. '%1')
s = mw.ustring.gsub(s, '(</[Tt][Rr]%s*>)', '%1' .. marker)
if s:match(marker) then
s = mw.ustring.gsub(s, marker .. '%s*' .. marker, '')
s = mw.ustring.gsub(s, '([\r\n]|-[^\r\n]*[\r\n])%s*' .. marker, '%1')
s = mw.ustring.gsub(s, marker .. '%s*([\r\n]|-)', '%1')
s = mw.ustring.gsub(s, '(</[Cc][Aa][Pp][Tt][Ii][Oo][Nn]%s*>%s*)' .. marker, '%1')
s = mw.ustring.gsub(s, '(<%s*[Tt][Aa][Bb][Ll][Ee][^<>]*>%s*)' .. marker, '%1')
s = mw.ustring.gsub(s, '^(%{|[^\r\n]*[\r\n]%s*)' .. marker, '%1')
s = mw.ustring.gsub(s, '([\r\n]%{|[^\r\n]*[\r\n]%s*)' .. marker, '%1')
s = mw.ustring.gsub(s, marker .. '(%s*</[Tt][Aa][Bb][Ll][Ee]%s*>)', '%1')
s = mw.ustring.gsub(s, marker .. '(%s*\n|%})', '%1')
end
if s:match(marker) then
local subcells = mw.text.split(s, marker)
s = ''
for k = 1, #subcells do
if k == 1 then
s = s .. subcells[k] .. '</' .. tt .. '></tr>'
elseif k == #subcells then
local rowstyle = ' style="display:none"'
if notempty(subcells[k]) then rowstyle = '' end
s = s .. '<tr' .. rowstyle ..'><' .. tt .. ' colspan=2>\n' .. subcells[k]
elseif notempty(subcells[k]) then
if (k % 2) == 0 then
s = s .. subcells[k]
else
s = s .. '<tr><' .. tt .. ' colspan=2>\n' .. subcells[k] .. '</' .. tt .. '></tr>'
end
end
end
end
return s
else
return sval
end
end
local function union(t1, t2)
-- Returns the union of the values of two tables, as a sequence.
local vals = {}
for k, v in pairs(t1) do
vals[v] = true
end
for k, v in pairs(t2) do
vals[v] = true
end
local ret = {}
for k, v in pairs(vals) do
table.insert(ret, k)
end
return ret
end
local function getArgNums(prefix)
-- Returns a table containing the numbers of the arguments that exist
-- for the specified prefix. For example, if the prefix was 'data', and
-- 'data1', 'data2', and 'data5' exist, it would return {1, 2, 5}.
local nums = {}
for k, v in pairs(args) do
local num = tostring(k):match('^' .. prefix .. '([1-9]%d*)$')
if num then table.insert(nums, tonumber(num)) end
end
table.sort(nums)
return nums
end
local function addRow(rowArgs)
-- Adds a row to the infobox, with either a header cell
-- or a label/data cell combination.
if rowArgs.header then
root
:tag('tr')
:addClass(rowArgs.rowclass)
:cssText(rowArgs.rowstyle)
:attr('id', rowArgs.rowid)
:tag('th')
:attr('colspan', 2)
:attr('id', rowArgs.headerid)
:addClass(rowArgs.class)
:addClass(args.headerclass)
:css('text-align', 'center')
:cssText(args.headerstyle)
:cssText(rowArgs.rowcellstyle)
:wikitext(fixChildBoxes(rowArgs.header, 'th'))
elseif rowArgs.data then
local row = root:tag('tr')
row:addClass(rowArgs.rowclass)
row:cssText(rowArgs.rowstyle)
row:attr('id', rowArgs.rowid)
if rowArgs.label then
row
:tag('th')
:attr('scope', 'row')
:attr('id', rowArgs.labelid)
:cssText(args.labelstyle)
:cssText(rowArgs.rowcellstyle)
:wikitext(rowArgs.label)
:done()
end
local dataCell = row:tag('td')
if not rowArgs.label then
dataCell
:attr('colspan', 2)
:css('text-align', 'center')
end
dataCell
:attr('id', rowArgs.dataid)
:addClass(rowArgs.class)
:cssText(rowArgs.datastyle)
:cssText(rowArgs.rowcellstyle)
:newline()
:wikitext(fixChildBoxes(rowArgs.data, 'td'))
end
end
local function renderTitle()
if not args.title then return end
root
:tag('caption')
:addClass(args.titleclass)
:cssText(args.titlestyle)
:wikitext(args.title)
end
local function renderAboveRow()
if not args.above then return end
root
:tag('tr')
:tag('th')
:attr('colspan', 2)
:addClass(args.aboveclass)
:css('text-align', 'center')
:css('font-size', '125%')
:css('font-weight', 'bold')
:cssText(args.abovestyle)
:wikitext(fixChildBoxes(args.above,'th'))
end
local function renderBelowRow()
if not args.below then return end
root
:tag('tr')
:tag('td')
:attr('colspan', '2')
:addClass(args.belowclass)
:css('text-align', 'center')
:cssText(args.belowstyle)
:newline()
:wikitext(fixChildBoxes(args.below,'td'))
end
local function renderSubheaders()
if args.subheader then
args.subheader1 = args.subheader
end
if args.subheaderrowclass then
args.subheaderrowclass1 = args.subheaderrowclass
end
local subheadernums = getArgNums('subheader')
for k, num in ipairs(subheadernums) do
addRow({
data = args['subheader' .. tostring(num)],
datastyle = args.subheaderstyle or args['subheaderstyle' .. tostring(num)],
class = args.subheaderclass,
rowclass = args['subheaderrowclass' .. tostring(num)]
})
end
end
local function renderImages()
if args.image then
args.image1 = args.image
end
if args.caption then
args.caption1 = args.caption
end
local imagenums = getArgNums('image')
for k, num in ipairs(imagenums) do
local caption = args['caption' .. tostring(num)]
local data = mw.html.create():wikitext(args['image' .. tostring(num)])
if caption then
data
:tag('div')
:cssText(args.captionstyle)
:wikitext(caption)
end
addRow({
data = tostring(data),
datastyle = args.imagestyle,
class = args.imageclass,
rowclass = args['imagerowclass' .. tostring(num)]
})
end
end
local function renderRows()
-- Gets the union of the header and data argument numbers,
-- and renders them all in order using addRow.
local rownums = union(getArgNums('header'), getArgNums('data'))
table.sort(rownums)
for k, num in ipairs(rownums) do
addRow({
header = args['header' .. tostring(num)],
label = args['label' .. tostring(num)],
data = args['data' .. tostring(num)],
datastyle = args.datastyle,
class = args['class' .. tostring(num)],
rowclass = args['rowclass' .. tostring(num)],
rowstyle = args['rowstyle' .. tostring(num)],
rowcellstyle = args['rowcellstyle' .. tostring(num)],
dataid = args['dataid' .. tostring(num)],
labelid = args['labelid' .. tostring(num)],
headerid = args['headerid' .. tostring(num)],
rowid = args['rowid' .. tostring(num)]
})
end
end
local function renderNavBar()
if not args.name then return end
root
:tag('tr')
:tag('td')
:attr('colspan', '2')
:css('text-align', 'right')
:wikitext(navbar{
args.name,
mini = 1,
})
end
local function renderItalicTitle()
local italicTitle = args['italic title'] and mw.ustring.lower(args['italic title'])
if italicTitle == '' or italicTitle == 'force' or italicTitle == 'yes' then
root:wikitext(mw.getCurrentFrame():expandTemplate({title = 'italic title'}))
end
end
local function renderTrackingCategories()
if args.decat ~= 'yes' then
if #(getArgNums('data')) == 0 and mw.title.getCurrentTitle().namespace == 0 then
root:wikitext('[[Category:Articles which use infobox templates with no data rows]]')
end
if args.child == 'yes' and args.title then
root:wikitext('[[Category:Pages which use embedded infobox templates with the title parameter]]')
end
end
end
local function _infobox()
-- Specify the overall layout of the infobox, with special settings
-- if the infobox is used as a 'child' inside another infobox.
if args.child ~= 'yes' then
root = mw.html.create('table')
root
:addClass((args.subbox ~= 'yes') and 'infobox' or nil)
:addClass(args.bodyclass)
if args.subbox == 'yes' then
root
:css('padding', '0')
:css('border', 'none')
:css('margin', '-3px')
:css('width', 'auto')
:css('min-width', '100%')
:css('font-size', '100%')
:css('clear', 'none')
:css('float', 'none')
:css('background-color', 'transparent')
else
root
:css('width', '22em')
end
root
:cssText(args.bodystyle)
renderTitle()
renderAboveRow()
else
root = mw.html.create()
root
:wikitext(args.title)
end
renderSubheaders()
renderImages()
renderRows()
renderBelowRow()
renderNavBar()
renderItalicTitle()
renderTrackingCategories()
return tostring(root)
end
local function preprocessSingleArg(argName)
-- If the argument exists and isn't blank, add it to the argument table.
-- Blank arguments are treated as nil to match the behaviour of ParserFunctions.
if origArgs[argName] and origArgs[argName] ~= '' then
args[argName] = origArgs[argName]
end
end
local function preprocessArgs(prefixTable, step)
-- Assign the parameters with the given prefixes to the args table, in order, in batches
-- of the step size specified. This is to prevent references etc. from appearing in the
-- wrong order. The prefixTable should be an array containing tables, each of which has
-- two possible fields, a "prefix" string and a "depend" table. The function always parses
-- parameters containing the "prefix" string, but only parses parameters in the "depend"
-- table if the prefix parameter is present and non-blank.
if type(prefixTable) ~= 'table' then
error("Non-table value detected for the prefix table", 2)
end
if type(step) ~= 'number' then
error("Invalid step value detected", 2)
end
-- Get arguments without a number suffix, and check for bad input.
for i,v in ipairs(prefixTable) do
if type(v) ~= 'table' or type(v.prefix) ~= "string" or (v.depend and type(v.depend) ~= 'table') then
error('Invalid input detected to preprocessArgs prefix table', 2)
end
preprocessSingleArg(v.prefix)
-- Only parse the depend parameter if the prefix parameter is present and not blank.
if args[v.prefix] and v.depend then
for j, dependValue in ipairs(v.depend) do
if type(dependValue) ~= 'string' then
error('Invalid "depend" parameter value detected in preprocessArgs')
end
preprocessSingleArg(dependValue)
end
end
end
-- Get arguments with number suffixes.
local a = 1 -- Counter variable.
local moreArgumentsExist = true
while moreArgumentsExist == true do
moreArgumentsExist = false
for i = a, a + step - 1 do
for j,v in ipairs(prefixTable) do
local prefixArgName = v.prefix .. tostring(i)
if origArgs[prefixArgName] then
moreArgumentsExist = true -- Do another loop if any arguments are found, even blank ones.
preprocessSingleArg(prefixArgName)
end
-- Process the depend table if the prefix argument is present and not blank, or
-- we are processing "prefix1" and "prefix" is present and not blank, and
-- if the depend table is present.
if v.depend and (args[prefixArgName] or (i == 1 and args[v.prefix])) then
for j,dependValue in ipairs(v.depend) do
local dependArgName = dependValue .. tostring(i)
preprocessSingleArg(dependArgName)
end
end
end
end
a = a + step
end
end
function p.infobox(frame)
-- If called via #invoke, use the args passed into the invoking template.
-- Otherwise, for testing purposes, assume args are being passed directly in.
if frame == mw.getCurrentFrame() then
origArgs = frame:getParent().args
else
origArgs = frame
end
-- Parse the data parameters in the same order that the old {{infobox}} did, so that
-- references etc. will display in the expected places. Parameters that depend on
-- another parameter are only processed if that parameter is present, to avoid
-- phantom references appearing in article reference lists.
preprocessSingleArg('child')
preprocessSingleArg('bodyclass')
preprocessSingleArg('subbox')
preprocessSingleArg('bodystyle')
preprocessSingleArg('title')
preprocessSingleArg('titleclass')
preprocessSingleArg('titlestyle')
preprocessSingleArg('above')
preprocessSingleArg('aboveclass')
preprocessSingleArg('abovestyle')
preprocessArgs({
{prefix = 'subheader', depend = {'subheaderstyle', 'subheaderrowclass'}}
}, 10)
preprocessSingleArg('subheaderstyle')
preprocessSingleArg('subheaderclass')
preprocessArgs({
{prefix = 'image', depend = {'caption', 'imagerowclass'}}
}, 10)
preprocessSingleArg('captionstyle')
preprocessSingleArg('imagestyle')
preprocessSingleArg('imageclass')
preprocessArgs({
{prefix = 'header'},
{prefix = 'data', depend = {'label'}},
{prefix = 'rowclass'},
{prefix = 'rowstyle'},
{prefix = 'rowcellstyle'},
{prefix = 'class'},
{prefix = 'dataid'},
{prefix = 'labelid'},
{prefix = 'headerid'},
{prefix = 'rowid'}
}, 50)
preprocessSingleArg('headerclass')
preprocessSingleArg('headerstyle')
preprocessSingleArg('labelstyle')
preprocessSingleArg('datastyle')
preprocessSingleArg('below')
preprocessSingleArg('belowclass')
preprocessSingleArg('belowstyle')
preprocessSingleArg('name')
args['italic title'] = origArgs['italic title'] -- different behaviour if blank or absent
preprocessSingleArg('decat')
return _infobox()
end
return p
3c0184beda9afaf0fe936d06101680d646f31874
Module:HtmlBuilder
828
46
112
111
2018-05-21T20:40:54Z
Wizzup
4
1 revision imported
Scribunto
text/plain
-- Module for building complex HTML (e.g. infoboxes, navboxes) using a fluent interface.
local HtmlBuilder = {}
local metatable = {}
metatable.__index = function(t, key)
local ret = rawget(t, key)
if ret then
return ret
end
ret = metatable[key]
if type(ret) == 'function' then
return function(...)
return ret(t, ...)
end
else
return ret
end
end
metatable.__tostring = function(t)
local ret = {}
t._build(ret)
return table.concat(ret)
end
metatable._build = function(t, ret)
if t.tagName then
table.insert(ret, '<' .. t.tagName)
for i, attr in ipairs(t.attributes) do
table.insert(ret, ' ' .. attr.name .. '="' .. attr.val .. '"')
end
if #t.styles > 0 then
table.insert(ret, ' style="')
for i, prop in ipairs(t.styles) do
if type(prop) == 'string' then -- added with cssText()
table.insert(ret, prop .. ';')
else -- added with css()
table.insert(ret, prop.name .. ':' .. prop.val .. ';')
end
end
table.insert(ret, '"')
end
if t.selfClosing then
table.insert(ret, ' /')
end
table.insert(ret, '>')
end
for i, node in ipairs(t.nodes) do
if node then
if type(node) == 'table' then
node._build(ret)
else
table.insert(ret, tostring(node))
end
end
end
if t.tagName and not t.unclosed and not t.selfClosing then
table.insert(ret, '</' .. t.tagName .. '>')
end
end
metatable.node = function(t, builder)
if builder then
table.insert(t.nodes, builder)
end
return t
end
metatable.wikitext = function(t, ...)
local vals = {...}
for i = 1, #vals do
if vals[i] then
table.insert(t.nodes, vals[i])
end
end
return t
end
metatable.newline = function(t)
table.insert(t.nodes, '\n')
return t
end
metatable.tag = function(t, tagName, args)
args = args or {}
args.parent = t
local builder = HtmlBuilder.create(tagName, args)
table.insert(t.nodes, builder)
return builder
end
local function getAttr(t, name)
for i, attr in ipairs(t.attributes) do
if attr.name == name then
return attr
end
end
end
metatable.attr = function(t, name, val)
if type(val) == 'string' or type(val) == 'number' then
-- if caller sets the style attribute explicitly, then replace all styles previously added with css() and cssText()
if name == 'style' then
t.styles = {val}
return t
end
local attr = getAttr(t, name)
if attr then
attr.val = val
else
table.insert(t.attributes, {name = name, val = val})
end
end
return t
end
metatable.addClass = function(t, class)
if class then
local attr = getAttr(t, 'class')
if attr then
attr.val = attr.val .. ' ' .. class
else
t.attr('class', class)
end
end
return t
end
metatable.css = function(t, name, val)
if type(val) == 'string' or type(val) == 'number' then
for i, prop in ipairs(t.styles) do
if prop.name == name then
prop.val = val
return t
end
end
table.insert(t.styles, {name = name, val = val})
end
return t
end
metatable.cssText = function(t, css)
if css then
table.insert(t.styles, css)
end
return t
end
metatable.done = function(t)
return t.parent or t
end
metatable.allDone = function(t)
while t.parent do
t = t.parent
end
return t
end
function HtmlBuilder.create(tagName, args)
args = args or {}
local builder = {}
setmetatable(builder, metatable)
builder.nodes = {}
builder.attributes = {}
builder.styles = {}
builder.tagName = tagName
builder.parent = args.parent
builder.unclosed = args.unclosed or false
builder.selfClosing = args.selfClosing or false
return builder
end
return HtmlBuilder
5a14c9609179fbec98c7a0a7814c3793bec5a97c
File:Nokia N900 - Leste pre-alpha.jpg
6
47
113
2018-05-21T21:12:22Z
Wizzup
4
Just an initial picture of the N900 running Maemo Leste pre-alpha
wikitext
text/x-wiki
Just an initial picture of the N900 running Maemo Leste pre-alpha
0eff6249c690ed199e9a2cb381423661091a38e7
Nokia N900
0
48
114
2018-05-21T21:12:44Z
Wizzup
4
Create stub Infobox Device for Nokia N900
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
c426a19a3d086620cf5e966e72a1bfcd59abeff1
117
114
2018-05-21T21:21:20Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
Image: http://maedevu.maemo.org/images/n900/
{| class="wikitable"
! Hardware
! Kernel supported
! Leste supported
|-
| Kernel || - || 4.15
|-
| Charging || Yes || Yes
|-
| Micro USB || Yes || Slave only
|}
98e957e0fcaf65a754f23526f4164328e8076bd9
118
117
2018-05-21T21:25:10Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
Image: http://maedevu.maemo.org/images/n900/
{| class="wikitable"
! Hardware
! Kernel supported
! Leste supported
|-
| Kernel || - || 4.15
|-
| Charging || Yes || Yes
|-
| Micro USB || Yes || Slave only
|}
[[Category:Device]]
5442fb135c5d8a2a7a9eea4b5c93d0a4d4a6ef5a
124
118
2018-05-21T21:34:19Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
Image: http://maedevu.maemo.org/images/n900/
Also see: https://elinux.org/N900
{| class="wikitable"
! Hardware
! Kernel supported
! Leste supported
|-
| Kernel || - || 4.15
|-
| Charging || Yes || Yes
|-
| Micro USB || Yes || Slave only
|}
[[Category:Device]]
505e0cb9bc4f7047a5350ea6fc5ffa2d4e2d86ed
125
124
2018-05-21T21:34:56Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
Image: http://maedevu.maemo.org/images/n900/
Also see: https://elinux.org/N900
{| class="wikitable"
! Hardware
! Kernel supported
! Leste supported
|-
| Kernel || - || 4.15
|-
| Charging || Yes || Yes
|-
| Micro USB || Yes || Slave only
|}
[[Category:Device]]
4e9ff8b9695f18a7d8a62423ec9e73605f55b778
126
125
2018-05-21T21:37:46Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The original Nokia N900.
== Notes ==
Also see: https://elinux.org/N900
== Status ==
{| class="wikitable"
! Hardware
! Kernel supported
! Leste supported
|-
| Kernel || - || 4.15
|-
| Charging || Yes || Yes
|-
| Micro USB || Yes || Slave only
|}
== Installation ==
Images: http://maedevu.maemo.org/images/n900/
dd the image to an sd card. Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
[[Category:Device]]
42623d18c66cd965da5c5b496a5f395d65f9d787
129
126
2018-05-21T21:42:36Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The original Nokia N900.
== Notes ==
Also see: https://elinux.org/N900
== Status ==
{| class="wikitable"
! Hardware
! Kernel supported
! Leste supported
|-
| Kernel || - || 4.15
|-
| Charging || Yes || Yes
|-
| Micro USB || Yes || Slave only
|}
== Installation ==
Images: http://maedevu.maemo.org/images/n900/
dd the image to an sd card. Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
[[Category:Device]]
04f03c52e284342eb0d625775626cd12bd638b0d
File:Motorola Droid 4 - Leste pre-alpha.jpg
6
49
115
2018-05-21T21:14:03Z
Wizzup
4
Just an initial picture of the Motorola Droid 4 running Maemo Leste pre-alpha
wikitext
text/x-wiki
Just an initial picture of the Motorola Droid 4 running Maemo Leste pre-alpha
4a4d53d7bb91afa71f56dbe6e62c21cfa3a8fa83
Motorola Droid 4
0
50
116
2018-05-21T21:14:28Z
Wizzup
4
Created page with "{{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer= |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio=..."
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
a55ac1bd2a7b6fb7ddf104c8e93681e27a4d82ac
121
116
2018-05-21T21:27:05Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
[[Category:Device]]
1d57edcb41224f2f350f33ae9d1a5f567d2ac4ad
131
121
2018-05-21T21:46:41Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
[[Category:Device]]
6bc4dbf465ea905d61f1d7056db1d0e770b0fb69
133
131
2018-05-21T21:48:49Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
...
== Notes ==
Also see: http://elektranox.org/droid4/
== Status ==
{| class="wikitable"
! Hardware
! Kernel supported
! Leste supported
|-
| Kernel || - || 4.15
|-
| Charging || Yes || Yes
|-
| Micro USB || Yes || OTG
|}
== Installation ==
[[Category:Device]]
89c277dd9034cbe3e9915d9b239cbdb9a029e7e8
135
133
2018-05-21T21:51:18Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
...
== Notes ==
Also see: http://elektranox.org/droid4/
== Status ==
{| class="wikitable"
! Hardware
! Kernel supported
! Leste supported
|-
| Kernel || - || 4.15
|-
| Charging || Yes || Yes
|-
| Micro USB || Yes || OTG
|}
== Installation ==
[[Category:Device]]
da3454dc5522a3149b96f8ceb2cb505cb9a3a966
136
135
2018-05-21T21:52:18Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
...
== Notes ==
Also see: http://elektranox.org/droid4/
== Status ==
{| class="wikitable"
! Hardware
! Kernel supported
! Leste supported
|-
| Kernel || - || 4.15
|-
| Charging || Yes || Yes
|-
| Micro USB || Yes || OTG
|}
== Installation ==
[[Category:Device]]
e05cd9752481964b20f73ca60bb3639984cdaf11
Category:Device
14
51
119
2018-05-21T21:26:08Z
Wizzup
4
Created page with "This page contains a list of all the currently supported devices."
wikitext
text/x-wiki
This page contains a list of all the currently supported devices.
d274ed738d572102a3292f2147156d315f38de98
Template:Warning Box
10
52
127
2018-05-21T21:40:18Z
Wizzup
4
Created page with "<center> <span style="background: #f2f2f2; border: 1px solid #d4d4d4; display: inline-block; margin-bottom: 1em; padding: 1em;"> {{{message}}} </span> </center>"
wikitext
text/x-wiki
<center>
<span style="background: #f2f2f2; border: 1px solid #d4d4d4; display: inline-block; margin-bottom: 1em; padding: 1em;">
{{{message}}}
</span>
</center>
797202dcae1bce001b83707e9a3d38e382150b61
Template:Stub
10
53
128
2018-05-21T21:40:39Z
Wizzup
4
Created page with "{{Warning Box|message=This page or section is a [[:Category:Stubs|stub]]. Ask how you can help improve linux-exynos.org by sending an e-mail to the Mailing List|mailing list..."
wikitext
text/x-wiki
{{Warning Box|message=This page or section is a [[:Category:Stubs|stub]]. Ask how you can help improve linux-exynos.org by sending an e-mail to the [[Mailing List|mailing list]], or by visiting [[IRC channel|#linux-exynos]], or if you are able to [{{fullurl:{{FULLPAGENAME}}|action=edit}} contribute to the current page], then you are welcome to do so.}}
<includeonly>[[Category:Stubs]]</includeonly>
85a3f612c7a2c5c1311d3638d2024c596aab1a6f
130
128
2018-05-21T21:45:57Z
Wizzup
4
wikitext
text/x-wiki
{{Warning Box|message=This page or section is a [[:Category:Stubs|stub]]. Ask how you can help improve leste.maemo.org by visiting [[IRC channel|#linux-exynos]], look at the bugtracker (https://github.com/maemo-leste/bugtracker) or if you are able to [{{fullurl:{{FULLPAGENAME}}|action=edit}} contribute to the current page], then you are welcome to do so.}}
<includeonly>[[Category:Stubs]]</includeonly>
7cd186d9842f5f891ae60ad78247d17a747d752a
132
130
2018-05-21T21:47:15Z
Wizzup
4
wikitext
text/x-wiki
{{Warning Box|message=This page or section is a [[:Category:Stubs|stub]]. Ask how you can help improve leste.maemo.org by visiting [[IRC channel|#maemo-leste]], look at the bugtracker (https://github.com/maemo-leste/bugtracker) or if you are able to [{{fullurl:{{FULLPAGENAME}}|action=edit}} contribute to the current page], then you are welcome to do so.}}
<includeonly>[[Category:Stubs]]</includeonly>
866630882eb3662a86afbef46ab54ffb51523a50
IRC channel
0
54
134
2018-05-21T21:49:19Z
Wizzup
4
Created page with "We are on irc.freenode.net ; channel #maemo-leste"
wikitext
text/x-wiki
We are on irc.freenode.net ; channel #maemo-leste
b0198b68c1e6be3dee9f5974e3f1f58bf1c75aaf
Nokia N9
0
55
137
2018-05-21T21:52:52Z
Wizzup
4
Created page with "{{Stub}} {{Infobox Device |image= |manufacturer=Nokia |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |se..."
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Nokia
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
4b0e6d323831a1c9384983650eb5ed236810694c
141
137
2018-05-21T21:56:55Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Nokia
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
[[Category:Device]]
433553518db088b298e8d7f2fd8213337f24d1a6
Nokia N950
0
56
138
2018-05-21T21:53:49Z
Wizzup
4
Created page with "{{Stub}} {{Infobox Device |image= |manufacturer=Nokia |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |se..."
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Nokia
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
4b0e6d323831a1c9384983650eb5ed236810694c
140
138
2018-05-21T21:56:19Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Nokia
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
[[Category:Device]]
236d3ef5d8150e6078433714a26a50e90ece4c81
Raspberry Pi 2
0
57
139
2018-05-21T21:55:22Z
Wizzup
4
Created page with "{{Stub}} {{Infobox Device |image= |manufacturer=Nokia |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |se..."
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Nokia
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
Raspberry Pi 2 or Raspberry Pi 3.
== Notes ==
== Status ==
== Installation ==
Images: http://maedevu.maemo.org/images/raspi2/
dd the image to an sd card. Then boot from the sd card. Have a monitor connected to HDMI.
[[Category:Device]]
1f5d235d754dddcd08e58ebcd8ce14ec0ef85704
143
139
2018-05-22T14:51:12Z
Derby
3
Corrected manufacturer
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Raspberry Pi Foundation
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
Raspberry Pi 2 or Raspberry Pi 3.
== Notes ==
== Status ==
== Installation ==
Images: http://maedevu.maemo.org/images/raspi2/
dd the image to an sd card. Then boot from the sd card. Have a monitor connected to HDMI.
[[Category:Device]]
d9e9b4fcf14a8d63dc2db65cdd4286f2f9b89b8f
144
143
2018-05-22T14:53:33Z
Derby
3
Derby moved page [[Raspberry Pi]] to [[Raspberry Pi 2]]: Build is based on the Pi 2 and is not comptible with the original armv6 Pi.
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Raspberry Pi Foundation
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
Raspberry Pi 2 or Raspberry Pi 3.
== Notes ==
== Status ==
== Installation ==
Images: http://maedevu.maemo.org/images/raspi2/
dd the image to an sd card. Then boot from the sd card. Have a monitor connected to HDMI.
[[Category:Device]]
d9e9b4fcf14a8d63dc2db65cdd4286f2f9b89b8f
User:Wizzup
2
58
142
2018-05-21T22:09:09Z
Wizzup
4
Created page with "I want work on the following things for the wiki: * Device status overviews * Device installation instructions * A category for software packages. Something like Category:Sof..."
wikitext
text/x-wiki
I want work on the following things for the wiki:
* Device status overviews
* Device installation instructions
* A category for software packages. Something like Category:Software for a, say, the Internet Connectivity Daemon. Would be nice to have an overview of the features / software that we ship in a category
* ...
eda21a9924c5bee50b52f266f03f537699a66e75
Raspberry Pi
0
59
145
2018-05-22T14:53:34Z
Derby
3
Derby moved page [[Raspberry Pi]] to [[Raspberry Pi 2]]: Build is based on the Pi 2 and is not comptible with the original armv6 Pi.
wikitext
text/x-wiki
#REDIRECT [[Raspberry Pi 2]]
3661c9712e09ae4c5941f269d7ab359588a3dbab
Raspberry Pi 2
0
57
146
144
2018-05-22T14:55:55Z
Derby
3
More informative description
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Raspberry Pi Foundation
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
32-bit armv7 build for the Raspberry Pi 2, also compatible with the Raspberry Pi 3.
== Notes ==
== Status ==
== Installation ==
Images: http://maedevu.maemo.org/images/raspi2/
dd the image to an sd card. Then boot from the sd card. Have a monitor connected to HDMI.
[[Category:Device]]
40e59eb2fad0db91adfdd1112c40f158c6e93b0b
Virtual Machine
0
60
147
2018-05-23T13:43:39Z
Wizzup
4
Created page with "{{Stub}} {{Infobox Device |image= |manufacturer=Generic |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |..."
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Generic
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
Generic virtual machine target. This is particularly useful when doing development and testing.
== Installation ==
https://maedevu.maemo.org/images/virtual-machines/
There are three different types of images: images for virtualbox, images for QEMU and vagrant images. VMware is known to work when you convert one of the images to the VMware format.
[[Category:Device]]
1d1f849cb4e3af0559a876d13305ed9c9000182d
150
147
2018-05-23T13:51:29Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Generic
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
Generic virtual machine target. This is particularly useful when doing development and testing.
== Installation ==
https://maedevu.maemo.org/images/virtual-machines/
There are three different types of images: images for virtualbox, images for QEMU and vagrant images. VMware is known to work when you convert one of the images to the VMware format.
[[Category:Device]]
fa7f2874c7ceed214e99d60044ba37adf2b4394f
176
150
2018-05-29T13:02:21Z
Juest
10
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Generic
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
Generic virtual machine target. This is particularly useful when doing development and testing.
== Installation ==
https://maedevu.maemo.org/images/virtual-machines/
There are three different types of images: images for virtualbox, images for QEMU and vagrant images. VirtualBox images is the easiest way to convert to VMware which has been reported to perform better and have good hardware acceleration.
Converting the image to raw allows to be used to try out on Laptops, absolutely unsupported!
[[Category:Device]]
a7e3f20cc01fd10a23203ed543fe17ffc739d0ec
177
176
2018-05-29T13:02:56Z
Juest
10
/* Installation */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Generic
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
Generic virtual machine target. This is particularly useful when doing development and testing.
== Installation ==
https://maedevu.maemo.org/images/virtual-machines/
There are three different types of images: images for virtualbox, images for QEMU and vagrant images. VirtualBox image is the easiest way to convert to VMware which has been reported to perform better and have good hardware acceleration.
Converting the image to raw allows to be used to try out on Laptops, absolutely unsupported!
[[Category:Device]]
c5a14020b23fb18f652f24180fb46bc58fbb1fa7
192
177
2018-05-29T16:38:09Z
Juest
10
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Generic
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
Generic virtual machine target. This is particularly useful when doing development and testing.
== Installation ==
https://maedevu.maemo.org/images/virtual-machines/
There are three different types of images: images for virtualbox, images for QEMU and vagrant images. VirtualBox image is the easiest way to convert to VMware which has been reported to perform better and have good hardware acceleration.
Converting the qemu image to raw allows to be used to try out on Laptops, please note it's unsupported!
[[Category:Device]]
ed1c516ef331fc726cb2807ffb1b8e26b808de89
193
192
2018-05-29T18:22:30Z
Derby
3
/* Installation */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Generic
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
Generic virtual machine target. This is particularly useful when doing development and testing.
== Installation ==
https://maedevu.maemo.org/images/virtual-machines/
There are three different types of images: VirtualBox, QEMU and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration.
Converting the qcow2 image to raw allows it to be used on real hardware. Please note it's unsupported!
[[Category:Device]]
b2b1e30a6fed2ea74edaa3b15661055f03a8936c
Development
0
61
148
2018-05-23T13:50:24Z
Wizzup
4
Created page with "Maemo Leste development is split up in a few different places. == Communication and organising == * Our https://maemo-leste.github.com website is where we post (news) update..."
wikitext
text/x-wiki
Maemo Leste development is split up in a few different places.
== Communication and organising ==
* Our https://maemo-leste.github.com website is where we post (news) updates, as well as on this maemo.org thread: talk.maemo.org/showthread.php?t=100192&page=1
* There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker
* The day-to-day development and user chatter mostly takes place in the [[IRC channel]] (We might eventually want to switch some discussion to a mailing list, but that has not happened so far. Please raise your voice if this is important to you.)
* This wiki: for documenting the status of various long-running projects, status per device, etc.
== Technical ==
=== Jenkins ===
To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/
=== Developing on a device ===
Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle users, this might sound weird, but there is essentially no need for a 'scratchbox' type VM)
The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]].
=== TODO ===
* Discuss where people look to pick up issues (clear answer is the bugtracker, but still)
* How people can make changes and how to send them in
12172f4177d61476803096f290b064a7e770d081
149
148
2018-05-23T13:50:50Z
Wizzup
4
wikitext
text/x-wiki
Maemo Leste development is split up in a few different places.
== Communication and organising ==
* Our https://maemo-leste.github.com website is where we post (news) updates, as well as on this maemo.org thread: talk.maemo.org/showthread.php?t=100192&page=1
* There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker
* The day-to-day development and user chatter mostly takes place in the [[IRC channel]] (We might eventually want to switch some discussion to a mailing list, but that has not happened so far. Please raise your voice if this is important to you.)
* This wiki: for documenting the status of various long-running projects, status per device, etc.
== Technical ==
=== Jenkins ===
To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/
=== Developing on a device ===
Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle users, this might sound weird, but there is essentially no need for a 'scratchbox' type VM)
The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]].
=== TODO ===
* Discuss where people look to pick up issues (clear answer is the bugtracker, but still)
* How people can make changes and how to send them in
3f447862dbcd375e3542b19d1be783b944792e3c
159
149
2018-05-24T18:13:27Z
Wizzup
4
wikitext
text/x-wiki
Maemo Leste development is split up in a few different places.
== Communication and organising ==
* Our https://maemo-leste.github.io website is where we post (news) updates, as well as on this maemo.org thread: talk.maemo.org/showthread.php?t=100192&page=1
* There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker
* The day-to-day development and user chatter mostly takes place in the [[IRC channel]] (We might eventually want to switch some discussion to a mailing list, but that has not happened so far. Please raise your voice if this is important to you.)
* This wiki: for documenting the status of various long-running projects, status per device, etc.
== Technical ==
=== Jenkins ===
To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/
=== Developing on a device ===
Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle users, this might sound weird, but there is essentially no need for a 'scratchbox' type VM)
All our repositories can be found here: https://github.com/maemo-leste
The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]].
=== TODO ===
* Discuss where people look to pick up issues (clear answer is the bugtracker, but still)
* How people can make changes and how to send them in
061e3bffc4b8d28e8c46dca521791e7742f18f78
160
159
2018-05-24T18:13:51Z
Wizzup
4
wikitext
text/x-wiki
Maemo Leste development is split up in a few different places.
== Communication and organising ==
* Our https://maemo-leste.github.io website is where we post (news) updates, as well as on this maemo.org thread: talk.maemo.org/showthread.php?t=100192&page=1
* There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker
* The day-to-day development and user chatter mostly takes place in the [[IRC channel]] (We might eventually want to switch some discussion to a mailing list, but that has not happened so far. Please raise your voice if this is important to you.)
* This wiki: for documenting the status of various long-running projects, status per device, etc.
== Technical ==
All our git repositories can be found here: https://github.com/maemo-leste
=== Jenkins ===
To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/
=== Developing on a device ===
Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle users, this might sound weird, but there is essentially no need for a 'scratchbox' type VM)
The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]].
=== TODO ===
* Discuss where people look to pick up issues (clear answer is the bugtracker, but still)
* How people can make changes and how to send them in
0df6ece8fa3d11a50856be05f0ab296208a20a52
170
160
2018-05-29T02:04:10Z
Juest
10
/* Communication and organising */
wikitext
text/x-wiki
Maemo Leste development is split up in a few different places.
== Communication and organising ==
* Our https://maemo-leste.github.io website is where we post (news) updates, as well as on this TMO thread: https://talk.maemo.org/showthread.php?t=100192
* There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker
* The day-to-day development and user chatter mostly takes place in the [[IRC channel]] (We might eventually want to switch some discussion to a mailing list, but that has not happened so far. Please raise your voice if this is important to you.)
* This wiki: for documenting the status of various long-running projects, status per device, etc.
== Technical ==
All our git repositories can be found here: https://github.com/maemo-leste
=== Jenkins ===
To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/
=== Developing on a device ===
Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle users, this might sound weird, but there is essentially no need for a 'scratchbox' type VM)
The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]].
=== TODO ===
* Discuss where people look to pick up issues (clear answer is the bugtracker, but still)
* How people can make changes and how to send them in
d08ca85ad7d251aafe556b825633b34fe9d565c2
194
170
2018-05-29T18:24:27Z
Derby
3
/* Communication and organising */ Many readers won't know what TMO is
wikitext
text/x-wiki
Maemo Leste development is split up in a few different places.
== Communication and organising ==
* Our https://maemo-leste.github.io website is where we post (news) updates, as well as on this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192
* There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker
* The day-to-day development and user chatter mostly takes place in the [[IRC channel]] (We might eventually want to switch some discussion to a mailing list, but that has not happened so far. Please raise your voice if this is important to you.)
* This wiki: for documenting the status of various long-running projects, status per device, etc.
== Technical ==
All our git repositories can be found here: https://github.com/maemo-leste
=== Jenkins ===
To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/
=== Developing on a device ===
Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle users, this might sound weird, but there is essentially no need for a 'scratchbox' type VM)
The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]].
=== TODO ===
* Discuss where people look to pick up issues (clear answer is the bugtracker, but still)
* How people can make changes and how to send them in
f3c781c16d500eaa202a0fb4c1a0b9bc7190e6b9
Leste FAQ
0
62
151
2018-05-23T13:56:10Z
Wizzup
4
Created page with "{{Stub}} === What is Maemo Leste? === === Why do we need another mobile operating system? === === Why won't you join the collaborative Halium project? === === What's w..."
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
=== Why do we need another mobile operating system? ===
=== Why won't you join the collaborative Halium project? ===
=== What's wrong with Android kernels? ===
=== Why is it important to run mainline Linux? ===
=== Why is Maemo Leste based on Devuan rather than Debian? ===
=== Will Maemo Leste work on ...(device)? ===
03b35c07bbf5b1cfbd071747d252953b44b7d9d5
152
151
2018-05-23T13:56:55Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
=== Why do we need another mobile operating system? ===
=== Why won't you join the collaborative Halium project? ===
=== What's wrong with Android kernels? ===
=== Why is it important to run mainline Linux? ===
=== Why is Maemo Leste based on Devuan rather than Debian? ===
=== Will Maemo Leste work on ...(device)? ===
9c62bc5669250e965ceb58c27cefdcf8a137611c
161
152
2018-05-26T09:31:06Z
Wizzup
4
Wizzup moved page [[FAQ]] to [[Leste FAQ]] without leaving a redirect: "FAQ" seems to be some special MediaWiki thing
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
=== Why do we need another mobile operating system? ===
=== Why won't you join the collaborative Halium project? ===
=== What's wrong with Android kernels? ===
=== Why is it important to run mainline Linux? ===
=== Why is Maemo Leste based on Devuan rather than Debian? ===
=== Will Maemo Leste work on ...(device)? ===
9c62bc5669250e965ceb58c27cefdcf8a137611c
162
161
2018-05-26T09:31:29Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
=== Why not add new packages to Fremantle instead? ===
=== Why do we need another mobile operating system? ===
=== Why won't you join the collaborative Halium project? ===
=== What's wrong with Android kernels? ===
=== Why is it important to run mainline Linux? ===
=== Why is Maemo Leste based on Devuan rather than Debian? ===
=== Will Maemo Leste work on ...(device)? ===
0046c4bbb201a16bb713d3e18f5041005d36ec3b
163
162
2018-05-26T23:18:18Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs.
Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone.
The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs.
Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users.
=== Why not add new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are closed source and also outdated. Many are in dire need of a replacement, either for interopability sake (browser, wifi stack) or need a lot of updates to be even reasonably secure: ancient browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth.
We went for a distribution based on Debian because would provide a clean base; and Fremantle already used a large part of the Debian ecosystem.
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticable in the project).
Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts.
But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why is it important to run mainline Linux? ===
=== Why won't you join the collaborative Halium project? ===
=== What's wrong with Android (vendor) kernels? ===
=== Will Maemo Leste work on ...(device)? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
1b6b06b49d353ff823aeda956bd35813152e7f20
165
163
2018-05-26T23:26:46Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs.
Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone.
The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs.
Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users.
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are closed source and also outdated. Many are in dire need of a replacement, either for interopability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth.
We went for a distribution based on Debian because would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life if developers (and even users) easier.
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticable in the project).
Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts.
But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why is it important to run mainline Linux? ===
=== Why won't you join the collaborative Halium project? ===
=== What's wrong with Android (vendor) kernels? ===
=== Will Maemo Leste work on ...(device)? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
06282a234519297a5aa51aa595326f7fb2f7037f
171
165
2018-05-29T12:48:39Z
Juest
10
/* Why not add/extend new packages to Fremantle instead? */ - added link to related wiki page
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs.
Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone.
The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs.
Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users.
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are closed source and also outdated.[https://wiki.maemo.org/Fremantle_closed_packages]
Many are in dire need of a replacement, either for interopability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth.
We went for a distribution based on Debian because would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life if developers (and even users) easier.
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticable in the project).
Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts.
But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why is it important to run mainline Linux? ===
=== Why won't you join the collaborative Halium project? ===
=== What's wrong with Android (vendor) kernels? ===
=== Will Maemo Leste work on ...(device)? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
18d30c9dc8943aa95f3a956f08eb9ae6e5a5f595
172
171
2018-05-29T12:53:56Z
Derby
3
Reorganise and add questions
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs.
Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone.
The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs.
Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are closed source and also outdated.[https://wiki.maemo.org/Fremantle_closed_packages]
Many are in dire need of a replacement, either for interopability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth.
We went for a distribution based on Debian because would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life if developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
=== What is mainline Linux? ===
=== What's wrong with Android (vendor) Linux kernels? ===
=== Why is it important to run mainline Linux? ===
=== How does Maemo Leste compare with postmarketOS? ===
=== How does Maemo Leste compare with PureOS? ===
=== How about other alternatives (Sailfish, Nemo, UBPorts, LuneOS, Tizen, etc)? ===
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticable in the project).
Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts.
But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
=== Does Maemo Leste have a process supervisor? ===
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
93f5afc4cdfec63fadd7f51497b107211ae712fd
173
172
2018-05-29T12:58:53Z
Derby
3
/* Does Maemo Leste use Halium? */
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs.
Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone.
The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs.
Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are closed source and also outdated.[https://wiki.maemo.org/Fremantle_closed_packages]
Many are in dire need of a replacement, either for interopability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth.
We went for a distribution based on Debian because would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life if developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Mobile GNU/Linux distributions which use Android kernels will always be playing catch-up. We will never see a new device developed from the ground up for those distributions as they rely on Android running on them first. Those distributions are at the mercy of the device manufacturers to provide kernel updates. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from Halium and other libhybris-based Linux distributions is evident.
Halium's choice of systemd is also contentious. Whilst most mainstream Linux distributions have adopted systemd, it has left a significant number users discontented and unsatisfied, proving not to be the ''be all and end all'' solution it had hoped to be.
=== What is mainline Linux? ===
=== What's wrong with Android (vendor) Linux kernels? ===
=== Why is it important to run mainline Linux? ===
=== How does Maemo Leste compare with postmarketOS? ===
=== How does Maemo Leste compare with PureOS? ===
=== How about other alternatives (Sailfish, Nemo, UBPorts, LuneOS, Tizen, etc)? ===
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticable in the project).
Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts.
But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
=== Does Maemo Leste have a process supervisor? ===
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
c0111637d24e91e42619d2c1194c2224ab4af1cd
174
173
2018-05-29T12:59:40Z
Derby
3
/* What is mainline Linux? */
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs.
Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone.
The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs.
Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are closed source and also outdated.[https://wiki.maemo.org/Fremantle_closed_packages]
Many are in dire need of a replacement, either for interopability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth.
We went for a distribution based on Debian because would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life if developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Mobile GNU/Linux distributions which use Android kernels will always be playing catch-up. We will never see a new device developed from the ground up for those distributions as they rely on Android running on them first. Those distributions are at the mercy of the device manufacturers to provide kernel updates. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from Halium and other libhybris-based Linux distributions is evident.
Halium's choice of systemd is also contentious. Whilst most mainstream Linux distributions have adopted systemd, it has left a significant number users discontented and unsatisfied, proving not to be the ''be all and end all'' solution it had hoped to be.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree. It has an organic development model which provides new releases approximately every six weeks and also less frequent long term supported stable releases.
=== What's wrong with Android (vendor) Linux kernels? ===
=== Why is it important to run mainline Linux? ===
=== How does Maemo Leste compare with postmarketOS? ===
=== How does Maemo Leste compare with PureOS? ===
=== How about other alternatives (Sailfish, Nemo, UBPorts, LuneOS, Tizen, etc)? ===
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticable in the project).
Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts.
But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
=== Does Maemo Leste have a process supervisor? ===
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
201139611bcd02e5d10ad856c3caea45a158031c
175
174
2018-05-29T13:01:19Z
Derby
3
/* What's wrong with Android (vendor) Linux kernels? */
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs.
Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone.
The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs.
Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are closed source and also outdated.[https://wiki.maemo.org/Fremantle_closed_packages]
Many are in dire need of a replacement, either for interopability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth.
We went for a distribution based on Debian because would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life if developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Mobile GNU/Linux distributions which use Android kernels will always be playing catch-up. We will never see a new device developed from the ground up for those distributions as they rely on Android running on them first. Those distributions are at the mercy of the device manufacturers to provide kernel updates. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from Halium and other libhybris-based Linux distributions is evident.
Halium's choice of systemd is also contentious. Whilst most mainstream Linux distributions have adopted systemd, it has left a significant number users discontented and unsatisfied, proving not to be the ''be all and end all'' solution it had hoped to be.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree. It has an organic development model which provides new releases approximately every six weeks and also less frequent long term supported stable releases.
=== What's wrong with Android (vendor) Linux kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. It makes little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices run on mainline Linux, most of those with very limited hardware support. Linux kernels are forked once by AOSP, and then forked again by the device manufacturer which results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'' forcing consumers to replace their devices every year or two and has a big impact on our planet. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
=== How does Maemo Leste compare with postmarketOS? ===
=== How does Maemo Leste compare with PureOS? ===
=== How about other alternatives (Sailfish, Nemo, UBPorts, LuneOS, Tizen, etc)? ===
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticable in the project).
Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts.
But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
=== Does Maemo Leste have a process supervisor? ===
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
2ba23776a5ee75dfdaa4512b1eae8c363c496fc9
178
175
2018-05-29T13:03:31Z
Derby
3
/* Why is it important to run mainline Linux? */
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs.
Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone.
The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs.
Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are closed source and also outdated.[https://wiki.maemo.org/Fremantle_closed_packages]
Many are in dire need of a replacement, either for interopability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth.
We went for a distribution based on Debian because would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life if developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Mobile GNU/Linux distributions which use Android kernels will always be playing catch-up. We will never see a new device developed from the ground up for those distributions as they rely on Android running on them first. Those distributions are at the mercy of the device manufacturers to provide kernel updates. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from Halium and other libhybris-based Linux distributions is evident.
Halium's choice of systemd is also contentious. Whilst most mainstream Linux distributions have adopted systemd, it has left a significant number users discontented and unsatisfied, proving not to be the ''be all and end all'' solution it had hoped to be.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree. It has an organic development model which provides new releases approximately every six weeks and also less frequent long term supported stable releases.
=== What's wrong with Android (vendor) Linux kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. It makes little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices run on mainline Linux, most of those with very limited hardware support. Linux kernels are forked once by AOSP, and then forked again by the device manufacturer which results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'' forcing consumers to replace their devices every year or two and has a big impact on our planet. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC.
=== How does Maemo Leste compare with postmarketOS? ===
=== How does Maemo Leste compare with PureOS? ===
=== How about other alternatives (Sailfish, Nemo, UBPorts, LuneOS, Tizen, etc)? ===
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticable in the project).
Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts.
But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
=== Does Maemo Leste have a process supervisor? ===
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
8a5b40054a20dccb8723c8a227a6e101e53d905b
179
178
2018-05-29T13:04:04Z
Derby
3
/* How does Maemo Leste compare with postmarketOS? */
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs.
Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone.
The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs.
Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are closed source and also outdated.[https://wiki.maemo.org/Fremantle_closed_packages]
Many are in dire need of a replacement, either for interopability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth.
We went for a distribution based on Debian because would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life if developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Mobile GNU/Linux distributions which use Android kernels will always be playing catch-up. We will never see a new device developed from the ground up for those distributions as they rely on Android running on them first. Those distributions are at the mercy of the device manufacturers to provide kernel updates. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from Halium and other libhybris-based Linux distributions is evident.
Halium's choice of systemd is also contentious. Whilst most mainstream Linux distributions have adopted systemd, it has left a significant number users discontented and unsatisfied, proving not to be the ''be all and end all'' solution it had hoped to be.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree. It has an organic development model which provides new releases approximately every six weeks and also less frequent long term supported stable releases.
=== What's wrong with Android (vendor) Linux kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. It makes little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices run on mainline Linux, most of those with very limited hardware support. Linux kernels are forked once by AOSP, and then forked again by the device manufacturer which results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'' forcing consumers to replace their devices every year or two and has a big impact on our planet. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC.
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
=== How about other alternatives (Sailfish, Nemo, UBPorts, LuneOS, Tizen, etc)? ===
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticable in the project).
Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts.
But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
=== Does Maemo Leste have a process supervisor? ===
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
618961dd4ef459e4c78196bb2511f99d136655d2
180
179
2018-05-29T13:05:03Z
Derby
3
/* How does Maemo Leste compare with PureOS? */
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs.
Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone.
The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs.
Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are closed source and also outdated.[https://wiki.maemo.org/Fremantle_closed_packages]
Many are in dire need of a replacement, either for interopability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth.
We went for a distribution based on Debian because would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life if developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Mobile GNU/Linux distributions which use Android kernels will always be playing catch-up. We will never see a new device developed from the ground up for those distributions as they rely on Android running on them first. Those distributions are at the mercy of the device manufacturers to provide kernel updates. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from Halium and other libhybris-based Linux distributions is evident.
Halium's choice of systemd is also contentious. Whilst most mainstream Linux distributions have adopted systemd, it has left a significant number users discontented and unsatisfied, proving not to be the ''be all and end all'' solution it had hoped to be.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree. It has an organic development model which provides new releases approximately every six weeks and also less frequent long term supported stable releases.
=== What's wrong with Android (vendor) Linux kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. It makes little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices run on mainline Linux, most of those with very limited hardware support. Linux kernels are forked once by AOSP, and then forked again by the device manufacturer which results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'' forcing consumers to replace their devices every year or two and has a big impact on our planet. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC.
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the anticipated Librem phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for Librem phone.
=== How about other alternatives (Sailfish, Nemo, UBPorts, LuneOS, Tizen, etc)? ===
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticable in the project).
Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts.
But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
=== Does Maemo Leste have a process supervisor? ===
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
a86fffe6d80e0b7ad60afd2cbb05534da73d55bb
181
180
2018-05-29T13:07:38Z
Derby
3
/* Why is Maemo Leste based on Devuan rather than Debian? */
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs.
Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone.
The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs.
Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are closed source and also outdated.[https://wiki.maemo.org/Fremantle_closed_packages]
Many are in dire need of a replacement, either for interopability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth.
We went for a distribution based on Debian because would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life if developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Mobile GNU/Linux distributions which use Android kernels will always be playing catch-up. We will never see a new device developed from the ground up for those distributions as they rely on Android running on them first. Those distributions are at the mercy of the device manufacturers to provide kernel updates. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from Halium and other libhybris-based Linux distributions is evident.
Halium's choice of systemd is also contentious. Whilst most mainstream Linux distributions have adopted systemd, it has left a significant number users discontented and unsatisfied, proving not to be the ''be all and end all'' solution it had hoped to be.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree. It has an organic development model which provides new releases approximately every six weeks and also less frequent long term supported stable releases.
=== What's wrong with Android (vendor) Linux kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. It makes little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices run on mainline Linux, most of those with very limited hardware support. Linux kernels are forked once by AOSP, and then forked again by the device manufacturer which results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'' forcing consumers to replace their devices every year or two and has a big impact on our planet. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC.
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the anticipated Librem phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for Librem phone.
=== How about other alternatives (Sailfish, Nemo, UBPorts, LuneOS, Tizen, etc)? ===
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticable in the project).
Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts.
But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
=== Does Maemo Leste have a process supervisor? ===
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
54ade2bc1d53fcf7692199e7e2dfeb1a1ddf86ef
182
181
2018-05-29T13:08:50Z
Derby
3
/* Are there any technical merits in using System V init with OpenRC instead of systemd? */
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs.
Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone.
The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs.
Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are closed source and also outdated.[https://wiki.maemo.org/Fremantle_closed_packages]
Many are in dire need of a replacement, either for interopability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth.
We went for a distribution based on Debian because would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life if developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Mobile GNU/Linux distributions which use Android kernels will always be playing catch-up. We will never see a new device developed from the ground up for those distributions as they rely on Android running on them first. Those distributions are at the mercy of the device manufacturers to provide kernel updates. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from Halium and other libhybris-based Linux distributions is evident.
Halium's choice of systemd is also contentious. Whilst most mainstream Linux distributions have adopted systemd, it has left a significant number users discontented and unsatisfied, proving not to be the ''be all and end all'' solution it had hoped to be.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree. It has an organic development model which provides new releases approximately every six weeks and also less frequent long term supported stable releases.
=== What's wrong with Android (vendor) Linux kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. It makes little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices run on mainline Linux, most of those with very limited hardware support. Linux kernels are forked once by AOSP, and then forked again by the device manufacturer which results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'' forcing consumers to replace their devices every year or two and has a big impact on our planet. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC.
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the anticipated Librem phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for Librem phone.
=== How about other alternatives (Sailfish, Nemo, UBPorts, LuneOS, Tizen, etc)? ===
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticable in the project).
Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts.
But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components provides better reliability, stability and security.
=== Does Maemo Leste have a process supervisor? ===
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
3b0c372d0c8ad2c47c37e292751efb635550302f
183
182
2018-05-29T13:09:33Z
Derby
3
/* Does Maemo Leste have a process supervisor? */
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs.
Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone.
The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs.
Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are closed source and also outdated.[https://wiki.maemo.org/Fremantle_closed_packages]
Many are in dire need of a replacement, either for interopability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth.
We went for a distribution based on Debian because would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life if developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Mobile GNU/Linux distributions which use Android kernels will always be playing catch-up. We will never see a new device developed from the ground up for those distributions as they rely on Android running on them first. Those distributions are at the mercy of the device manufacturers to provide kernel updates. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from Halium and other libhybris-based Linux distributions is evident.
Halium's choice of systemd is also contentious. Whilst most mainstream Linux distributions have adopted systemd, it has left a significant number users discontented and unsatisfied, proving not to be the ''be all and end all'' solution it had hoped to be.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree. It has an organic development model which provides new releases approximately every six weeks and also less frequent long term supported stable releases.
=== What's wrong with Android (vendor) Linux kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. It makes little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices run on mainline Linux, most of those with very limited hardware support. Linux kernels are forked once by AOSP, and then forked again by the device manufacturer which results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'' forcing consumers to replace their devices every year or two and has a big impact on our planet. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC.
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the anticipated Librem phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for Librem phone.
=== How about other alternatives (Sailfish, Nemo, UBPorts, LuneOS, Tizen, etc)? ===
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticable in the project).
Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts.
But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components provides better reliability, stability and security.
=== Does Maemo Leste have a process supervisor? ===
Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
6e08711c39d1942e89dd5c97fe0f4bcd42182b96
184
183
2018-05-29T13:11:12Z
Derby
3
/* What devices does Maemo Leste work on? */
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs.
Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone.
The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs.
Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are closed source and also outdated.[https://wiki.maemo.org/Fremantle_closed_packages]
Many are in dire need of a replacement, either for interopability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth.
We went for a distribution based on Debian because would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life if developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Mobile GNU/Linux distributions which use Android kernels will always be playing catch-up. We will never see a new device developed from the ground up for those distributions as they rely on Android running on them first. Those distributions are at the mercy of the device manufacturers to provide kernel updates. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from Halium and other libhybris-based Linux distributions is evident.
Halium's choice of systemd is also contentious. Whilst most mainstream Linux distributions have adopted systemd, it has left a significant number users discontented and unsatisfied, proving not to be the ''be all and end all'' solution it had hoped to be.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree. It has an organic development model which provides new releases approximately every six weeks and also less frequent long term supported stable releases.
=== What's wrong with Android (vendor) Linux kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. It makes little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices run on mainline Linux, most of those with very limited hardware support. Linux kernels are forked once by AOSP, and then forked again by the device manufacturer which results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'' forcing consumers to replace their devices every year or two and has a big impact on our planet. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC.
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the anticipated Librem phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for Librem phone.
=== How about other alternatives (Sailfish, Nemo, UBPorts, LuneOS, Tizen, etc)? ===
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticable in the project).
Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts.
But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components provides better reliability, stability and security.
=== Does Maemo Leste have a process supervisor? ===
Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
8b49888ece345e584bcd8ff038719610ccfef3c5
185
184
2018-05-29T13:12:19Z
Derby
3
/* Can I run an alternative desktop environment or window manager instead of Hildon? */
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs.
Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone.
The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs.
Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are closed source and also outdated.[https://wiki.maemo.org/Fremantle_closed_packages]
Many are in dire need of a replacement, either for interopability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth.
We went for a distribution based on Debian because would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life if developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Mobile GNU/Linux distributions which use Android kernels will always be playing catch-up. We will never see a new device developed from the ground up for those distributions as they rely on Android running on them first. Those distributions are at the mercy of the device manufacturers to provide kernel updates. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from Halium and other libhybris-based Linux distributions is evident.
Halium's choice of systemd is also contentious. Whilst most mainstream Linux distributions have adopted systemd, it has left a significant number users discontented and unsatisfied, proving not to be the ''be all and end all'' solution it had hoped to be.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree. It has an organic development model which provides new releases approximately every six weeks and also less frequent long term supported stable releases.
=== What's wrong with Android (vendor) Linux kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. It makes little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices run on mainline Linux, most of those with very limited hardware support. Linux kernels are forked once by AOSP, and then forked again by the device manufacturer which results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'' forcing consumers to replace their devices every year or two and has a big impact on our planet. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC.
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the anticipated Librem phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for Librem phone.
=== How about other alternatives (Sailfish, Nemo, UBPorts, LuneOS, Tizen, etc)? ===
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticable in the project).
Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts.
But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components provides better reliability, stability and security.
=== Does Maemo Leste have a process supervisor? ===
Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
5911a4d277cfa0da0bb68f938d5b16ff7fb285ba
186
185
2018-05-29T13:14:30Z
Derby
3
/* How about other alternatives (Sailfish, Nemo, UBPorts, LuneOS, Tizen, etc)? */ WIP - need to restructure this into a paragraph
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs.
Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone.
The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs.
Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are closed source and also outdated.[https://wiki.maemo.org/Fremantle_closed_packages]
Many are in dire need of a replacement, either for interopability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth.
We went for a distribution based on Debian because would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life if developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Mobile GNU/Linux distributions which use Android kernels will always be playing catch-up. We will never see a new device developed from the ground up for those distributions as they rely on Android running on them first. Those distributions are at the mercy of the device manufacturers to provide kernel updates. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from Halium and other libhybris-based Linux distributions is evident.
Halium's choice of systemd is also contentious. Whilst most mainstream Linux distributions have adopted systemd, it has left a significant number users discontented and unsatisfied, proving not to be the ''be all and end all'' solution it had hoped to be.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree. It has an organic development model which provides new releases approximately every six weeks and also less frequent long term supported stable releases.
=== What's wrong with Android (vendor) Linux kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. It makes little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices run on mainline Linux, most of those with very limited hardware support. Linux kernels are forked once by AOSP, and then forked again by the device manufacturer which results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'' forcing consumers to replace their devices every year or two and has a big impact on our planet. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC.
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the anticipated Librem phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for Librem phone.
=== How about other alternatives (Sailfish, Nemo, UBPorts, LuneOS, Tizen, etc)? ===
- Android kernels (Sailfish, Nemo, UBPorts, LuneOS)
- Unmaintained/vulnerable GPL v2 packages for the purpose of Tivoisation (Sailfish/Nemo)
- Proprietary application framework (Silica components)
- Proprietary GUI (Sailfish)
- Built for profit which means they may not have the best interests of the end-user at heart, especially those which purposely include closed components where it could have been avoided (Sailfish/Tizen)
- Mir (UBPorts)
- Prioritise device compatibility and ports over software freedoms
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticable in the project).
Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts.
But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components provides better reliability, stability and security.
=== Does Maemo Leste have a process supervisor? ===
Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
edf787a15859c009e37c6c68a0dda5c4126c1017
187
186
2018-05-29T13:15:46Z
Derby
3
/* How about other alternatives (Sailfish, Nemo, UBPorts, LuneOS, Tizen, etc)? */
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs.
Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone.
The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs.
Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are closed source and also outdated.[https://wiki.maemo.org/Fremantle_closed_packages]
Many are in dire need of a replacement, either for interopability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth.
We went for a distribution based on Debian because would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life if developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Mobile GNU/Linux distributions which use Android kernels will always be playing catch-up. We will never see a new device developed from the ground up for those distributions as they rely on Android running on them first. Those distributions are at the mercy of the device manufacturers to provide kernel updates. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from Halium and other libhybris-based Linux distributions is evident.
Halium's choice of systemd is also contentious. Whilst most mainstream Linux distributions have adopted systemd, it has left a significant number users discontented and unsatisfied, proving not to be the ''be all and end all'' solution it had hoped to be.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree. It has an organic development model which provides new releases approximately every six weeks and also less frequent long term supported stable releases.
=== What's wrong with Android (vendor) Linux kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. It makes little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices run on mainline Linux, most of those with very limited hardware support. Linux kernels are forked once by AOSP, and then forked again by the device manufacturer which results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'' forcing consumers to replace their devices every year or two and has a big impact on our planet. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC.
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the anticipated Librem phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for Librem phone.
=== How about other alternatives (Sailfish, Nemo, UBPorts, LuneOS, Tizen, etc)? ===
* Android kernels (Sailfish, Nemo, UBPorts, LuneOS)
* Unmaintained/vulnerable GPL v2 packages for the purpose of Tivoisation (Sailfish/Nemo)
* Proprietary application framework (Silica components)
* Proprietary GUI (Sailfish)
* Built for profit which means they may not have the best interests of the end-user at heart, especially those which purposely include closed components where it could have been avoided (Sailfish/Tizen)
* Mir (UBPorts)
* Prioritise device compatibility and ports over software freedoms
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticable in the project).
Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts.
But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components provides better reliability, stability and security.
=== Does Maemo Leste have a process supervisor? ===
Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
d50a7925208d5d08f328b59ad12ee0b7aaa90222
188
187
2018-05-29T13:34:27Z
Derby
3
/* Are there any technical merits in using System V init with OpenRC instead of systemd? */
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs.
Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone.
The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs.
Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are closed source and also outdated.[https://wiki.maemo.org/Fremantle_closed_packages]
Many are in dire need of a replacement, either for interopability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth.
We went for a distribution based on Debian because would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life if developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Mobile GNU/Linux distributions which use Android kernels will always be playing catch-up. We will never see a new device developed from the ground up for those distributions as they rely on Android running on them first. Those distributions are at the mercy of the device manufacturers to provide kernel updates. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from Halium and other libhybris-based Linux distributions is evident.
Halium's choice of systemd is also contentious. Whilst most mainstream Linux distributions have adopted systemd, it has left a significant number users discontented and unsatisfied, proving not to be the ''be all and end all'' solution it had hoped to be.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree. It has an organic development model which provides new releases approximately every six weeks and also less frequent long term supported stable releases.
=== What's wrong with Android (vendor) Linux kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. It makes little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices run on mainline Linux, most of those with very limited hardware support. Linux kernels are forked once by AOSP, and then forked again by the device manufacturer which results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'' forcing consumers to replace their devices every year or two and has a big impact on our planet. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC.
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the anticipated Librem phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for Librem phone.
=== How about other alternatives (Sailfish, Nemo, UBPorts, LuneOS, Tizen, etc)? ===
* Android kernels (Sailfish, Nemo, UBPorts, LuneOS)
* Unmaintained/vulnerable GPL v2 packages for the purpose of Tivoisation (Sailfish/Nemo)
* Proprietary application framework (Silica components)
* Proprietary GUI (Sailfish)
* Built for profit which means they may not have the best interests of the end-user at heart, especially those which purposely include closed components where it could have been avoided (Sailfish/Tizen)
* Mir (UBPorts)
* Prioritise device compatibility and ports over software freedoms
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticable in the project).
Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts.
But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== Does Maemo Leste have a process supervisor? ===
Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
4400f7b5fa4951805246d321d2e1b43e674085a9
189
188
2018-05-29T16:34:09Z
Juest
10
/* Are there any technical merits in using System V init with OpenRC instead of systemd? */
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs.
Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone.
The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs.
Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are closed source and also outdated.[https://wiki.maemo.org/Fremantle_closed_packages]
Many are in dire need of a replacement, either for interopability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth.
We went for a distribution based on Debian because would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life if developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Mobile GNU/Linux distributions which use Android kernels will always be playing catch-up. We will never see a new device developed from the ground up for those distributions as they rely on Android running on them first. Those distributions are at the mercy of the device manufacturers to provide kernel updates. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from Halium and other libhybris-based Linux distributions is evident.
Halium's choice of systemd is also contentious. Whilst most mainstream Linux distributions have adopted systemd, it has left a significant number users discontented and unsatisfied, proving not to be the ''be all and end all'' solution it had hoped to be.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree. It has an organic development model which provides new releases approximately every six weeks and also less frequent long term supported stable releases.
=== What's wrong with Android (vendor) Linux kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. It makes little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices run on mainline Linux, most of those with very limited hardware support. Linux kernels are forked once by AOSP, and then forked again by the device manufacturer which results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'' forcing consumers to replace their devices every year or two and has a big impact on our planet. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC.
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the anticipated Librem phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for Librem phone.
=== How about other alternatives (Sailfish, Nemo, UBPorts, LuneOS, Tizen, etc)? ===
* Android kernels (Sailfish, Nemo, UBPorts, LuneOS)
* Unmaintained/vulnerable GPL v2 packages for the purpose of Tivoisation (Sailfish/Nemo)
* Proprietary application framework (Silica components)
* Proprietary GUI (Sailfish)
* Built for profit which means they may not have the best interests of the end-user at heart, especially those which purposely include closed components where it could have been avoided (Sailfish/Tizen)
* Mir (UBPorts)
* Prioritise device compatibility and ports over software freedoms
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticable in the project).
Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts.
But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate, [http://without-systemd.org there are already plenty of places on the internet where you can read up on the pros and cons of systemd]. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== Does Maemo Leste have a process supervisor? ===
Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
c05be3dcedf48310890c0efcb5e88b335f071bcd
190
189
2018-05-29T16:35:08Z
Juest
10
/* Why not add/extend new packages to Fremantle instead? */
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs.
Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone.
The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs.
Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interopability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth.
We went for a distribution based on Debian because would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life if developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Mobile GNU/Linux distributions which use Android kernels will always be playing catch-up. We will never see a new device developed from the ground up for those distributions as they rely on Android running on them first. Those distributions are at the mercy of the device manufacturers to provide kernel updates. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from Halium and other libhybris-based Linux distributions is evident.
Halium's choice of systemd is also contentious. Whilst most mainstream Linux distributions have adopted systemd, it has left a significant number users discontented and unsatisfied, proving not to be the ''be all and end all'' solution it had hoped to be.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree. It has an organic development model which provides new releases approximately every six weeks and also less frequent long term supported stable releases.
=== What's wrong with Android (vendor) Linux kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. It makes little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices run on mainline Linux, most of those with very limited hardware support. Linux kernels are forked once by AOSP, and then forked again by the device manufacturer which results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'' forcing consumers to replace their devices every year or two and has a big impact on our planet. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC.
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the anticipated Librem phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for Librem phone.
=== How about other alternatives (Sailfish, Nemo, UBPorts, LuneOS, Tizen, etc)? ===
* Android kernels (Sailfish, Nemo, UBPorts, LuneOS)
* Unmaintained/vulnerable GPL v2 packages for the purpose of Tivoisation (Sailfish/Nemo)
* Proprietary application framework (Silica components)
* Proprietary GUI (Sailfish)
* Built for profit which means they may not have the best interests of the end-user at heart, especially those which purposely include closed components where it could have been avoided (Sailfish/Tizen)
* Mir (UBPorts)
* Prioritise device compatibility and ports over software freedoms
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticable in the project).
Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts.
But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate, [http://without-systemd.org there are already plenty of places on the internet where you can read up on the pros and cons of systemd]. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== Does Maemo Leste have a process supervisor? ===
Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
b4acd4034cfb709ae05936db0c4ddc86641f23bd
191
190
2018-05-29T16:36:15Z
Juest
10
/* What is mainline Linux? */
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs.
Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone.
The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs.
Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interopability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth.
We went for a distribution based on Debian because would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life if developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Mobile GNU/Linux distributions which use Android kernels will always be playing catch-up. We will never see a new device developed from the ground up for those distributions as they rely on Android running on them first. Those distributions are at the mercy of the device manufacturers to provide kernel updates. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from Halium and other libhybris-based Linux distributions is evident.
Halium's choice of systemd is also contentious. Whilst most mainstream Linux distributions have adopted systemd, it has left a significant number users discontented and unsatisfied, proving not to be the ''be all and end all'' solution it had hoped to be.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from kernel.org/Linus Torvalds' Git tree. It has an organic development model which provides new releases approximately every six weeks and also less frequent long term supported stable releases.
=== What's wrong with Android (vendor) Linux kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. It makes little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices run on mainline Linux, most of those with very limited hardware support. Linux kernels are forked once by AOSP, and then forked again by the device manufacturer which results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'' forcing consumers to replace their devices every year or two and has a big impact on our planet. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC.
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the anticipated Librem phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for Librem phone.
=== How about other alternatives (Sailfish, Nemo, UBPorts, LuneOS, Tizen, etc)? ===
* Android kernels (Sailfish, Nemo, UBPorts, LuneOS)
* Unmaintained/vulnerable GPL v2 packages for the purpose of Tivoisation (Sailfish/Nemo)
* Proprietary application framework (Silica components)
* Proprietary GUI (Sailfish)
* Built for profit which means they may not have the best interests of the end-user at heart, especially those which purposely include closed components where it could have been avoided (Sailfish/Tizen)
* Mir (UBPorts)
* Prioritise device compatibility and ports over software freedoms
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticable in the project).
Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts.
But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate, [http://without-systemd.org there are already plenty of places on the internet where you can read up on the pros and cons of systemd]. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== Does Maemo Leste have a process supervisor? ===
Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
d7dfd5451113571dce300fcbb73659b018e5cbdb
195
191
2018-05-29T19:51:31Z
Derby
3
/* What is mainline Linux? */
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs.
Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone.
The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs.
Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interopability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth.
We went for a distribution based on Debian because would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life if developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Mobile GNU/Linux distributions which use Android kernels will always be playing catch-up. We will never see a new device developed from the ground up for those distributions as they rely on Android running on them first. Those distributions are at the mercy of the device manufacturers to provide kernel updates. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from Halium and other libhybris-based Linux distributions is evident.
Halium's choice of systemd is also contentious. Whilst most mainstream Linux distributions have adopted systemd, it has left a significant number users discontented and unsatisfied, proving not to be the ''be all and end all'' solution it had hoped to be.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases approximately every six weeks and also less frequent long term supported stable releases.
=== What's wrong with Android (vendor) Linux kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. It makes little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices run on mainline Linux, most of those with very limited hardware support. Linux kernels are forked once by AOSP, and then forked again by the device manufacturer which results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'' forcing consumers to replace their devices every year or two and has a big impact on our planet. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC.
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the anticipated Librem phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for Librem phone.
=== How about other alternatives (Sailfish, Nemo, UBPorts, LuneOS, Tizen, etc)? ===
* Android kernels (Sailfish, Nemo, UBPorts, LuneOS)
* Unmaintained/vulnerable GPL v2 packages for the purpose of Tivoisation (Sailfish/Nemo)
* Proprietary application framework (Silica components)
* Proprietary GUI (Sailfish)
* Built for profit which means they may not have the best interests of the end-user at heart, especially those which purposely include closed components where it could have been avoided (Sailfish/Tizen)
* Mir (UBPorts)
* Prioritise device compatibility and ports over software freedoms
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticable in the project).
Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts.
But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate, [http://without-systemd.org there are already plenty of places on the internet where you can read up on the pros and cons of systemd]. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== Does Maemo Leste have a process supervisor? ===
Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
b8c3ce9b4b789e0cca35c3a22d7a36fb9360d014
A20-OLinuXIno-LIME2
0
63
153
2018-05-23T14:00:57Z
Wizzup
4
Created page with "{{Stub}} {{Infobox Device |image= |manufacturer=OLIMEX |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb= |camera= |s..."
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=OLIMEX
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Notes ==
== Status ==
== Installation ==
Images: https://maedevu.maemo.org/images/olimex-lime2/
u-boot bootloader is provided for the lime2
* flash it
* dd if=A20-OLinuXino-Lime2_defconfig.bin of=/dev/yoursdcard bs=1024 seek=8 && sync
[[Category:Device]]
608731a715add3f9b38205f05b3447ef4f5f8084
Main Page
0
1
154
123
2018-05-23T14:08:03Z
Wizzup
4
Remove devices that already have a page. Just droid4 + n9(50) remaining.
wikitext
text/x-wiki
= Description =
Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo (Fremantle). We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more.
You can find us on '''freenode''', channel '''#maemo-leste'''.
Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels.
The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available, such as the N900.
So far we have set up devuan/debian repositories for our packages, with builds for armel, armhf and amd64. We have FOSS replacements for some closed maemo packages, further building on the Maemo community efforts to replace all closed bits by open software.
= Supported Devices =
See [[:Category:Device]]
== N9/N950 ==
[https://github.com/maemo-leste/bugtracker/issues/121 Status]
=== Installation ===
''' [http://www.swagman.org/juice/ubiboot/ubiboot-02/ ubiboot] from eMMC '''
# [http://www.swagman.org/juice/ubiboot/README Install ubiboot].
# [https://talk.maemo.org/showthread.php?t=91914 Create a new slice on the eMMC] and format it to ext4.
# Mount your new ext4 slice and unpack the .tar.gz dist ([https://maedevu.maemo.org/images/n9/20180425/maemo-leste-1.0-armhf-n9-20180425.tar.gz N9 - 20180424], [https://maedevu.maemo.org/images/n950/20180425/maemo-leste-1.0-armhf-n950-20180424.tar.gz N950 - 20180424]) to it.
# Configure <code>ubiboot.conf</code>. This guide assumes you will use slot 5 for Maemo Leste ([https://github.com/dderby/ubiboot-animatronics/blob/master/ubiboot.conf example]):
#* Set '''G_OS5_INITSCRIPT''' to <code>\/sbin\/preinit</code>
#* Set '''G_OS5_NUM''' to <code>1</code>
#* Set '''G_OS5_PARTITION''' to the partition number of your Maemo Leste slice
#* Set '''G_OS5_NAME''' to <code>Maemo</code>
#* Set '''G_OS5_1_LABEL''' to <code>Maemo Leste - Linux 4.16</code> or whatever description you like
#* Set '''G_OS5_1_FILE''' to <code>/boot/Maemo/boot/zImage</code>
# Reboot to ubiboot and select the slot for Maemo Leste.
If you don't want to repartition your eMMC, there are two alternatives:
* Use [https://talk.maemo.org/showthread.php?t=94042 N9 Easy Boot].
* Unpack the dist to Harmattan's <code>/home</code> directory and set '''G_OS5_PARTITION''' in ubiboot.conf to <code>3</code>. This will result in Maemo Leste sharing a slice with Harmattan's <code>/home</code>. Be careful when removing Maemo Leste, not to remove Harmattan's <code>user</code> or <code>developer</code> home directories.
=== Kernel development ===
Linux 4.16.4 plus patches
N950 status: https://elinux.org/N950
N9 status: https://elinux.org/N9
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.16.y linux-stable 4.16.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n950-patches N950 patches], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n9-patches N9 patches]
== Droid 4 ==
[https://maemo-leste.github.io/pages/droid-4-status.html Status]
=== Installation ===
''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card '''
(This is the boot method currently being used but we'll probably replace this with [https://github.com/tmlind/droid4-kexecboot droid4-kexecboot] to aid kernel updates via deb package)
=== Kernel development ===
Linux 4.14 plus patches
Status: http://elektranox.org/droid4/
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]
= Development =
== Set up a VM ==
== Packages needing testing ==
== Packages needing building ==
== Packages needing porting ==
= Roadmap =
== Project milestones ==
https://github.com/maemo-leste/bugtracker/milestones
= Links =
<div>
*Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io]
*Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues]
*Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/]
*Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/]
The central point of meeting and talking is IRC and this thread: https://talk.maemo.org/showthread.php?t=100192.
</div>
*[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)]
15585bb790976977be2e79376d8f131205577459
158
154
2018-05-23T14:17:10Z
Wizzup
4
wikitext
text/x-wiki
= Description =
Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo (Fremantle). We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more.
You can find us on '''freenode''', channel '''#maemo-leste'''.
Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels.
The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available, such as the N900.
So far we have set up devuan/debian repositories for our packages, with builds for armel, armhf and amd64. We have FOSS replacements for some closed maemo packages, further building on the Maemo community efforts to replace all closed bits by open software.
= Supported Devices =
See [[:Category:Device]]
= Development =
See [[Development]]
= Roadmap =
== Project milestones ==
https://github.com/maemo-leste/bugtracker/milestones
= Links =
<div>
*Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io]
*Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues]
*Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/]
*Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/]
The central point of meeting and talking is IRC and this thread: https://talk.maemo.org/showthread.php?t=100192.
</div>
*[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)]
455e75c419c5d41e0ef85b5838c6ec138ecb1a52
164
158
2018-05-26T23:19:25Z
Wizzup
4
wikitext
text/x-wiki
= Description =
Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo (Fremantle). We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more.
You can find us on '''freenode''', channel '''#maemo-leste'''.
Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels.
The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available, such as the N900.
So far we have set up devuan/debian repositories for our packages, with builds for armel, armhf and amd64. We have FOSS replacements for some closed maemo packages, further building on the Maemo community efforts to replace all closed bits by open software.
Also see our [[Leste_FAQ|FAQ]].
= Supported Devices =
See [[:Category:Device]]
= Development =
See [[Development]]
= Roadmap =
== Project milestones ==
https://github.com/maemo-leste/bugtracker/milestones
= Links =
<div>
*Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io]
*Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues]
*Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/]
*Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/]
The central point of meeting and talking is IRC and this thread: https://talk.maemo.org/showthread.php?t=100192.
</div>
*[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)]
4d2ec3fc0c6401ea13d74995a7c8986c20666c6d
Nokia N950
0
56
155
140
2018-05-23T14:15:00Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Nokia
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
[https://github.com/maemo-leste/bugtracker/issues/121 Status]
=== Installation ===
''' [http://www.swagman.org/juice/ubiboot/ubiboot-02/ ubiboot] from eMMC '''
# [http://www.swagman.org/juice/ubiboot/README Install ubiboot].
# [https://talk.maemo.org/showthread.php?t=91914 Create a new slice on the eMMC] and format it to ext4.
# Mount your new ext4 slice and unpack the .tar.gz dist ([https://maedevu.maemo.org/images/n9/20180425/maemo-leste-1.0-armhf-n9-20180425.tar.gz N9 - 20180424], [https://maedevu.maemo.org/images/n950/20180425/maemo-leste-1.0-armhf-n950-20180424.tar.gz N950 - 20180424]) to it.
# Configure <code>ubiboot.conf</code>. This guide assumes you will use slot 5 for Maemo Leste ([https://github.com/dderby/ubiboot-animatronics/blob/master/ubiboot.conf example]):
#* Set '''G_OS5_INITSCRIPT''' to <code>\/sbin\/preinit</code>
#* Set '''G_OS5_NUM''' to <code>1</code>
#* Set '''G_OS5_PARTITION''' to the partition number of your Maemo Leste slice
#* Set '''G_OS5_NAME''' to <code>Maemo</code>
#* Set '''G_OS5_1_LABEL''' to <code>Maemo Leste - Linux 4.16</code> or whatever description you like
#* Set '''G_OS5_1_FILE''' to <code>/boot/Maemo/boot/zImage</code>
# Reboot to ubiboot and select the slot for Maemo Leste.
If you don't want to repartition your eMMC, there are two alternatives:
* Use [https://talk.maemo.org/showthread.php?t=94042 N9 Easy Boot].
* Unpack the dist to Harmattan's <code>/home</code> directory and set '''G_OS5_PARTITION''' in ubiboot.conf to <code>3</code>. This will result in Maemo Leste sharing a slice with Harmattan's <code>/home</code>. Be careful when removing Maemo Leste, not to remove Harmattan's <code>user</code> or <code>developer</code> home directories.
=== Kernel development ===
Linux 4.16.4 plus patches
N950 status: https://elinux.org/N950
N9 status: https://elinux.org/N9
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.16.y linux-stable 4.16.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n950-patches N950 patches], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n9-patches N9 patches]
[[Category:Device]]
a0928fdcb8dd729e81e5a78634810d8adc17427c
Nokia N9
0
55
156
141
2018-05-23T14:15:28Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Nokia
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
For now, please look at the [[Nokia N950]] page.
[[Category:Device]]
4421d54c3a21c6510971422bd70a040650b4aa35
Motorola Droid 4
0
50
157
136
2018-05-23T14:16:40Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
...
== Notes ==
Also see: http://elektranox.org/droid4/
== Status ==
{| class="wikitable"
! Hardware
! Kernel supported
! Leste supported
|-
| Kernel || - || 4.15
|-
| Charging || Yes || Yes
|-
| Micro USB || Yes || OTG
|}
== Installation ==
''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card '''
(This is the boot method currently being used but we'll probably replace this with [https://github.com/tmlind/droid4-kexecboot droid4-kexecboot] to aid kernel updates via deb package)
== Kernel development ==
Linux 4.14 plus patches
Status: http://elektranox.org/droid4/
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]
[[Category:Device]]
957488d01a6d992189c5ac8bc5bf654389257e89
168
157
2018-05-28T20:45:00Z
Pavel
9
/* Installation */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
...
== Notes ==
Also see: http://elektranox.org/droid4/
== Status ==
{| class="wikitable"
! Hardware
! Kernel supported
! Leste supported
|-
| Kernel || - || 4.15
|-
| Charging || Yes || Yes
|-
| Micro USB || Yes || OTG
|}
== Installation ==
''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card '''
(This is the boot method currently being used but we'll probably replace this with [https://github.com/tmlind/droid4-kexecboot droid4-kexecboot] to aid kernel updates via deb package)
Flashing the zip file is quite confusing / tricky:
Boot options, select slot with Leste, Activate.
In main menu: Install, scroll down to select ddroid-....zip file, swipe to confirm flash. You will get error, including "ApplyParsePerms, set_metadata_recursive, Error executing updater binary, Unable to mount." Red "failed" will appear. These are normal. Proceed by selecting "Reboot System", you'll get one more warning that system is not installed, swipe to confirm reboot.
Red motorola logo will appear, press search button to continue boot, phone vibrates, then vibrates again, then green led comes on. After about a minute, console appears, then disappears and X comes to life.
== Kernel development ==
Linux 4.14 plus patches
Status: http://elektranox.org/droid4/
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]
[[Category:Device]]
d24e11707c75c4517ca146d2874c88fff695b0b9
169
168
2018-05-28T20:52:41Z
Pavel
9
/* Installation */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
...
== Notes ==
Also see: http://elektranox.org/droid4/
== Status ==
{| class="wikitable"
! Hardware
! Kernel supported
! Leste supported
|-
| Kernel || - || 4.15
|-
| Charging || Yes || Yes
|-
| Micro USB || Yes || OTG
|}
== Installation ==
''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card '''
PostmarketOS has some information how to install safestrap: [https://wiki.postmarketos.org/wiki/Motorola_Droid_4_(motorola-maserati) in wiki]
(This is the boot method currently being used but we'll probably replace this with [https://github.com/tmlind/droid4-kexecboot droid4-kexecboot] to aid kernel updates via deb package)
Flashing the zip file is quite confusing / tricky:
Boot options, select slot with Leste, Activate.
In main menu: Install, scroll down to select ddroid-....zip file, swipe to confirm flash. You will get error, including "ApplyParsePerms, set_metadata_recursive, Error executing updater binary, Unable to mount." Red "failed" will appear. These are normal. Proceed by selecting "Reboot System", you'll get one more warning that system is not installed, swipe to confirm reboot.
Red motorola logo will appear, press search button to continue boot, phone vibrates, then vibrates again, then green led comes on. After about a minute, console appears, then disappears and X comes to life.
== Kernel development ==
Linux 4.14 plus patches
Status: http://elektranox.org/droid4/
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]
[[Category:Device]]
d5d67a383b25f150ca86f73405cea17ec64f9007
Status
0
64
166
2018-05-26T23:34:41Z
Wizzup
4
Created page with "{{Stub}} TODO: * Quickly list devices that are well supported * List OS features (UI, connectivity, core programs, missing core programs)"
wikitext
text/x-wiki
{{Stub}}
TODO:
* Quickly list devices that are well supported
* List OS features (UI, connectivity, core programs, missing core programs)
babab5f0a17adcbf5cef4863ec866e6cba7a6118
167
166
2018-05-26T23:35:33Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
TODO:
* Briefly list devices that are well supported
* List OS features (UI, connectivity, core programs, missing core programs)
a1a137f4182724ae62ac71b2ff9b857f1afdbd9d
Leste FAQ
0
62
196
195
2018-05-29T20:02:07Z
Derby
3
/* How about other alternatives (Sailfish, Nemo, UBPorts, LuneOS, Tizen, etc)? */
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs.
Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone.
The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs.
Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interopability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth.
We went for a distribution based on Debian because would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life if developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Mobile GNU/Linux distributions which use Android kernels will always be playing catch-up. We will never see a new device developed from the ground up for those distributions as they rely on Android running on them first. Those distributions are at the mercy of the device manufacturers to provide kernel updates. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from Halium and other libhybris-based Linux distributions is evident.
Halium's choice of systemd is also contentious. Whilst most mainstream Linux distributions have adopted systemd, it has left a significant number users discontented and unsatisfied, proving not to be the ''be all and end all'' solution it had hoped to be.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases approximately every six weeks and also less frequent long term supported stable releases.
=== What's wrong with Android (vendor) Linux kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. It makes little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices run on mainline Linux, most of those with very limited hardware support. Linux kernels are forked once by AOSP, and then forked again by the device manufacturer which results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'' forcing consumers to replace their devices every year or two and has a big impact on our planet. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC.
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the anticipated Librem phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for Librem phone.
=== How about other alternatives (Sailfish, Nemo, Ubuntu Touch, LuneOS, Tizen, etc)? ===
* Android kernels (Sailfish, Nemo, Ubuntu Touch, LuneOS)
** They prioritise device compatibility and ports over software freedoms
* Built for profit which means they may not have the best interests of the end-user at heart, especially those which purposely include closed components where it could have been avoided (Sailfish/Tizen)
** Proprietary application framework (Sailfish Silica components)
** Proprietary GUI (Sailfish)
** Unmaintained/vulnerable GPL v2 packages for the purpose of Tivoisation (Sailfish/Nemo)
* Mir debacle (Ubuntu Touch)
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticable in the project).
Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts.
But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate, [http://without-systemd.org there are already plenty of places on the internet where you can read up on the pros and cons of systemd]. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== Does Maemo Leste have a process supervisor? ===
Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
218a2379dc98e83c04098440430afcf605292e1e
197
196
2018-05-29T20:06:04Z
Derby
3
/* Does Maemo Leste use Halium? */
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs.
Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone.
The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs.
Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interopability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth.
We went for a distribution based on Debian because would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life if developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Mobile GNU/Linux distributions which use Android kernels will always be playing catch-up. Those distributions are at the mercy of the device manufacturers to provide kernel updates. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from Halium and other libhybris-based Linux distributions is evident.
Halium's choice of systemd is also contentious. Whilst most mainstream Linux distributions have adopted systemd, it has left a significant number users discontented and unsatisfied, proving not to be the ''be all and end all'' solution it had hoped to be.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases approximately every six weeks and also less frequent long term supported stable releases.
=== What's wrong with Android (vendor) Linux kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. It makes little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices run on mainline Linux, most of those with very limited hardware support. Linux kernels are forked once by AOSP, and then forked again by the device manufacturer which results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'' forcing consumers to replace their devices every year or two and has a big impact on our planet. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC.
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the anticipated Librem phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for Librem phone.
=== How about other alternatives (Sailfish, Nemo, Ubuntu Touch, LuneOS, Tizen, etc)? ===
* Android kernels (Sailfish, Nemo, Ubuntu Touch, LuneOS)
** They prioritise device compatibility and ports over software freedoms
* Built for profit which means they may not have the best interests of the end-user at heart, especially those which purposely include closed components where it could have been avoided (Sailfish/Tizen)
** Proprietary application framework (Sailfish Silica components)
** Proprietary GUI (Sailfish)
** Unmaintained/vulnerable GPL v2 packages for the purpose of Tivoisation (Sailfish/Nemo)
* Mir debacle (Ubuntu Touch)
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticable in the project).
Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts.
But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate, [http://without-systemd.org there are already plenty of places on the internet where you can read up on the pros and cons of systemd]. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== Does Maemo Leste have a process supervisor? ===
Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
1c9e4a392d047a6bb07f2cd5b8bfbad9064403e0
198
197
2018-05-29T20:08:05Z
Derby
3
/* Does Maemo Leste use Halium? */
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs.
Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone.
The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs.
Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interopability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth.
We went for a distribution based on Debian because would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life if developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Mobile GNU/Linux distributions which use Android kernels will always be playing catch-up. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from Halium and other libhybris-based Linux distributions is evident.
Halium's choice of systemd is also contentious. Whilst most mainstream Linux distributions have adopted systemd, it has left a significant number users discontented and unsatisfied, proving not to be the ''be all and end all'' solution it had hoped to be.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases approximately every six weeks and also less frequent long term supported stable releases.
=== What's wrong with Android (vendor) Linux kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. It makes little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices run on mainline Linux, most of those with very limited hardware support. Linux kernels are forked once by AOSP, and then forked again by the device manufacturer which results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'' forcing consumers to replace their devices every year or two and has a big impact on our planet. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC.
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the anticipated Librem phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for Librem phone.
=== How about other alternatives (Sailfish, Nemo, Ubuntu Touch, LuneOS, Tizen, etc)? ===
* Android kernels (Sailfish, Nemo, Ubuntu Touch, LuneOS)
** They prioritise device compatibility and ports over software freedoms
* Built for profit which means they may not have the best interests of the end-user at heart, especially those which purposely include closed components where it could have been avoided (Sailfish/Tizen)
** Proprietary application framework (Sailfish Silica components)
** Proprietary GUI (Sailfish)
** Unmaintained/vulnerable GPL v2 packages for the purpose of Tivoisation (Sailfish/Nemo)
* Mir debacle (Ubuntu Touch)
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticable in the project).
Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts.
But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate, [http://without-systemd.org there are already plenty of places on the internet where you can read up on the pros and cons of systemd]. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== Does Maemo Leste have a process supervisor? ===
Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
2e72ef9e4a952b2a9c58202f54769d9793fcd483
199
198
2018-05-29T20:26:12Z
Derby
3
/* Does Maemo Leste use Halium? */
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs.
Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone.
The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs.
Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interopability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth.
We went for a distribution based on Debian because would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life if developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired. Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from Halium and other libhybris-based Linux distributions is evident.
Halium's choice of systemd is also contentious. Whilst most mainstream Linux distributions have adopted systemd, it has left a significant number users discontented and unsatisfied, proving not to be the ''be all and end all'' solution it had hoped to be.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases approximately every six weeks and also less frequent long term supported stable releases.
=== What's wrong with Android (vendor) Linux kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. It makes little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices run on mainline Linux, most of those with very limited hardware support. Linux kernels are forked once by AOSP, and then forked again by the device manufacturer which results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'' forcing consumers to replace their devices every year or two and has a big impact on our planet. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC.
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the anticipated Librem phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for Librem phone.
=== How about other alternatives (Sailfish, Nemo, Ubuntu Touch, LuneOS, Tizen, etc)? ===
* Android kernels (Sailfish, Nemo, Ubuntu Touch, LuneOS)
** They prioritise device compatibility and ports over software freedoms
* Built for profit which means they may not have the best interests of the end-user at heart, especially those which purposely include closed components where it could have been avoided (Sailfish/Tizen)
** Proprietary application framework (Sailfish Silica components)
** Proprietary GUI (Sailfish)
** Unmaintained/vulnerable GPL v2 packages for the purpose of Tivoisation (Sailfish/Nemo)
* Mir debacle (Ubuntu Touch)
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticable in the project).
Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts.
But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate, [http://without-systemd.org there are already plenty of places on the internet where you can read up on the pros and cons of systemd]. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== Does Maemo Leste have a process supervisor? ===
Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
9f094713c3c4fd09e380a150df290a9e7b545a5e
200
199
2018-05-29T20:28:52Z
Derby
3
/* Does Maemo Leste use Halium? */
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs.
Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone.
The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs.
Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interopability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth.
We went for a distribution based on Debian because would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life if developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired.
Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from Halium and other libhybris-based Linux distributions is evident.
Halium's choice of systemd is also contentious. Whilst most mainstream Linux distributions have adopted systemd, it has left a significant number users discontented and unsatisfied, proving not to be the ''be all and end all'' solution it had hoped to be.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases approximately every six weeks and also less frequent long term supported stable releases.
=== What's wrong with Android (vendor) Linux kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. It makes little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices run on mainline Linux, most of those with very limited hardware support. Linux kernels are forked once by AOSP, and then forked again by the device manufacturer which results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'' forcing consumers to replace their devices every year or two and has a big impact on our planet. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC.
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the anticipated Librem phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for Librem phone.
=== How about other alternatives (Sailfish, Nemo, Ubuntu Touch, LuneOS, Tizen, etc)? ===
* Android kernels (Sailfish, Nemo, Ubuntu Touch, LuneOS)
** They prioritise device compatibility and ports over software freedoms
* Built for profit which means they may not have the best interests of the end-user at heart, especially those which purposely include closed components where it could have been avoided (Sailfish/Tizen)
** Proprietary application framework (Sailfish Silica components)
** Proprietary GUI (Sailfish)
** Unmaintained/vulnerable GPL v2 packages for the purpose of Tivoisation (Sailfish/Nemo)
* Mir debacle (Ubuntu Touch)
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticable in the project).
Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts.
But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate, [http://without-systemd.org there are already plenty of places on the internet where you can read up on the pros and cons of systemd]. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== Does Maemo Leste have a process supervisor? ===
Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
6c51af78716d8d58b2a6b49b0d696381fc65469d
202
200
2018-05-30T11:46:39Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs.
Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone.
The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs.
Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interopability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle.
We went for a distribution based on Debian because would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life if developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired.
Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from Halium and other libhybris-based Linux distributions is evident.
Halium's choice of systemd is also contentious. Whilst most mainstream Linux distributions have adopted systemd, it has left a significant number users discontented and unsatisfied, proving not to be the ''be all and end all'' solution it had hoped to be.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases approximately every six weeks and also less frequent long term supported stable releases.
=== What's wrong with Android (vendor) Linux kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. It makes little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices run on mainline Linux, most of those with very limited hardware support. Linux kernels are forked once by AOSP, and then forked again by the device manufacturer which results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'' forcing consumers to replace their devices every year or two and has a big impact on our planet. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC.
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the anticipated Librem phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for Librem phone.
=== How about other alternatives (Sailfish, Nemo, Ubuntu Touch, LuneOS, Tizen, etc)? ===
* Android kernels (Sailfish, Nemo, Ubuntu Touch, LuneOS)
** They prioritise device compatibility and ports over software freedoms
* Built for profit which means they may not have the best interests of the end-user at heart, especially those which purposely include closed components where it could have been avoided (Sailfish/Tizen)
** Proprietary application framework (Sailfish Silica components)
** Proprietary GUI (Sailfish)
** Unmaintained/vulnerable GPL v2 packages for the purpose of Tivoisation (Sailfish/Nemo)
* Mir debacle (Ubuntu Touch)
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticable in the project).
Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts.
But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate, [http://without-systemd.org there are already plenty of places on the internet where you can read up on the pros and cons of systemd]. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== Does Maemo Leste have a process supervisor? ===
Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
8027e2c3d12df886f9efba0773515cdd0030a860
203
202
2018-05-30T13:49:49Z
Derby
3
/* Why not add/extend new packages to Fremantle instead? */ Fix typos
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs.
Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone.
The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs.
Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle.
We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired.
Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from Halium and other libhybris-based Linux distributions is evident.
Halium's choice of systemd is also contentious. Whilst most mainstream Linux distributions have adopted systemd, it has left a significant number users discontented and unsatisfied, proving not to be the ''be all and end all'' solution it had hoped to be.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases approximately every six weeks and also less frequent long term supported stable releases.
=== What's wrong with Android (vendor) Linux kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. It makes little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices run on mainline Linux, most of those with very limited hardware support. Linux kernels are forked once by AOSP, and then forked again by the device manufacturer which results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'' forcing consumers to replace their devices every year or two and has a big impact on our planet. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC.
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the anticipated Librem phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for Librem phone.
=== How about other alternatives (Sailfish, Nemo, Ubuntu Touch, LuneOS, Tizen, etc)? ===
* Android kernels (Sailfish, Nemo, Ubuntu Touch, LuneOS)
** They prioritise device compatibility and ports over software freedoms
* Built for profit which means they may not have the best interests of the end-user at heart, especially those which purposely include closed components where it could have been avoided (Sailfish/Tizen)
** Proprietary application framework (Sailfish Silica components)
** Proprietary GUI (Sailfish)
** Unmaintained/vulnerable GPL v2 packages for the purpose of Tivoisation (Sailfish/Nemo)
* Mir debacle (Ubuntu Touch)
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticable in the project).
Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts.
But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate, [http://without-systemd.org there are already plenty of places on the internet where you can read up on the pros and cons of systemd]. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== Does Maemo Leste have a process supervisor? ===
Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
1da245b746f5df7264f853a8ce460f808809be46
204
203
2018-05-30T17:08:09Z
Derby
3
/* Are there any technical merits in using System V init with OpenRC instead of systemd? */ Removing link as I don't think it's helpful
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs.
Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone.
The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs.
Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle.
We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired.
Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from Halium and other libhybris-based Linux distributions is evident.
Halium's choice of systemd is also contentious. Whilst most mainstream Linux distributions have adopted systemd, it has left a significant number users discontented and unsatisfied, proving not to be the ''be all and end all'' solution it had hoped to be.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases approximately every six weeks and also less frequent long term supported stable releases.
=== What's wrong with Android (vendor) Linux kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. It makes little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices run on mainline Linux, most of those with very limited hardware support. Linux kernels are forked once by AOSP, and then forked again by the device manufacturer which results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'' forcing consumers to replace their devices every year or two and has a big impact on our planet. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC.
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the anticipated Librem phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for Librem phone.
=== How about other alternatives (Sailfish, Nemo, Ubuntu Touch, LuneOS, Tizen, etc)? ===
* Android kernels (Sailfish, Nemo, Ubuntu Touch, LuneOS)
** They prioritise device compatibility and ports over software freedoms
* Built for profit which means they may not have the best interests of the end-user at heart, especially those which purposely include closed components where it could have been avoided (Sailfish/Tizen)
** Proprietary application framework (Sailfish Silica components)
** Proprietary GUI (Sailfish)
** Unmaintained/vulnerable GPL v2 packages for the purpose of Tivoisation (Sailfish/Nemo)
* Mir debacle (Ubuntu Touch)
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticable in the project).
Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts.
But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== Does Maemo Leste have a process supervisor? ===
Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
b003ca22b63a57d05f000cdb1e2582081577077f
205
204
2018-05-30T17:19:05Z
Derby
3
/* Does Maemo Leste use Halium? */ Removing line about systemd as it's problably unnecessary
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs.
Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone.
The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs.
Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle.
We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired.
Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from Halium and other libhybris-based Linux distributions is evident.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases approximately every six weeks and also less frequent long term supported stable releases.
=== What's wrong with Android (vendor) Linux kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. It makes little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices run on mainline Linux, most of those with very limited hardware support. Linux kernels are forked once by AOSP, and then forked again by the device manufacturer which results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'' forcing consumers to replace their devices every year or two and has a big impact on our planet. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC.
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the anticipated Librem phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for Librem phone.
=== How about other alternatives (Sailfish, Nemo, Ubuntu Touch, LuneOS, Tizen, etc)? ===
* Android kernels (Sailfish, Nemo, Ubuntu Touch, LuneOS)
** They prioritise device compatibility and ports over software freedoms
* Built for profit which means they may not have the best interests of the end-user at heart, especially those which purposely include closed components where it could have been avoided (Sailfish/Tizen)
** Proprietary application framework (Sailfish Silica components)
** Proprietary GUI (Sailfish)
** Unmaintained/vulnerable GPL v2 packages for the purpose of Tivoisation (Sailfish/Nemo)
* Mir debacle (Ubuntu Touch)
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticable in the project).
Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts.
But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== Does Maemo Leste have a process supervisor? ===
Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
25194c1e42a852289e4c1444dea334b0cfe2ac25
206
205
2018-05-30T17:26:46Z
Derby
3
/* Does Maemo Leste use Halium? */
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs.
Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone.
The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs.
Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle.
We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired.
Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases approximately every six weeks and also less frequent long term supported stable releases.
=== What's wrong with Android (vendor) Linux kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. It makes little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices run on mainline Linux, most of those with very limited hardware support. Linux kernels are forked once by AOSP, and then forked again by the device manufacturer which results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'' forcing consumers to replace their devices every year or two and has a big impact on our planet. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC.
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the anticipated Librem phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for Librem phone.
=== How about other alternatives (Sailfish, Nemo, Ubuntu Touch, LuneOS, Tizen, etc)? ===
* Android kernels (Sailfish, Nemo, Ubuntu Touch, LuneOS)
** They prioritise device compatibility and ports over software freedoms
* Built for profit which means they may not have the best interests of the end-user at heart, especially those which purposely include closed components where it could have been avoided (Sailfish/Tizen)
** Proprietary application framework (Sailfish Silica components)
** Proprietary GUI (Sailfish)
** Unmaintained/vulnerable GPL v2 packages for the purpose of Tivoisation (Sailfish/Nemo)
* Mir debacle (Ubuntu Touch)
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticable in the project).
Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts.
But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== Does Maemo Leste have a process supervisor? ===
Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
813d3fa62b4e1ee9b5946841dfb30673b5aea151
213
206
2018-06-04T22:07:48Z
Derby
3
/* What's wrong with Android (vendor) Linux kernels? */
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs.
Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the new very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone.
The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs.
Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle.
We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired.
Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases approximately every six weeks and also less frequent long term supported stable releases.
=== What's wrong with Android (vendor) Linux kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. It makes little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices run on mainline Linux, most of those with very limited hardware support. Linux kernels are forked once by AOSP, and then forked again by the device manufacturer which results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'' forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC.
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the anticipated Librem phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for Librem phone.
=== How about other alternatives (Sailfish, Nemo, Ubuntu Touch, LuneOS, Tizen, etc)? ===
* Android kernels (Sailfish, Nemo, Ubuntu Touch, LuneOS)
** They prioritise device compatibility and ports over software freedoms
* Built for profit which means they may not have the best interests of the end-user at heart, especially those which purposely include closed components where it could have been avoided (Sailfish/Tizen)
** Proprietary application framework (Sailfish Silica components)
** Proprietary GUI (Sailfish)
** Unmaintained/vulnerable GPL v2 packages for the purpose of Tivoisation (Sailfish/Nemo)
* Mir debacle (Ubuntu Touch)
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticable in the project).
Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts.
But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== Does Maemo Leste have a process supervisor? ===
Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
5f694f397a856d09f4f0927d69abf69def48581c
Phone
0
65
201
2018-05-30T10:15:14Z
Wizzup
4
Created page with "{{Stub}} This page will eventually document how phone calls work on various devices, and what the shared software stack on Maemo Leste is. For now, it's just a collection of..."
wikitext
text/x-wiki
{{Stub}}
This page will eventually document how phone calls work on various devices, and what the shared software stack on Maemo Leste is.
For now, it's just a collection of various links and things we'll need to look at to make all of this work.
<pre>
(Test) Programs/code:
https://gitlab.com/tui/tui/tree/master/d4
https://github.com/pavelmachek/unicsy_demo/commits/master
Replacing proprietary N900 modules with upstream code:
https://en.wikipedia.org/wiki/Automatic_gain_control
https://www.freedesktop.org/wiki/Software/PulseAudio/Notes/9.0/
https://github.com/gotbletu/shownotes/blob/master/pulseaudio-dynamic-range-compression.md
</pre>
96c89de1858f0dfaedacc09636f68448a353601c
File:A33 Twister - Leste pre-alpha.jpg
6
66
207
2018-05-30T20:14:41Z
Wizzup
4
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
A33-TurboX-Twister
0
67
208
2018-05-30T20:16:00Z
Wizzup
4
Created page with "{{Stub}} {{Infobox Device |image=[[File:A33 Twister - Leste pre-alpha.jpg|250px]] |manufacturer=TurboX |codename= |dimensions= |release_date= |soc= |dram= |power= |lcd= |vide..."
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:A33 Twister - Leste pre-alpha.jpg|250px]]
|manufacturer=TurboX
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Notes ==
Bought from here: http://plesio.bg/tableti-c-69981200/turbo-x-twister-tablet-7-black-p-326390.html
Modified kernel with Mali support, extracted touchscreen firmware from android, had to extract exact touchscreen driver info.
Wifi required external kernel module.
Need to dig into logs to figure out everything that was changed.
Otherwise should just work with mainline driver; hopefully soon with Lima as well.
== Status ==
== Installation ==
TBD
[[Category:Device]]
ddd870a3e046e8588cc6f533fcc3ec32c5062327
210
208
2018-06-03T09:54:28Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:A33 Twister - Leste pre-alpha.jpg|250px]]
|manufacturer=TurboX
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Notes ==
Bought from here: http://plesio.bg/tableti-c-69981200/turbo-x-twister-tablet-7-black-p-326390.html
Modified kernel with Mali support, extracted touchscreen firmware from android, had to extract exact touchscreen driver info.
Wifi required external kernel module.
Need to dig into logs to figure out everything that was changed.
Otherwise should just work with mainline driver; hopefully soon with Lima as well.
Wifi driver is currently out of tree: https://github.com/jwrdegoede/rtl8723bs
Firmware was extracted from Android: https://github.com/onitake/gsl-firmware
(We'll have to find the exact firmware and post it somewhere soon)
Picture of the inside: http://wizzup.org/tablet.jpg
TODO:
- vdpau ( https://bootlin.com/blog/allwinner-vpu-support-in-mainline-linux-status-update-week-20/ )
- lima (mali works, but yeah)
- audio/speaker support (might just work now)
- axp battery reading via /sys interface (for upower) (might just work now)
== Status ==
== Installation ==
TBD
[[Category:Device]]
82c067eaca35dc75d1c1e95be6d5ad80f825194d
211
210
2018-06-03T09:55:17Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:A33 Twister - Leste pre-alpha.jpg|250px]]
|manufacturer=TurboX
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Notes ==
Bought from here: http://plesio.bg/tableti-c-69981200/turbo-x-twister-tablet-7-black-p-326390.html
Modified kernel with Mali support, extracted touchscreen firmware from android, had to extract exact touchscreen driver info.
Wifi required external kernel module.
Need to dig into logs to figure out everything that was changed.
Otherwise should just work with mainline driver; hopefully soon with Lima as well.
Wifi driver is currently out of tree: https://github.com/jwrdegoede/rtl8723bs
Touch screen firmware was extracted from Android: https://github.com/onitake/gsl-firmware
(We'll have to find the exact firmware and post it somewhere soon)
Picture of the inside: http://wizzup.org/tablet.jpg
TODO:
* vdpau ( https://bootlin.com/blog/allwinner-vpu-support-in-mainline-linux-status-update-week-20/ )
* lima (mali works, but yeah)
* audio/speaker support (might just work now)
* axp battery reading via /sys interface (for upower) (might just work now)
== Status ==
== Installation ==
TBD
[[Category:Device]]
3f5ae6dd6439bfdedf424213a177a5b0db96d4dc
212
211
2018-06-03T09:56:11Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:A33 Twister - Leste pre-alpha.jpg|250px]]
|manufacturer=TurboX
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Notes ==
Bought from here: http://plesio.bg/tableti-c-69981200/turbo-x-twister-tablet-7-black-p-326390.html
Modified kernel with Mali support, extracted touchscreen firmware from android, had to extract exact touchscreen driver info.
Wifi required external kernel module.
Need to dig into logs to figure out everything that was changed.
Otherwise should just work with mainline driver; hopefully soon with Lima as well.
Wifi driver is currently out of tree: https://github.com/jwrdegoede/rtl8723bs
Touch screen firmware was extracted from Android: https://github.com/onitake/gsl-firmware
(We'll have to find the exact firmware and post it somewhere soon)
Picture of the inside: http://wizzup.org/tablet.jpg
TODO:
* vaapi/vdpau ( https://bootlin.com/blog/allwinner-vpu-support-in-mainline-linux-status-update-week-20/ )
* lima (mali works, but yeah)
* audio/speaker support (might just work now)
* axp battery reading via /sys interface (for upower) (might just work now)
== Status ==
== Installation ==
TBD
[[Category:Device]]
c862000b133a0c1617222919d7680c807b5c552a
Main Page
0
1
209
164
2018-05-30T22:01:59Z
Derby
3
/* Description */
wikitext
text/x-wiki
= Description =
Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo (Fremantle). We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more.
You can find us on '''freenode''', channel '''#maemo-leste'''.
Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels.
The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available, such as the N900.
So far we have set up Devuan/Debian repositories for our packages, with builds for armel, armhf and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software.
Also see our [[Leste_FAQ|FAQ]].
= Supported Devices =
See [[:Category:Device]]
= Development =
See [[Development]]
= Roadmap =
== Project milestones ==
https://github.com/maemo-leste/bugtracker/milestones
= Links =
<div>
*Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io]
*Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues]
*Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/]
*Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/]
The central point of meeting and talking is IRC and this thread: https://talk.maemo.org/showthread.php?t=100192.
</div>
*[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)]
14fbe8b64748cfe1e21be9dd6d6594828687d714
244
209
2018-06-18T16:56:33Z
Wizzup
4
wikitext
text/x-wiki
= Description =
Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo (Fremantle). We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more.
You can find us on '''freenode''', channel '''#maemo-leste'''.
Fnr an overview of the current status, you might want to check out: [[Status]]
Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels.
The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available, such as the N900.
So far we have set up Devuan/Debian repositories for our packages, with builds for armel, armhf and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software.
Also see our [[Leste_FAQ|FAQ]].
= Supported Devices =
See [[:Category:Device]]
= Development =
See [[Development]]
= Roadmap =
== Project milestones ==
https://github.com/maemo-leste/bugtracker/milestones
= Links =
<div>
*Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io]
*Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues]
*Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/]
*Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/]
The central point of meeting and talking is IRC and this thread: https://talk.maemo.org/showthread.php?t=100192.
</div>
*[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)]
582dc0f779421691798392dd9f236ca1d0de29fd
Motorola Droid 4/PowerVR
0
68
214
2018-06-08T18:59:43Z
Wizzup
4
Created page with "{{Stub}} This page attempts to document useful links or other info to get powervr to work on droid4 with mainline kernel. TI releases: http://software-dl.ti.com/dsps/dsps_pu..."
wikitext
text/x-wiki
{{Stub}}
This page attempts to document useful links or other info to get powervr to work on droid4 with mainline kernel.
TI releases: http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/gfxsdk/
Pandaboard (ES) might be a suitable test platform since it is very similar to the droid4, and there are/were Ubuntu releases for it:
https://nl.mouser.com/new/pandaboardorg/pandaboardES/
Ubuntu resources:
https://wiki.ubuntu.com/ARM/OmapDesktopInstall
https://wiki.ubuntu.com/ARM/OMAP
cb2811b89fb580c4af0415f6a1059275d8fa0e0b
215
214
2018-06-08T19:04:57Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
This page attempts to document useful links or other info to get powervr to work on droid4 with mainline kernel.
TI releases: http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/gfxsdk/
Pandaboard (ES) might be a suitable test platform since it is very similar to the droid4, and there are/were Ubuntu releases for it:
https://nl.mouser.com/new/pandaboardorg/pandaboardES/
Ubuntu resources:
https://wiki.ubuntu.com/ARM/OmapDesktopInstall
https://wiki.ubuntu.com/ARM/OMAP
Way to use TI drivers with modern X modesetting driver + glamor? https://github.com/TexasInstruments/dri3wsegl ;
d36ef6880c32d64d4df73857dc1af4ba5881193b
216
215
2018-06-08T19:07:26Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
This page attempts to document useful links or other info to get powervr to work on droid4 with mainline kernel.
TI releases: http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/gfxsdk/ ; perhaps also this: http://git.ti.com/graphics/omap5-sgx-ddk-um-linux
Pandaboard (ES) might be a suitable test platform since it is very similar to the droid4, and there are/were Ubuntu releases for it:
https://nl.mouser.com/new/pandaboardorg/pandaboardES/
Ubuntu resources:
https://wiki.ubuntu.com/ARM/OmapDesktopInstall
https://wiki.ubuntu.com/ARM/OMAP
Way to use TI drivers with modern X modesetting driver + glamor? https://github.com/TexasInstruments/dri3wsegl ;
300b73ccc5e91b06a72fa74f448483b73f1145f2
217
216
2018-06-08T19:38:24Z
TheKit
11
wikitext
text/x-wiki
{{Stub}}
This page attempts to document useful links or other info to get powervr to work on Droid 4 with mainline kernel.
TI releases: http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/gfxsdk/ ; perhaps also this: http://git.ti.com/graphics/omap5-sgx-ddk-um-linux.
According to Release Notes, the last SDK to support SGX540 is 4.04.00.03 (SGX core revision 1.2.0, gfx_dbg_es7.x / gfx_rel_es7.x folders).
Pandaboard (ES) might be a suitable test platform since it is very similar to the Droid 4, and there are/were Ubuntu releases for it:
https://nl.mouser.com/new/pandaboardorg/pandaboardES/
Ubuntu resources:
https://wiki.ubuntu.com/ARM/OmapDesktopInstall
https://wiki.ubuntu.com/ARM/OMAP
https://launchpad.net/~tiomap-dev/+archive/ubuntu/omap-trunk - TI OMAP-related packages, including PowerVR drivers
Ubuntu kernel module mirror:
https://github.com/mobiaqua/pvr-omap4-dkms
Way to use TI drivers with modern X modesetting driver + glamor? https://github.com/TexasInstruments/dri3wsegl ;
There also exists leaked Android SGX540 DDK source code for OMAP4 device by LG, which is not linked here, but is easy to find and could be used as last resort.
3a517ee190cae69514e4f465303cdc736c8271a8
218
217
2018-06-08T19:39:33Z
TheKit
11
wikitext
text/x-wiki
{{Stub}}
This page attempts to document useful links or other info to get powervr to work on Droid 4 with mainline kernel.
TI releases: http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/gfxsdk/ ; perhaps also this: http://git.ti.com/graphics/omap5-sgx-ddk-um-linux.
According to Release Notes, the last SDK to support SGX540 is 4.04.00.04 (SGX core revision 1.2.0, gfx_dbg_es7.x / gfx_rel_es7.x folders).
Pandaboard (ES) might be a suitable test platform since it is very similar to the Droid 4, and there are/were Ubuntu releases for it:
https://nl.mouser.com/new/pandaboardorg/pandaboardES/
Ubuntu resources:
https://wiki.ubuntu.com/ARM/OmapDesktopInstall
https://wiki.ubuntu.com/ARM/OMAP
https://launchpad.net/~tiomap-dev/+archive/ubuntu/omap-trunk - TI OMAP-related packages, including PowerVR drivers
Ubuntu kernel module mirror:
https://github.com/mobiaqua/pvr-omap4-dkms
Way to use TI drivers with modern X modesetting driver + glamor? https://github.com/TexasInstruments/dri3wsegl ;
There also exists leaked Android SGX540 DDK source code for OMAP4 device by LG, which is not linked here, but is easy to find and could be used as last resort.
fb9139251d3055e2238e3d0b2a01abf959241b27
219
218
2018-06-08T19:50:03Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
This page attempts to document useful links or other info to get powervr to work on Droid 4 with mainline kernel.
TI releases: http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/gfxsdk/ ; perhaps also this: http://git.ti.com/graphics/omap5-sgx-ddk-um-linux.
According to Release Notes, the last SDK to support SGX540 is 4.04.00.04 (SGX core revision 1.2.0, gfx_dbg_es7.x / gfx_rel_es7.x folders).
Pandaboard (ES) might be a suitable test platform since it is very similar to the Droid 4, and there are/were Ubuntu releases for it:
https://nl.mouser.com/new/pandaboardorg/pandaboardES/
Ubuntu resources:
https://wiki.ubuntu.com/ARM/OmapDesktopInstall
https://wiki.ubuntu.com/ARM/OMAP
https://launchpad.net/~tiomap-dev/+archive/ubuntu/omap-trunk - TI OMAP-related packages, including PowerVR drivers
Ubuntu kernel module mirror:
https://github.com/mobiaqua/pvr-omap4-dkms
Way to use TI drivers with modern X modesetting driver + glamor? https://github.com/TexasInstruments/dri3wsegl ;
There also exists leaked Android SGX540 DDK source code for OMAP4 device by LG, which is not linked here, but is easy to find and could be used as last resort.
Some notes from irc:
<pre>
20:57 < Wizzup> NeKit: I made a stub page here - https://leste.maemo.org/Motorola_Droid_4/PowerVR
20:57 < Wizzup> feel free to add ideas, links/resources, etc
21:37 < NeKit> edited page a bit
21:37 < NeKit> so support was cut after 4.04.00.04 SDK release, makes me wonder why
21:39 < Wizzup> for what, for xorg or the older omap
21:40 < Wizzup> or sgx :)
21:40 < Wizzup> (all these names confuse me)
21:40 < NeKit> SGX540
21:42 < Wizzup> we should also involve nikolaus perhaps
21:42 < NeKit> it has SGX core 1.2.0 and folder suffix is es7.x
21:42 < Wizzup> ah, ok, I didn't realise it had that core
21:43 < NeKit> http://processors.wiki.ti.com/index.php/Graphics_SDK_Quick_installation_and_user_guide#About_Graphics_SDK - notice 7.x is missing in
table
21:44 < Wizzup> what sgx does n900 have? I don't even remember
21:44 < NeKit> SGX530, not sure for core revision
21:44 < Wizzup> ok
21:44 < NeKit> N9/N950 is also SGX530
21:46 < Wizzup> http://www.ti.com/sitesearch/docs/universalsearch.tsp?searchTerm=SGX540&linkId=10&src=top&m=dd
21:46 < Wizzup> seems this is the latest pandaboard release http://processors.wiki.ti.com/index.php/RN_4_04_00_04?keyMatch=SGX540&tisearch=Search-EN
</pre>
fe9bf043fe5f8083216fd346125ff76c32f9c8bb
220
219
2018-06-08T19:57:14Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
This page attempts to document useful links or other info to get powervr to work on Droid 4 with mainline kernel.
TI releases: http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/gfxsdk/ ; perhaps also this: http://git.ti.com/graphics/omap5-sgx-ddk-um-linux.
According to Release Notes, the last SDK to support SGX540 is 4.04.00.04 (SGX core revision 1.2.0, gfx_dbg_es7.x / gfx_rel_es7.x folders).
Pandaboard (ES) might be a suitable test platform since it is very similar to the Droid 4, and there are/were Ubuntu releases for it:
https://nl.mouser.com/new/pandaboardorg/pandaboardES/
Ubuntu resources:
https://wiki.ubuntu.com/ARM/OmapDesktopInstall
https://wiki.ubuntu.com/ARM/OMAP
https://launchpad.net/~tiomap-dev/+archive/ubuntu/omap-trunk - TI OMAP-related packages, including PowerVR drivers
Ubuntu kernel module mirror:
https://github.com/mobiaqua/pvr-omap4-dkms
Way to use TI drivers with modern X modesetting driver + glamor? https://github.com/TexasInstruments/dri3wsegl ;
There also exists leaked Android SGX540 DDK source code for OMAP4 device by LG, which is not linked here, but is easy to find and could be used as last resort.
Some notes from irc:
<pre>
20:57 < Wizzup> NeKit: I made a stub page here - https://leste.maemo.org/Motorola_Droid_4/PowerVR
20:57 < Wizzup> feel free to add ideas, links/resources, etc
21:37 < NeKit> edited page a bit
21:37 < NeKit> so support was cut after 4.04.00.04 SDK release, makes me wonder why
21:39 < Wizzup> for what, for xorg or the older omap
21:40 < Wizzup> or sgx :)
21:40 < Wizzup> (all these names confuse me)
21:40 < NeKit> SGX540
21:42 < Wizzup> we should also involve nikolaus perhaps
21:42 < NeKit> it has SGX core 1.2.0 and folder suffix is es7.x
21:42 < Wizzup> ah, ok, I didn't realise it had that core
21:43 < NeKit> http://processors.wiki.ti.com/index.php/Graphics_SDK_Quick_installation_and_user_guide#About_Graphics_SDK - notice 7.x is missing in
table
21:44 < Wizzup> what sgx does n900 have? I don't even remember
21:44 < NeKit> SGX530, not sure for core revision
21:44 < Wizzup> ok
21:44 < NeKit> N9/N950 is also SGX530
21:46 < Wizzup> http://www.ti.com/sitesearch/docs/universalsearch.tsp?searchTerm=SGX540&linkId=10&src=top&m=dd
21:46 < Wizzup> seems this is the latest pandaboard release http://processors.wiki.ti.com/index.php/RN_4_04_00_04?keyMatch=SGX540&tisearch=Search-EN
21:47 < Wizzup> this is last non internal - http://processors.wiki.ti.com/index.php/RN_4_04_00_03?keyMatch=SGX540&tisearch=Search-EN
21:50 < Wizzup> not sure why it was dropped :)
21:51 < Wizzup> SDOCM00085667 - Removal of non supported/deprecated devices - OMAP35x with SGX Core 1.0.3(OMAPES=2.x while building) and
AM45x(Panda board- OMAPES=7.x)
21:51 < Wizzup> here: http://processors.wiki.ti.com/index.php/RN_4_05_00_01?keyMatch=panda&tisearch=Search-EN
</pre>
8c67b46162d87f040290b79cfc467e077133ae02
221
220
2018-06-09T17:05:01Z
Derby
3
wikitext
text/x-wiki
{{Stub}}
This page attempts to document useful links or other info to get powervr to work on Droid 4 with mainline kernel.
TI releases: http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/gfxsdk/ ; perhaps also this: http://git.ti.com/graphics/omap5-sgx-ddk-um-linux.
According to Release Notes, the last SDK to support SGX540 is 4.04.00.04 (SGX core revision 1.2.0, gfx_dbg_es7.x / gfx_rel_es7.x folders).
The last SDK with X11 support (DRI/DRM Xorg driver) is 4.10.00.01.
Pandaboard (ES) might be a suitable test platform since it is very similar to the Droid 4, and there are/were Ubuntu releases for it:
https://nl.mouser.com/new/pandaboardorg/pandaboardES/
Ubuntu resources:
https://wiki.ubuntu.com/ARM/OmapDesktopInstall
https://wiki.ubuntu.com/ARM/OMAP
https://launchpad.net/~tiomap-dev/+archive/ubuntu/omap-trunk - TI OMAP-related packages, including PowerVR drivers
Ubuntu kernel module mirror:
https://github.com/mobiaqua/pvr-omap4-dkms
Way to use TI drivers with modern X modesetting driver + glamor? https://github.com/TexasInstruments/dri3wsegl ;
There also exists leaked Android SGX540 DDK source code for OMAP4 device by LG, which is not linked here, but is easy to find and could be used as last resort.
Some notes from irc:
<pre>
20:57 < Wizzup> NeKit: I made a stub page here - https://leste.maemo.org/Motorola_Droid_4/PowerVR
20:57 < Wizzup> feel free to add ideas, links/resources, etc
21:37 < NeKit> edited page a bit
21:37 < NeKit> so support was cut after 4.04.00.04 SDK release, makes me wonder why
21:39 < Wizzup> for what, for xorg or the older omap
21:40 < Wizzup> or sgx :)
21:40 < Wizzup> (all these names confuse me)
21:40 < NeKit> SGX540
21:42 < Wizzup> we should also involve nikolaus perhaps
21:42 < NeKit> it has SGX core 1.2.0 and folder suffix is es7.x
21:42 < Wizzup> ah, ok, I didn't realise it had that core
21:43 < NeKit> http://processors.wiki.ti.com/index.php/Graphics_SDK_Quick_installation_and_user_guide#About_Graphics_SDK - notice 7.x is missing in
table
21:44 < Wizzup> what sgx does n900 have? I don't even remember
21:44 < NeKit> SGX530, not sure for core revision
21:44 < Wizzup> ok
21:44 < NeKit> N9/N950 is also SGX530
21:46 < Wizzup> http://www.ti.com/sitesearch/docs/universalsearch.tsp?searchTerm=SGX540&linkId=10&src=top&m=dd
21:46 < Wizzup> seems this is the latest pandaboard release http://processors.wiki.ti.com/index.php/RN_4_04_00_04?keyMatch=SGX540&tisearch=Search-EN
21:47 < Wizzup> this is last non internal - http://processors.wiki.ti.com/index.php/RN_4_04_00_03?keyMatch=SGX540&tisearch=Search-EN
21:50 < Wizzup> not sure why it was dropped :)
21:51 < Wizzup> SDOCM00085667 - Removal of non supported/deprecated devices - OMAP35x with SGX Core 1.0.3(OMAPES=2.x while building) and
AM45x(Panda board- OMAPES=7.x)
21:51 < Wizzup> here: http://processors.wiki.ti.com/index.php/RN_4_05_00_01?keyMatch=panda&tisearch=Search-EN
</pre>
a00bfb47de6bce2b552ff7c9bf82b77e56371522
245
221
2018-06-21T07:37:48Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
This page attempts to document useful links or other info to get powervr to work on Droid 4 with mainline kernel.
TI releases: http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/gfxsdk/ ; perhaps also this: http://git.ti.com/graphics/omap5-sgx-ddk-um-linux.
According to Release Notes, the last SDK to support SGX540 is 4.04.00.04 (SGX core revision 1.2.0, gfx_dbg_es7.x / gfx_rel_es7.x folders).
The last SDK with X11 support (DRI/DRM Xorg driver) is 4.10.00.01.
Pandaboard (ES) might be a suitable test platform since it is very similar to the Droid 4, and there are/were Ubuntu releases for it:
https://nl.mouser.com/new/pandaboardorg/pandaboardES/
Ubuntu resources:
https://wiki.ubuntu.com/ARM/OmapDesktopInstall
https://wiki.ubuntu.com/ARM/OMAP
https://launchpad.net/~tiomap-dev/+archive/ubuntu/omap-trunk - TI OMAP-related packages, including PowerVR drivers
Ubuntu kernel module mirror:
https://github.com/mobiaqua/pvr-omap4-dkms
Way to use TI drivers with modern X modesetting driver + glamor? https://github.com/TexasInstruments/dri3wsegl ;
There also exists leaked Android SGX540 DDK source code for OMAP4 device by LG, which is not linked here, but is easy to find and could be used as last resort.
Some notes from irc:
<pre>
20:57 < Wizzup> NeKit: I made a stub page here - https://leste.maemo.org/Motorola_Droid_4/PowerVR
20:57 < Wizzup> feel free to add ideas, links/resources, etc
21:37 < NeKit> edited page a bit
21:37 < NeKit> so support was cut after 4.04.00.04 SDK release, makes me wonder why
21:39 < Wizzup> for what, for xorg or the older omap
21:40 < Wizzup> or sgx :)
21:40 < Wizzup> (all these names confuse me)
21:40 < NeKit> SGX540
21:42 < Wizzup> we should also involve nikolaus perhaps
21:42 < NeKit> it has SGX core 1.2.0 and folder suffix is es7.x
21:42 < Wizzup> ah, ok, I didn't realise it had that core
21:43 < NeKit> http://processors.wiki.ti.com/index.php/Graphics_SDK_Quick_installation_and_user_guide#About_Graphics_SDK - notice 7.x is missing in
table
21:44 < Wizzup> what sgx does n900 have? I don't even remember
21:44 < NeKit> SGX530, not sure for core revision
21:44 < Wizzup> ok
21:44 < NeKit> N9/N950 is also SGX530
21:46 < Wizzup> http://www.ti.com/sitesearch/docs/universalsearch.tsp?searchTerm=SGX540&linkId=10&src=top&m=dd
21:46 < Wizzup> seems this is the latest pandaboard release http://processors.wiki.ti.com/index.php/RN_4_04_00_04?keyMatch=SGX540&tisearch=Search-EN
21:47 < Wizzup> this is last non internal - http://processors.wiki.ti.com/index.php/RN_4_04_00_03?keyMatch=SGX540&tisearch=Search-EN
21:50 < Wizzup> not sure why it was dropped :)
21:51 < Wizzup> SDOCM00085667 - Removal of non supported/deprecated devices - OMAP35x with SGX Core 1.0.3(OMAPES=2.x while building) and
AM45x(Panda board- OMAPES=7.x)
21:51 < Wizzup> here: http://processors.wiki.ti.com/index.php/RN_4_05_00_01?keyMatch=panda&tisearch=Search-EN
</pre>
Wizzup plans to take the following steps:
1. Boot mainline on pandaboard
2. Boot latest ubuntu pvr supported kernel on pandaboard
3. See if https://github.com/TexasInstruments/dri3wsegl works on latest ubuntu pvr kernel - if not, ouch
4. See if there are newer releases from ti (kernel and userspace) that might work
5. Port to mainline
6. See if it works on droid4
7. See if various mainline forward ports can be merged (Nikolaus' work)
All of this is assuming omapdrmfb, not omapfb
c87afb342a8e46db7933d2fd2c6c22a3b0516b42
Packaging
0
69
222
2018-06-11T21:22:06Z
Parazyd
1
Initial commit
wikitext
text/x-wiki
The packages we build for Maemo Leste are hosted on Github: https://github.com/maemo-leste
We use the Jenkins CI https://phoenix.maemo.org/ along with helper scripts that can be found at https://github.com/maemo-leste/jenkins-integration
= Workflow =
Our workflow consists of having the packages in Git, along with respective branches.
The master branch in git should represent the latest development. When the sources are ready, we create a new branch called "maemo/ascii", which represents the Devuan suite we base it on.
13580bba6542570b84180c4585add174c2d6328d
223
222
2018-06-13T13:23:49Z
Parazyd
1
Mention gbp.conf and add placeholders for Initial Packaging and Package Updating.
wikitext
text/x-wiki
The packages we build for Maemo Leste are hosted on Github: https://github.com/maemo-leste
We use the Jenkins CI https://phoenix.maemo.org along with helper scripts that can be found at https://github.com/maemo-leste/jenkins-integration
The base logic of buildng Debian packages in Jenkins comes from https://jenkins-debian-glue.org
= Workflow =
Our workflow consists of having the packages in Git, along with respective branches.
The master branch in git should represent the latest development. When the sources are ready, we create a new branch called "maemo/ascii", which represents the Devuan suite we base it on.
Being git-based, our packages require the gbp.conf file inside the debian directory.
All of our packages contain the exact same gbp.conf, which is the following:
<pre>
[DEFAULT]
upstream-tag=%(version)s
</pre>
This file is used by gbp, which in turn is used by jeknins-debian-glue.
The rest is standard Debian packaging.
= Initial packaging =
TODO
= Updating a package =
TODO
2986d074465921599df844df2aed121ca0721be8
Virtual Machine
0
60
224
193
2018-06-14T20:35:49Z
Wizzup
4
Remove weirdly placed unsupported remark
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Generic
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
Generic virtual machine target. This is particularly useful when doing development and testing.
== Installation ==
https://maedevu.maemo.org/images/virtual-machines/
There are three different types of images: VirtualBox, QEMU and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration.
Converting the qcow2 image to raw allows it to be used on real hardware.
[[Category:Device]]
3c4f27730ad5faa48a2a772f432aecf2f61920e6
Nokia N900
0
48
225
129
2018-06-14T20:51:20Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The original Nokia N900.
== Notes ==
Also see: https://elinux.org/N900
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 4.15 || Mainline + PowerVR Patches
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes || Yes
|-
| (Micro USB) || Yes || Slave only, Host Untested
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || WIP || Works, but could be faster/better
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || WIP || Works with ofono, no UI, not enabled by default
|-
| SMS || WIP || Works with ofono, no UI, not enabled by default
|-
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters)
|-
| FM Transmitter || Not yet ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || Not yet || Available as input device, needs MCE work
|-
| Proximity sensor || Not yet ||
|}
== Installation ==
Images: http://maedevu.maemo.org/images/n900/
dd the image to an sd card. Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
[[Category:Device]]
120935d6ec64325863106254cade66db7ec730e1
226
225
2018-06-14T20:52:40Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The original Nokia N900.
== Notes ==
Also see: https://elinux.org/N900
NOTE: Do not use the speakers yet unless you know what you are doing - you may fry them if you are not careful.
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 4.15 || Mainline + PowerVR Patches
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes || Yes
|-
| (Micro USB) || Yes || Slave only, Host Untested
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || WIP || Works, but could be faster/better
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || WIP || Works with ofono; but no work has been done on any integration; see https://github.com/maemo-leste/bugtracker/issues/61 and https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, no UI, not enabled by default
|-
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters)
|-
| FM Transmitter || Not yet ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || Not yet || Available as input device, needs MCE work
|-
| Proximity sensor || Not yet ||
|}
== Installation ==
Images: http://maedevu.maemo.org/images/n900/
dd the image to an sd card. Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
[[Category:Device]]
6ea7555d6192d1d9a776b24725ddfa2c7d7738f4
227
226
2018-06-14T20:54:23Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The original Nokia N900.
== Notes ==
Also see: https://elinux.org/N900
NOTE: Do not use the speakers yet unless you know what you are doing - you may fry them if you are not careful.
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 4.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes || Yes
|-
| (Micro USB) || Yes || Slave only, Host Untested
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || WIP || Works, but could be faster/better, https://github.com/maemo-leste/n9xx-xf86-video-fbdev-sgx
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || WIP || Works with ofono; but no work has been done on any integration; see https://github.com/maemo-leste/bugtracker/issues/61 and https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, no UI, not enabled by default
|-
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters)
|-
| FM Transmitter || Not yet ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || Not yet || Available as input device, needs MCE work
|-
| Proximity sensor || Not yet ||
|}
== Installation ==
Images: http://maedevu.maemo.org/images/n900/
dd the image to an sd card. Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
[[Category:Device]]
0d17d2ea481e6e42df5ccb029be780d3441a18df
228
227
2018-06-14T20:56:18Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The original Nokia N900.
== Notes ==
Also see: https://elinux.org/N900
NOTE: Do not use the speakers yet unless you know what you are doing - you may fry them if you are not careful.
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 4.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| (Micro USB) || Yes || Slave only, Host Untested
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || WIP || Works, but could be faster/better, https://github.com/maemo-leste/n9xx-xf86-video-fbdev-sgx
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || WIP || Works with ofono; but no work has been done on any integration; see https://github.com/maemo-leste/bugtracker/issues/61 and https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, no UI, not enabled by default
|-
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters)
|-
| FM Transmitter || Not yet ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || Not yet || Available as input device, needs MCE work
|-
| Proximity sensor || Not yet ||
|}
== Installation ==
Images: http://maedevu.maemo.org/images/n900/
dd the image to an sd card. Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
[[Category:Device]]
42a2ea5a61f09fd0bd985a073f90faf6fccdb3d3
231
228
2018-06-14T21:13:56Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The original Nokia N900.
== Notes ==
Also see: https://elinux.org/N900
NOTE: Do not use the speakers yet unless you know what you are doing - you may fry them if you are not careful.
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 4.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| (Micro USB) || Yes || Slave only, Host Untested
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || WIP || Works, but could be faster/better, https://github.com/maemo-leste/n9xx-xf86-video-fbdev-sgx
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || WIP || Works with ofono; but no work has been done on any integration; see https://github.com/maemo-leste/bugtracker/issues/61 and https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, no UI, not enabled by default
|-
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters)
|-
| FM Transmitter || Not yet ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || Not yet || Available as input device, needs MCE work
|-
| Proximity sensor || Not yet ||
|-
| HDMI-out || N/A ||
|-
| TV-out || Not yet || Should work in kernel, didn't get it to work yet
|}
== Installation ==
Images: http://maedevu.maemo.org/images/n900/
dd the image to an sd card. Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
[[Category:Device]]
aa5ee2a4fcdce67cd7251a7f168bc3f58f8c6e8a
236
231
2018-06-18T13:28:24Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The original Nokia N900.
== Notes ==
Also see: https://elinux.org/N900
NOTE: Do not use the speakers yet unless you know what you are doing - you may fry them if you are not careful.
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 4.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| (Micro USB) || Yes || Slave only, Host Untested
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || WIP || Works, but could be faster/better, https://github.com/maemo-leste/n9xx-xf86-video-fbdev-sgx
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || WIP || Works with ofono; but no work has been done on any integration; see https://github.com/maemo-leste/bugtracker/issues/61 and https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, no UI, not enabled by default
|-
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters)
|-
| FM Transmitter || Not yet ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || Not yet || Available as input device, needs MCE work
|-
| Proximity sensor || Not yet ||
|-
| HDMI-out || N/A ||
|-
| TV-out || Not yet || Should work in kernel, didn't get it to work yet
|-
| GPS || WIP || Works using gps3 and gpsd
|}
== Installation ==
Images: http://maedevu.maemo.org/images/n900/
dd the image to an sd card. Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
[[Category:Device]]
b67407f19fec3816b5bc072517e0162e0660a884
Motorola Droid 4
0
50
229
169
2018-06-14T21:11:30Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
...
== Notes ==
Also see: http://elektranox.org/droid4/
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 4.14 || Mainline + some patches not yet in mainline
|-
| Serial || Yes || On MicroUSB port, requires special cable
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]]
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Not yet || Audio patches are online, but not yet in Leste kernel tree
|-
| 2G/3G data || WIP || Reported to work, no UI, requires extra software, ofono patches, kernel patches
|-
| SMS || WIP || Reported to work, no UI, requires extra software, ofono patches, kernel patches
|-
| Phone calls || WIP || Reported to work, no UI, requires extra software, ofono patches, kernel patches
|-
| FM Transmitter || N/A? ||
|-
| FM Receiver || ? ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|}
== Installation ==
''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card '''
PostmarketOS has some information how to install safestrap: [https://wiki.postmarketos.org/wiki/Motorola_Droid_4_(motorola-maserati) in wiki]
(This is the boot method currently being used but we'll probably replace this with [https://github.com/tmlind/droid4-kexecboot droid4-kexecboot] to aid kernel updates via deb package)
Flashing the zip file is quite confusing / tricky:
Boot options, select slot with Leste, Activate.
In main menu: Install, scroll down to select ddroid-....zip file, swipe to confirm flash. You will get error, including "ApplyParsePerms, set_metadata_recursive, Error executing updater binary, Unable to mount." Red "failed" will appear. These are normal. Proceed by selecting "Reboot System", you'll get one more warning that system is not installed, swipe to confirm reboot.
Red motorola logo will appear, press search button to continue boot, phone vibrates, then vibrates again, then green led comes on. After about a minute, console appears, then disappears and X comes to life.
== Kernel development ==
Linux 4.14 plus patches
Status: http://elektranox.org/droid4/
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]
[[Category:Device]]
fd1cd03b90bf7622a1e95471d470bd765830851d
230
229
2018-06-14T21:13:36Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
...
== Notes ==
Also see: http://elektranox.org/droid4/
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 4.14 || Mainline + some patches not yet in mainline
|-
| Serial || Yes || On MicroUSB port, requires special cable
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]]
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Not yet || Audio patches are online, but not yet in Leste kernel tree
|-
| 2G/3G data || WIP || Reported to work, no UI, requires extra software, ofono patches, kernel patches
|-
| SMS || WIP || Reported to work, no UI, requires extra software, ofono patches, kernel patches
|-
| Phone calls || WIP || Reported to work, no UI, requires extra software, ofono patches, kernel patches
|-
| FM Transmitter || N/A? ||
|-
| FM Receiver || ? ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|}
== Installation ==
''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card '''
PostmarketOS has some information how to install safestrap: [https://wiki.postmarketos.org/wiki/Motorola_Droid_4_(motorola-maserati) in wiki]
(This is the boot method currently being used but we'll probably replace this with [https://github.com/tmlind/droid4-kexecboot droid4-kexecboot] to aid kernel updates via deb package)
Flashing the zip file is quite confusing / tricky:
Boot options, select slot with Leste, Activate.
In main menu: Install, scroll down to select ddroid-....zip file, swipe to confirm flash. You will get error, including "ApplyParsePerms, set_metadata_recursive, Error executing updater binary, Unable to mount." Red "failed" will appear. These are normal. Proceed by selecting "Reboot System", you'll get one more warning that system is not installed, swipe to confirm reboot.
Red motorola logo will appear, press search button to continue boot, phone vibrates, then vibrates again, then green led comes on. After about a minute, console appears, then disappears and X comes to life.
== Kernel development ==
Linux 4.14 plus patches
Status: http://elektranox.org/droid4/
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]
[[Category:Device]]
2f30cb1d1ea7d80b174100a7b76f9446e532be2e
Raspberry Pi 2
0
57
232
146
2018-06-14T21:18:26Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Raspberry Pi Foundation
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
32-bit armv7 build for the Raspberry Pi 2, also compatible with the Raspberry Pi 3.
== Notes ==
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 4.15 (or 4.16?) || Mainline, no patches
|-
| Serial || Unknown ||
|-
| Charging || N/A ||
|-
| Wireless || Yes ||
|-
| Ethernet || Yes ||
|-
| USB || Yes || Host
|-
| Keyboard || N/A || (USB attached works fine)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || Free driver
|-
| Touchscreen || N/A ||
|-
| Audio || Yes ||
|-
| 2G/3G data || N/A ||
|-
| SMS || N/A ||
|-
| Phone calls || N/A ||
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || N/A ||
|-
| Accelerometer || N/A || Available as input device, needs MCE work
|-
| Proximity sensor || N/A ||
|-
| HDMI-out || Yes ||
|-
| TV-out || Not yet ||
|}
== Installation ==
Images: http://maedevu.maemo.org/images/raspi2/
dd the image to an sd card. Then boot from the sd card. Have a monitor connected to HDMI.
[[Category:Device]]
e1ba2188a770ef3e14339a9d9bc289bd0e02367e
233
232
2018-06-14T21:19:11Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Raspberry Pi Foundation
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
32-bit armv7 build for the Raspberry Pi 2, also compatible with the Raspberry Pi 3.
== Notes ==
Make sure that HDMI is connected on boot, otherwise dsme will reboot the device.
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 4.15 (or 4.16?) || Mainline, no patches
|-
| Serial || Unknown ||
|-
| Charging || N/A ||
|-
| Wireless || Yes ||
|-
| Ethernet || Yes ||
|-
| USB || Yes || Host
|-
| Keyboard || N/A || (USB attached works fine)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || Free driver
|-
| Touchscreen || N/A ||
|-
| Audio || Yes ||
|-
| 2G/3G data || N/A ||
|-
| SMS || N/A ||
|-
| Phone calls || N/A ||
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || N/A ||
|-
| Accelerometer || N/A || Available as input device, needs MCE work
|-
| Proximity sensor || N/A ||
|-
| HDMI-out || Yes ||
|-
| TV-out || Not yet ||
|}
== Installation ==
Images: http://maedevu.maemo.org/images/raspi2/
dd the image to an sd card. Then boot from the sd card. Have a monitor connected to HDMI.
[[Category:Device]]
689b32a7681ad4e9d9e5304c9d6cb6b303549d80
A20-OLinuXIno-LIME2
0
63
234
153
2018-06-14T21:25:52Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=OLIMEX
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Notes ==
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 4.15 || Mainline
|-
| Serial || Yes ||
|-
| Charging || N/A ||
|-
| Wireless || N/A ||
|-
| Ethernet || Yes ||
|-
| Mini USB || Yes || OTG
|-
| Keyboard || N/A || USB attached works
|-
| Screen || Yes ||
|-
| 3D Acceleration || WIP || Currently llvmpipe, hopefully soon lima: https://gitlab.freedesktop.org/lima/mesa/wikis/home
|-
| Touchscreen || Yes || (With 4.3" OLIMEX SPI screen, requires additional kernel patches)
|-
| Audio || Untested ||
|-
| 2G/3G data || N/A ||
|-
| SMS || N/A ||
|-
| Phone calls || N/A ||
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || N/A ||
|-
| Accelerometer || N/A ||
|-
| Proximity sensor || N/A ||
|-
| HDMI-out || Yes ||
|-
| TV-out || Not yet ||
|}
== Installation ==
Images: https://maedevu.maemo.org/images/olimex-lime2/
u-boot bootloader is provided for the lime2
* flash it
* dd if=A20-OLinuXino-Lime2_defconfig.bin of=/dev/yoursdcard bs=1024 seek=8 && sync
[[Category:Device]]
1438b90e9989626f076b715564ce722f4c196319
235
234
2018-06-14T21:27:17Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=OLIMEX
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Notes ==
https://www.olimex.com/Products/OLinuXino/A20/A20-OLinuXIno-LIME2/open-source-hardware
Note that they are not particularly usable, as we did not yet enable Mali GPU acceleration, and without touchscreen a mouse is not very usable, as the pointer is not (yet) visible.
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 4.15 || Mainline
|-
| Serial || Yes ||
|-
| Charging || N/A ||
|-
| Wireless || N/A ||
|-
| Ethernet || Yes ||
|-
| Mini USB || Yes || OTG
|-
| Keyboard || N/A || USB attached works
|-
| Screen || Yes ||
|-
| 3D Acceleration || WIP || Currently llvmpipe, hopefully soon lima: https://gitlab.freedesktop.org/lima/mesa/wikis/home
|-
| Touchscreen || Yes || (With 4.3" OLIMEX SPI screen, requires additional kernel patches)
|-
| Audio || Untested ||
|-
| 2G/3G data || N/A ||
|-
| SMS || N/A ||
|-
| Phone calls || N/A ||
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || N/A ||
|-
| Accelerometer || N/A ||
|-
| Proximity sensor || N/A ||
|-
| HDMI-out || Yes ||
|-
| TV-out || Not yet ||
|}
== Installation ==
Images: https://maedevu.maemo.org/images/olimex-lime2/
u-boot bootloader is provided for the lime2
* flash it
* dd if=A20-OLinuXino-Lime2_defconfig.bin of=/dev/yoursdcard bs=1024 seek=8 && sync
[[Category:Device]]
5ac6767fa3eccc526e0365061dec24d838347d3a
Status
0
64
237
167
2018-06-18T13:51:21Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
TODO:
* Briefly list devices that are well supported
* List OS features (UI, connectivity, core programs, missing core programs)
The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available.
{| class="wikitable"
! Feature
! Leste software
! Status
! Notes
|-
| Desktop environment || OK || hildon || hildon home, hildon desktop, ...
|-
| Terminal || OK || osso-xterm || Scrolling doesn't work currently
|-
| Virtual keyboard || WIP || Hildon Input Methods|| Currently being worked on
|-
| Wireless || WIP || icd2 + connui || Works mostly, needs better integration/testing with dbus/initsystem/packages ; https://github.com/maemo-leste/icd2
|-
| Bluetooth || No(t yet) || ? ||
|-
| Browser || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently
|-
| Audio || WIP || ? || Basic audio/sounds work (like, notifications, charging notification, etc)
|-
| USB OTG / Charging || WIP || hildon-status-bar-usb, ke-recv || WIP, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/ke-recv-extra/ ; ke-recv does a lot more than just managing usb otg/slave gadget status
|-
| LED control || No(t yet || mce || Currently, this doesn't work yet, since the interface that was used by mce doesn't exist at all (afaik)
|}
7cb28da48065831b5b1230f37b39ce171dbf230e
238
237
2018-06-18T13:53:12Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
TODO:
* Briefly list devices that are well supported
* List OS features (UI, connectivity, core programs, missing core programs)
The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available.
{| class="wikitable"
! Feature
! Status
! Leste software
! Notes
|-
| Desktop environment || OK || hildon || hildon home, hildon desktop, ...
|-
| Terminal || OK || osso-xterm || Scrolling doesn't work currently
|-
| Virtual keyboard || WIP || Hildon Input Methods|| Currently being worked on
|-
| Wireless || WIP || icd2 + connui || Works mostly, needs better integration/testing with dbus/initsystem/packages ; https://github.com/maemo-leste/icd2
|-
| Bluetooth || No(t yet) || ? ||
|-
| Browser || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently
|-
| Audio || WIP || ? || Basic audio/sounds work (like, notifications, charging notification, etc)
|-
| USB OTG / Charging || WIP || hildon-status-bar-usb, ke-recv || WIP, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/ke-recv-extra/ ; ke-recv does a lot more than just managing usb otg/slave gadget status
|-
| LED control || No(t yet || mce || Currently, this doesn't work yet, since the interface that was used by mce doesn't exist at all (afaik)
|}
5b4906b9816070e8fdc761787a5a8d721b8aa37e
239
238
2018-06-18T14:14:02Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
TODO:
* Briefly list devices that are well supported
* List OS features (UI, connectivity, core programs, missing core programs)
The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device
{| class="wikitable"
! Feature
! Status
! Leste software
! Notes
|-
| Desktop environment || OK || hildon || hildon home, hildon desktop, .
|-
| Terminal || OK || osso-xterm || Scrolling doesn't work currently
|-
| Virtual keyboard || WIP || Hildon Input Methods|| Currently being worked on
|-
| Wireless || WIP || icd2 + connui + libicd-network-wpasupplicant || Works mostly, needs better integration/testing with dbus/initsystem/packages ; https://github.com/maemo-leste/icd2
|-
| Bluetooth || No(t yet) || ? ||
|-
| Browser || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently
|-
| Audio || WIP || ? || Basic audio/sounds work (like, notifications, charging notification, etc)
|-
| Battery / charging || OK || status-area-applet-battery, mce, upower ||
|-
| USB OTG || WIP || hildon-status-bar-usb, ke-recv || WIP, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/ke-recv-extra/ ; ke-recv does a lot more than just managing usb otg/slave gadget status
|-
| LED control || No(t yet || mce || Currently, this doesn't work yet, since the interface that was used by mce doesn't exist at all (afaik)
|-
| 2G/3G/4G data || No(t yet || icd2 + libicd-network-ofono(?) || There is no libicd-network-ofono yet, and no connui plugin for gprs/umts/lte data
|-
| GPS || No(t yet || gpsd or liblocation/location-daemon || Fremantle location services are closed
|-
| SMS || No(t yet || ofono, ? || No UI
|-
| Phone || No(t yet || ofono, ? || No UI, audio routing
|}
7c23c0fd61e4fb34c74772f80c6478154b067246
240
239
2018-06-18T14:15:30Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
TODO:
* Briefly list devices that are well supported
* List OS features (UI, connectivity, core programs, missing core programs)
The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device
{| class="wikitable"
! Feature
! Status
! Leste software
! Notes
|-
| Desktop environment || OK || hildon || hildon home, hildon desktop, .
|-
| Terminal || OK || osso-xterm || Scrolling doesn't work currently
|-
| Virtual keyboard || WIP || Hildon Input Methods|| Currently being worked on
|-
| Wireless || WIP || icd2 + connui + libicd-network-wpasupplicant || Works mostly, needs better integration/testing with dbus/initsystem/packages ; https://github.com/maemo-leste/bugtracker/milestone/7
|-
| Bluetooth || No(t yet) || ? ||
|-
| Browser || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently
|-
| Audio || WIP || ? || Basic audio/sounds work (like, notifications, charging notification, etc)
|-
| Battery / charging || OK || status-area-applet-battery, mce, upower ||
|-
| USB OTG || WIP || hildon-status-bar-usb, ke-recv || WIP, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/ke-recv-extra/ ; ke-recv does a lot more than just managing usb otg/slave gadget status
|-
| LED control || No(t yet || mce || Currently, this doesn't work yet, since the interface that was used by mce doesn't exist at all (afaik)
|-
| 2G/3G/4G data || No(t yet || icd2 + libicd-network-ofono(?) || There is no libicd-network-ofono yet, and no connui plugin for gprs/umts/lte data
|-
| GPS || No(t yet || gpsd or liblocation/location-daemon || Fremantle location services are closed
|-
| SMS || No(t yet || ofono, ? || No UI
|-
| Phone || No(t yet || ofono, ? || No UI, audio routing
|}
5991d010a2705a6f9426af640307019fca345827
241
240
2018-06-18T14:31:33Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
TODO:
* Briefly list devices that are well supported
* List OS features (UI, connectivity, core programs, missing core programs)
The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device
{| class="wikitable"
! Feature
! Status
! Leste software
! Notes
|-
| Desktop environment || OK || hildon || hildon home, hildon desktop, .
|-
| Terminal || OK || osso-xterm || Scrolling doesn't work currently
|-
| Virtual keyboard || WIP || Hildon Input Methods|| Currently being worked on
|-
| Wireless || WIP || icd2 + connui + libicd-network-wpasupplicant || Works mostly, needs better integration/testing with dbus/initsystem/packages ; https://github.com/maemo-leste/bugtracker/milestone/7
|-
| Bluetooth || No(t yet) || ? ||
|-
| Browser || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently
|-
| Audio || WIP || ? || Basic audio/sounds work (like, notifications, charging notification, etc)
|-
| Battery / charging || OK || status-area-applet-battery, mce, upower ||
|-
| USB OTG || WIP || hildon-status-bar-usb, ke-recv || WIP, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/ke-recv-extra/ ; ke-recv does a lot more than just managing usb otg/slave gadget status
|-
| LED control || No(t yet() || mce || Currently, this doesn't work yet, since the interface that was used by mce doesn't exist at all (afaik)
|-
| 2G/3G/4G data || No(t yet) || icd2 + libicd-network-ofono(?) || There is no libicd-network-ofono yet, and no connui plugin for gprs/umts/lte data
|-
| GPS || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed
|-
| SMS || No(t yet) || ofono, ? || No UI
|-
| Phone || No(t yet) || ofono, ? || No UI, audio routing
|}
0aa0924d9b6dd985aa4e7907c7de07c5f170a49a
242
241
2018-06-18T16:53:25Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
TODO:
* Briefly list devices that are well supported
* List OS features (UI, connectivity, core programs, missing core programs)
The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device
{| class="wikitable"
! Feature
! Status
! Leste software
! Notes
|-
| Desktop environment || OK || hildon || hildon home, hildon desktop, .
|-
| Terminal || OK || osso-xterm || Scrolling doesn't work currently
|-
| Virtual keyboard || WIP || Hildon Input Methods|| Currently being worked on
|-
| Wireless || WIP || icd2 + connui + libicd-network-wpasupplicant || Works mostly, needs better integration/testing with dbus/initsystem/packages ; https://github.com/maemo-leste/bugtracker/milestone/7
|-
| Bluetooth || No(t yet) || ? ||
|-
| Browser || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently
|-
| Audio || WIP || ? || Basic audio/sounds work (like, notifications, charging notification, etc)
|-
| Battery / charging || OK || status-area-applet-battery, mce, upower ||
|-
| USB OTG || WIP || hildon-status-bar-usb, ke-recv || WIP, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/ke-recv-extra/ ; ke-recv does a lot more than just managing usb otg/slave gadget status
|-
| LED control || No(t yet) || mce || Currently, this doesn't work yet, since the interface that was used by mce doesn't exist at all (afaik)
|-
| 2G/3G/4G data || No(t yet) || icd2 + libicd-network-ofono(?) || There is no libicd-network-ofono yet, and no connui plugin for gprs/umts/lte data
|-
| GPS || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed
|-
| SMS || No(t yet) || ofono, ? || No UI
|-
| Phone || No(t yet) || ofono, ? || No UI, audio routing
|}
24c53b3dc5f49508e5d3992253b6d114cb05f6f3
243
242
2018-06-18T16:54:43Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
For Device specific status pages, see See [[:Category:Device]]
The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device
{| class="wikitable"
! Feature
! Status
! Leste software
! Notes
|-
| Desktop environment || OK || hildon || hildon home, hildon desktop, .
|-
| Terminal || OK || osso-xterm || Scrolling doesn't work currently
|-
| Virtual keyboard || WIP || Hildon Input Methods|| Currently being worked on
|-
| Wireless || WIP || icd2 + connui + libicd-network-wpasupplicant || Works mostly, needs better integration/testing with dbus/initsystem/packages ; https://github.com/maemo-leste/bugtracker/milestone/7
|-
| Bluetooth || No(t yet) || ? ||
|-
| Browser || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently
|-
| Audio || WIP || ? || Basic audio/sounds work (like, notifications, charging notification, etc)
|-
| Battery / charging || OK || status-area-applet-battery, mce, upower ||
|-
| USB OTG || WIP || hildon-status-bar-usb, ke-recv || WIP, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/ke-recv-extra/ ; ke-recv does a lot more than just managing usb otg/slave gadget status
|-
| LED control || No(t yet) || mce || Currently, this doesn't work yet, since the interface that was used by mce doesn't exist at all (afaik)
|-
| 2G/3G/4G data || No(t yet) || icd2 + libicd-network-ofono(?) || There is no libicd-network-ofono yet, and no connui plugin for gprs/umts/lte data
|-
| GPS || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed
|-
| SMS || No(t yet) || ofono, ? || No UI
|-
| Phone || No(t yet) || ofono, ? || No UI, audio routing
|}
e0ac8a038e0edd2dc148fae67e57e0d12699bfc7
Nexus 5
0
70
246
2018-07-04T17:51:48Z
Wizzup
4
Created page with "{{Stub}} {{Infobox Device |image= |manufacturer=LG |codename=Hammerhead |dimensions= |release_date= |soc= |dram= |power= |lcd= |video= |audio= |network= |storage= |usb=Micro..."
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=LG
|codename=Hammerhead
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
== Notes ==
https://github.com/flto/linux/wiki/hammerhead-upstream
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || ? || ?
|-
| Serial || ? ||
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| (Micro USB) || ? ||
|-
| Keyboard || N/A ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || ? ||
|-
| Touchscreen || Yes ||
|-
| Audio || ? ||
|-
| 2G/3G data || ? ||
|-
| SMS || ? ||
|-
| Phone calls || ? ||
|-
| FM Transmitter || ? ||
|-
| FM Receiver || ? ||
|-
| Accelerometer || ? ||
|-
| Proximity sensor || ? ||
|-
| HDMI-out || ? ||
|-
| TV-out || N/A ||
|-
| GPS || ? ||
|}
== Installation ==
There are no images available at this time.
1. Boot to fastmode - power of the device, and press and hold power, volume up and volume down. After a few second, you will see the fastboot menu.
2. Unlock: sudo fastboot oem unlock
3. Boot (test) image: sudo fastboot boot test.img
=== Serial ===
[[Category:Device]]
29ff59243c2f1bdde248c3c9e8209d8e2d20e046
279
246
2018-11-06T18:27:12Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=LG
|codename=Hammerhead
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
== Notes ==
See [[Nexus 5/WIP]]
https://github.com/flto/linux/wiki/hammerhead-upstream
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || ? || ?
|-
| Serial || ? ||
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| (Micro USB) || ? ||
|-
| Keyboard || N/A ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || ? ||
|-
| Touchscreen || Yes ||
|-
| Audio || ? ||
|-
| 2G/3G data || ? ||
|-
| SMS || ? ||
|-
| Phone calls || ? ||
|-
| FM Transmitter || ? ||
|-
| FM Receiver || ? ||
|-
| Accelerometer || ? ||
|-
| Proximity sensor || ? ||
|-
| HDMI-out || ? ||
|-
| TV-out || N/A ||
|-
| GPS || ? ||
|}
== Installation ==
There are no images available at this time.
1. Boot to fastmode - power of the device, and press and hold power, volume up and volume down. After a few second, you will see the fastboot menu.
2. Unlock: sudo fastboot oem unlock
3. Boot (test) image: sudo fastboot boot test.img
=== Serial ===
[[Category:Device]]
d54ca279e668f63ec21f3979ac1464584b3a8297
Virtual Machine
0
60
247
224
2018-07-08T22:28:53Z
Pavel
9
/* Installation */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Generic
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
Generic virtual machine target. This is particularly useful when doing development and testing.
== Installation ==
https://maedevu.maemo.org/images/virtual-machines/
There are three different types of images: VirtualBox (.box), QEMU (.qcow2) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration.
Converting the qcow2 image to raw allows it to be used on real hardware.
[[Category:Device]]
9a4c58ea36ba0289bf09d50bbe1f3c7bf921620f
248
247
2018-07-08T22:30:21Z
Pavel
9
/* Installation */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Generic
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
Generic virtual machine target. This is particularly useful when doing development and testing.
== Installation ==
https://maedevu.maemo.org/images/virtual-machines/
There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration.
Converting the qcow2 image to raw allows it to be used on real hardware.
== Running on QEMU ==
To run image on qemu, you can do:
xz -d maemo-leste-1.0-amd64-virtual-20180425.vdi.xz
qemu-system-x86_64 maemo-leste-1.0-amd64-virtual-20180425.vdi
[[Category:Device]]
73886429677975b7034176555f55a78e51d96aff
249
248
2018-07-09T10:09:34Z
Pavel
9
/* Running on QEMU */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Generic
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
Generic virtual machine target. This is particularly useful when doing development and testing.
== Installation ==
https://maedevu.maemo.org/images/virtual-machines/
There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration.
Converting the qcow2 image to raw allows it to be used on real hardware.
== Running on QEMU ==
To run image on qemu, you can do:
xz -d maemo-leste-1.0-amd64-virtual-20180425.vdi.xz
qemu-system-x86_64 maemo-leste-1.0-amd64-virtual-20180425.vdi
Note that unaccelerated qemu is too slow to run maemo leste in an useful way.
== Running on real hardware ==
xz -d maemo-leste-1.0-amd64-virtual-20180425.qcow2.xz
qemu-img convert -f qcow2 -O raw maemo-leste-1.0-amd64-virtual-20180425.qcow2 delme.img
Now you can copy delme.img ... to a spare harddrive? I tried with USB stick and could not get that to work.
[[Category:Device]]
daf8c064311537754dae6e6037f4ee249f245ad7
258
249
2018-10-05T02:54:28Z
Spinal
13
Add VirtualBox instructions
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Generic
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
Generic virtual machine target. This is particularly useful when doing development and testing.
== Installation ==
https://maedevu.maemo.org/images/virtual-machines/
There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration.
Converting the qcow2 image to raw allows it to be used on real hardware.
== Running on VirtualBox ==
The image is archived, we need to unpack it first:
mkdir -p ~/VirtualBox\ VMs/maemo-leste
tar xzf maemo-leste-1.0-amd64-virtual-20180425.box -C ~/VirtualBox\ VMs/maemo-leste
Start VirtualBox, File -> Import Appliance... -> VirtualBox VMs/maemo-leste/box.ovf -> Import. The virtual machine name is devuan-ascii-prevagrant.
Unpacked files may now be removed:
rm -r ~/VirtualBox\ VMs/maemo-leste
== Running on QEMU ==
To run image on qemu, you can do:
xz -d maemo-leste-1.0-amd64-virtual-20180425.vdi.xz
qemu-system-x86_64 maemo-leste-1.0-amd64-virtual-20180425.vdi
Note that unaccelerated qemu is too slow to run maemo leste in an useful way.
== Running on real hardware ==
xz -d maemo-leste-1.0-amd64-virtual-20180425.qcow2.xz
qemu-img convert -f qcow2 -O raw maemo-leste-1.0-amd64-virtual-20180425.qcow2 delme.img
Now you can copy delme.img ... to a spare harddrive? I tried with USB stick and could not get that to work.
[[Category:Device]]
881f143bdc90f9c018623658ffce47a29f63432f
259
258
2018-10-05T03:28:59Z
Spinal
13
/* Running on VirtualBox */ VirtualBox first run: add ssh host keys
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Generic
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
Generic virtual machine target. This is particularly useful when doing development and testing.
== Installation ==
https://maedevu.maemo.org/images/virtual-machines/
There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration.
Converting the qcow2 image to raw allows it to be used on real hardware.
== Running on VirtualBox ==
The image is archived, we need to unpack it first:
mkdir -p ~/VirtualBox\ VMs/maemo-leste
tar xzf maemo-leste-1.0-amd64-virtual-20180425.box -C ~/VirtualBox\ VMs/maemo-leste
Start VirtualBox, File -> Import Appliance... -> VirtualBox VMs/maemo-leste/box.ovf -> Import. The virtual machine name is devuan-ascii-prevagrant.
Unpacked files may now be removed:
rm -r ~/VirtualBox\ VMs/maemo-leste
On the first run you may want to generate ssh host keys to be able to login remotely. To do so open the "X Terminal" application and run:
sudo su -
dpkg-reconfigure openssh-server
== Running on QEMU ==
To run image on qemu, you can do:
xz -d maemo-leste-1.0-amd64-virtual-20180425.vdi.xz
qemu-system-x86_64 maemo-leste-1.0-amd64-virtual-20180425.vdi
Note that unaccelerated qemu is too slow to run maemo leste in an useful way.
== Running on real hardware ==
xz -d maemo-leste-1.0-amd64-virtual-20180425.qcow2.xz
qemu-img convert -f qcow2 -O raw maemo-leste-1.0-amd64-virtual-20180425.qcow2 delme.img
Now you can copy delme.img ... to a spare harddrive? I tried with USB stick and could not get that to work.
[[Category:Device]]
5c3f9e8649f1287ebfa4ef3a8388352491d6f820
260
259
2018-10-05T03:55:38Z
Spinal
13
/* Running on VirtualBox */ Update the system
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Generic
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
Generic virtual machine target. This is particularly useful when doing development and testing.
== Installation ==
https://maedevu.maemo.org/images/virtual-machines/
There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration.
Converting the qcow2 image to raw allows it to be used on real hardware.
== Running on VirtualBox ==
The image is archived, we need to unpack it first:
mkdir -p ~/VirtualBox\ VMs/maemo-leste
tar xzf maemo-leste-1.0-amd64-virtual-20180425.box -C ~/VirtualBox\ VMs/maemo-leste
Start VirtualBox, File -> Import Appliance... -> VirtualBox VMs/maemo-leste/box.ovf -> Import. The virtual machine name is devuan-ascii-prevagrant.
Unpacked files may now be removed:
rm -r ~/VirtualBox\ VMs/maemo-leste
On the first run you may want to generate ssh host keys and set the timezone. To do so open the "X Terminal" application and run:
sudo su -
dpkg-reconfigure openssh-server
dpkg-reconfigure tzdata
Make the system up-to-date:
apt-get update
apt-get upgrade
apt-get install linux-image-amd64
reboot
== Running on QEMU ==
To run image on qemu, you can do:
xz -d maemo-leste-1.0-amd64-virtual-20180425.vdi.xz
qemu-system-x86_64 maemo-leste-1.0-amd64-virtual-20180425.vdi
Note that unaccelerated qemu is too slow to run maemo leste in an useful way.
== Running on real hardware ==
xz -d maemo-leste-1.0-amd64-virtual-20180425.qcow2.xz
qemu-img convert -f qcow2 -O raw maemo-leste-1.0-amd64-virtual-20180425.qcow2 delme.img
Now you can copy delme.img ... to a spare harddrive? I tried with USB stick and could not get that to work.
[[Category:Device]]
b6052d9e324b9a4acfcac735b342aef321f687aa
261
260
2018-10-05T03:57:58Z
Spinal
13
Move common instructions from VirtualBox to a separate section
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Generic
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
Generic virtual machine target. This is particularly useful when doing development and testing.
== Installation ==
https://maedevu.maemo.org/images/virtual-machines/
There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration.
Converting the qcow2 image to raw allows it to be used on real hardware.
== Running on VirtualBox ==
The image is archived, we need to unpack it first:
mkdir -p ~/VirtualBox\ VMs/maemo-leste
tar xzf maemo-leste-1.0-amd64-virtual-20180425.box -C ~/VirtualBox\ VMs/maemo-leste
Start VirtualBox, File -> Import Appliance... -> VirtualBox VMs/maemo-leste/box.ovf -> Import. The virtual machine name is devuan-ascii-prevagrant.
Unpacked files may now be removed:
rm -r ~/VirtualBox\ VMs/maemo-leste
== Running on QEMU ==
To run image on qemu, you can do:
xz -d maemo-leste-1.0-amd64-virtual-20180425.vdi.xz
qemu-system-x86_64 maemo-leste-1.0-amd64-virtual-20180425.vdi
Note that unaccelerated qemu is too slow to run maemo leste in an useful way.
== Running on real hardware ==
xz -d maemo-leste-1.0-amd64-virtual-20180425.qcow2.xz
qemu-img convert -f qcow2 -O raw maemo-leste-1.0-amd64-virtual-20180425.qcow2 delme.img
Now you can copy delme.img ... to a spare harddrive? I tried with USB stick and could not get that to work.
== Initial configuration ==
On the first run you may want to generate ssh host keys and set the timezone. To do so open the "X Terminal" application and run:
sudo su -
dpkg-reconfigure openssh-server
dpkg-reconfigure tzdata
Make the system up-to-date:
apt-get update
apt-get upgrade
apt-get install linux-image-amd64
reboot
[[Category:Device]]
ed866ab61c9204fecc28ec7d3d4c138bc3eda0c9
262
261
2018-10-05T04:20:55Z
Spinal
13
/* Running on VirtualBox */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Generic
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
Generic virtual machine target. This is particularly useful when doing development and testing.
== Installation ==
https://maedevu.maemo.org/images/virtual-machines/
There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration.
Converting the qcow2 image to raw allows it to be used on real hardware.
== Running on VirtualBox ==
The image is archived, we need to unpack it first:
mkdir -p ~/VirtualBox\ VMs/maemo-leste
tar xzf maemo-leste-1.0-amd64-virtual-20180425.box -C ~/VirtualBox\ VMs/maemo-leste
Start VirtualBox, File -> Import Appliance... -> VirtualBox VMs/maemo-leste/box.ovf -> Import. The virtual machine name is devuan-ascii-prevagrant.
Unpacked files may now be removed:
rm -r ~/VirtualBox\ VMs/maemo-leste
As the memory of virtual machine is limited to 256M some applications will have troubles with it. One example is aptitude. To increase the memory limit you should add the swap partion or change the memory settings in the VirtualBox menu.
== Running on QEMU ==
To run image on qemu, you can do:
xz -d maemo-leste-1.0-amd64-virtual-20180425.vdi.xz
qemu-system-x86_64 maemo-leste-1.0-amd64-virtual-20180425.vdi
Note that unaccelerated qemu is too slow to run maemo leste in an useful way.
== Running on real hardware ==
xz -d maemo-leste-1.0-amd64-virtual-20180425.qcow2.xz
qemu-img convert -f qcow2 -O raw maemo-leste-1.0-amd64-virtual-20180425.qcow2 delme.img
Now you can copy delme.img ... to a spare harddrive? I tried with USB stick and could not get that to work.
== Initial configuration ==
On the first run you may want to generate ssh host keys and set the timezone. To do so open the "X Terminal" application and run:
sudo su -
dpkg-reconfigure openssh-server
dpkg-reconfigure tzdata
Make the system up-to-date:
apt-get update
apt-get upgrade
apt-get install linux-image-amd64
reboot
[[Category:Device]]
b427bacf0ef18a2005c337ff6ba385a048f52d4a
263
262
2018-10-05T04:25:10Z
Spinal
13
Change sections indentation
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Generic
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
Generic virtual machine target. This is particularly useful when doing development and testing.
== Installation ==
https://maedevu.maemo.org/images/virtual-machines/
There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration.
Converting the qcow2 image to raw allows it to be used on real hardware.
=== VirtualBox ===
The image is archived, we need to unpack it first:
mkdir -p ~/VirtualBox\ VMs/maemo-leste
tar xzf maemo-leste-1.0-amd64-virtual-20180425.box -C ~/VirtualBox\ VMs/maemo-leste
Start VirtualBox, File -> Import Appliance... -> VirtualBox VMs/maemo-leste/box.ovf -> Import. The virtual machine name is devuan-ascii-prevagrant.
Unpacked files may now be removed:
rm -r ~/VirtualBox\ VMs/maemo-leste
As the memory of virtual machine is limited to 256M some applications will have troubles with it. One example is aptitude. To increase the memory limit you should add the swap partion or change the memory settings in the VirtualBox menu.
=== QEMU ===
To run image on qemu, you can do:
xz -d maemo-leste-1.0-amd64-virtual-20180425.vdi.xz
qemu-system-x86_64 maemo-leste-1.0-amd64-virtual-20180425.vdi
Note that unaccelerated qemu is too slow to run maemo leste in an useful way.
=== Real hardware ===
xz -d maemo-leste-1.0-amd64-virtual-20180425.qcow2.xz
qemu-img convert -f qcow2 -O raw maemo-leste-1.0-amd64-virtual-20180425.qcow2 delme.img
Now you can copy delme.img ... to a spare harddrive? I tried with USB stick and could not get that to work.
== Initial configuration ==
On the first run you may want to generate ssh host keys and set the timezone. To do so open the "X Terminal" application and run:
sudo su -
dpkg-reconfigure openssh-server
dpkg-reconfigure tzdata
Make the system up-to-date:
apt-get update
apt-get upgrade
apt-get install linux-image-amd64
reboot
[[Category:Device]]
068382b7ffdf0485e749a2c40765c3b430f58912
289
263
2018-11-10T07:24:06Z
Pavel
9
/* VirtualBox */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Generic
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
Generic virtual machine target. This is particularly useful when doing development and testing.
== Installation ==
https://maedevu.maemo.org/images/virtual-machines/
There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration.
Converting the qcow2 image to raw allows it to be used on real hardware.
=== VirtualBox ===
The image is archived, we need to unpack it first:
mkdir -p ~/VirtualBox\ VMs/maemo-leste
tar xzf maemo-leste-1.0-amd64-virtual-20180425.box -C ~/VirtualBox\ VMs/maemo-leste
Start VirtualBox, File -> Import Appliance... -> VirtualBox VMs/maemo-leste/box.ovf -> Import. The virtual machine name is devuan-ascii-prevagrant.
Unpacked files may now be removed:
rm -r ~/VirtualBox\ VMs/maemo-leste
As the memory of virtual machine is limited to 256M some applications will have troubles with it. One example is aptitude. To increase the memory limit you should add the swap partion or change the memory settings in the VirtualBox menu.
For newer versions, .box file is not available. You can still use virtualbox, select "Debian (64-bit)" and 1024MB RAM.
=== QEMU ===
To run image on qemu, you can do:
xz -d maemo-leste-1.0-amd64-virtual-20180425.vdi.xz
qemu-system-x86_64 maemo-leste-1.0-amd64-virtual-20180425.vdi
Note that unaccelerated qemu is too slow to run maemo leste in an useful way.
=== Real hardware ===
xz -d maemo-leste-1.0-amd64-virtual-20180425.qcow2.xz
qemu-img convert -f qcow2 -O raw maemo-leste-1.0-amd64-virtual-20180425.qcow2 delme.img
Now you can copy delme.img ... to a spare harddrive? I tried with USB stick and could not get that to work.
== Initial configuration ==
On the first run you may want to generate ssh host keys and set the timezone. To do so open the "X Terminal" application and run:
sudo su -
dpkg-reconfigure openssh-server
dpkg-reconfigure tzdata
Make the system up-to-date:
apt-get update
apt-get upgrade
apt-get install linux-image-amd64
reboot
[[Category:Device]]
92af5dd8c0cfa6b27ca57b4302dcedf4fe45295e
290
289
2018-11-10T07:26:21Z
Pavel
9
/* Initial configuration */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Generic
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
Generic virtual machine target. This is particularly useful when doing development and testing.
== Installation ==
https://maedevu.maemo.org/images/virtual-machines/
There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration.
Converting the qcow2 image to raw allows it to be used on real hardware.
=== VirtualBox ===
The image is archived, we need to unpack it first:
mkdir -p ~/VirtualBox\ VMs/maemo-leste
tar xzf maemo-leste-1.0-amd64-virtual-20180425.box -C ~/VirtualBox\ VMs/maemo-leste
Start VirtualBox, File -> Import Appliance... -> VirtualBox VMs/maemo-leste/box.ovf -> Import. The virtual machine name is devuan-ascii-prevagrant.
Unpacked files may now be removed:
rm -r ~/VirtualBox\ VMs/maemo-leste
As the memory of virtual machine is limited to 256M some applications will have troubles with it. One example is aptitude. To increase the memory limit you should add the swap partion or change the memory settings in the VirtualBox menu.
For newer versions, .box file is not available. You can still use virtualbox, select "Debian (64-bit)" and 1024MB RAM.
=== QEMU ===
To run image on qemu, you can do:
xz -d maemo-leste-1.0-amd64-virtual-20180425.vdi.xz
qemu-system-x86_64 maemo-leste-1.0-amd64-virtual-20180425.vdi
Note that unaccelerated qemu is too slow to run maemo leste in an useful way.
=== Real hardware ===
xz -d maemo-leste-1.0-amd64-virtual-20180425.qcow2.xz
qemu-img convert -f qcow2 -O raw maemo-leste-1.0-amd64-virtual-20180425.qcow2 delme.img
Now you can copy delme.img ... to a spare harddrive? I tried with USB stick and could not get that to work.
== Initial configuration ==
On the first run you may want to generate ssh host keys and set the timezone. To do so open the "X Terminal" application and run:
sudo su -
dpkg-reconfigure openssh-server
dpkg-reconfigure tzdata
Make the system up-to-date:
apt-get update
apt-get upgrade
apt-get install linux-image-amd64
reboot
To get networking to work (at least in virtualbox), launch a shell and do
sudo ifconfig eth0 up
sudo dhclient eth0
[[Category:Device]]
827c7ee173d7cbdc6576d5155a1779b213c7459f
293
290
2018-11-11T13:36:15Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Generic
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
Generic virtual machine target. This is particularly useful when doing development and testing.
== Installation ==
https://maedevu.maemo.org/images/virtual-machines/
There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration.
Converting the qcow2 image to raw allows it to be used on real hardware.
=== VirtualBox ===
The image is archived, we need to unpack it first:
mkdir -p ~/VirtualBox\ VMs/maemo-leste
tar xzf maemo-leste-1.0-amd64-virtual-20180425.box -C ~/VirtualBox\ VMs/maemo-leste
Start VirtualBox, File -> Import Appliance... -> VirtualBox VMs/maemo-leste/box.ovf -> Import. The virtual machine name is devuan-ascii-prevagrant.
Unpacked files may now be removed:
rm -r ~/VirtualBox\ VMs/maemo-leste
As the memory of virtual machine is limited to 256M some applications will have troubles with it. One example is aptitude. To increase the memory limit you should add the swap partion or change the memory settings in the VirtualBox menu.
For newer versions, .box file is not available. You can still use virtualbox, select "Debian (64-bit)" and 1024MB RAM.
=== QEMU ===
Not all QEMU versions might work, see this issue for a known working version, as well as a working qemu command line: https://github.com/maemo-leste/bugtracker/issues/198
=== Real hardware ===
xz -d maemo-leste-1.0-amd64-virtual-20180425.qcow2.xz
qemu-img convert -f qcow2 -O raw maemo-leste-1.0-amd64-virtual-20180425.qcow2 delme.img
Now you can copy delme.img ... to a spare harddrive? I tried with USB stick and could not get that to work.
== Initial configuration ==
On the first run you may want to generate ssh host keys and set the timezone. To do so open the "X Terminal" application and run:
sudo su -
dpkg-reconfigure openssh-server
dpkg-reconfigure tzdata
Make the system up-to-date:
apt-get update
apt-get upgrade
apt-get install linux-image-amd64
reboot
To get networking to work (at least in virtualbox), launch a shell and do
sudo ifconfig eth0 up
sudo dhclient eth0
[[Category:Device]]
911d8cf1825a5fb518de54ffee0d4ca2bb90ae30
294
293
2018-11-19T23:43:43Z
Spinal
13
/* VirtualBox */ Update instructions
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Generic
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
Generic virtual machine target. This is particularly useful when doing development and testing.
== Installation ==
https://maedevu.maemo.org/images/virtual-machines/
There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration.
Converting the qcow2 image to raw allows it to be used on real hardware.
=== VirtualBox ===
Download latest .vdi.xz image, unpack it with "xz -d" command.
Create new Virtual Machine, select "Debian (64-bit)" and 1024MB RAM. Use the downloaded file as virtual hard disk.
You are done!
=== QEMU ===
Not all QEMU versions might work, see this issue for a known working version, as well as a working qemu command line: https://github.com/maemo-leste/bugtracker/issues/198
=== Real hardware ===
xz -d maemo-leste-1.0-amd64-virtual-20180425.qcow2.xz
qemu-img convert -f qcow2 -O raw maemo-leste-1.0-amd64-virtual-20180425.qcow2 delme.img
Now you can copy delme.img ... to a spare harddrive? I tried with USB stick and could not get that to work.
== Initial configuration ==
On the first run you may want to generate ssh host keys and set the timezone. To do so open the "X Terminal" application and run:
sudo su -
dpkg-reconfigure openssh-server
dpkg-reconfigure tzdata
Make the system up-to-date:
apt-get update
apt-get upgrade
apt-get install linux-image-amd64
reboot
To get networking to work (at least in virtualbox), launch a shell and do
sudo ifconfig eth0 up
sudo dhclient eth0
[[Category:Device]]
81702e2f882fb3f4e1d891905eef08474dc3feca
Status
0
64
250
243
2018-08-27T15:58:54Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
For Device specific status pages, see See [[:Category:Device]]
The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device
{| class="wikitable"
! Feature
! Status
! Leste software
! Notes
|-
| Desktop environment || OK || hildon || hildon home, hildon desktop, .
|-
| Terminal || OK || osso-xterm || Scrolling doesn't work currently
|-
| Virtual keyboard || OK || hildon-input-meta || Should work on N900; other devices with some work (requires additional files not yet packaged)
|-
| Wireless || OK || icd2 + connui + libicd-network-wpasupplicant || Should work out of the box on N900. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7
|-
| Bluetooth || No(t yet) || ? ||
|-
| Browser || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently
|-
| Audio || WIP || ? || Basic audio/sounds work (like, notifications, charging notification, etc)
|-
| Battery / charging || OK || status-area-applet-battery, mce, upower ||
|-
| USB OTG || WIP || hildon-status-bar-usb, ke-recv || WIP, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/ke-recv-extra/ ; ke-recv does a lot more than just managing usb otg/slave gadget status
|-
| LED control || No(t yet) || mce || Currently, this doesn't work yet, since the interface that was used by mce doesn't exist at all (afaik)
|-
| 2G/3G/4G data || No(t yet) || icd2 + libicd-network-ofono(?) || There is no libicd-network-ofono yet, and no connui plugin for gprs/umts/lte data
|-
| GPS || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed
|-
| SMS || No(t yet) || ofono, ? || No UI
|-
| Phone || No(t yet) || ofono, ? || No UI, audio routing
|}
86d8deafaeb9ee163ea074caa9745aa168cb18fb
255
250
2018-09-13T21:39:43Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
For Device specific status pages, see See [[:Category:Device]]
The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device
{| class="wikitable"
! Feature
! Status
! Leste software
! Notes
|-
| Desktop environment || OK || hildon || hildon home, hildon desktop, .
|-
| Terminal || OK || osso-xterm || Scrolling doesn't work currently
|-
| Virtual keyboard || OK || hildon-input-meta || Should work on N900; other devices with some work (requires additional files not yet packaged)
|-
| Wireless || OK || icd2 + connui + libicd-network-wpasupplicant || Should work out of the box on N900. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7
|-
| Bluetooth || No(t yet) || ? ||
|-
| Browser || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently
|-
| Audio || WIP || ? || Basic audio/sounds work (like, notifications, charging notification, etc)
|-
| Battery / charging || OK || status-area-applet-battery, mce, upower ||
|-
| USB OTG || WIP || hildon-status-bar-usb, ke-recv || WIP, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv
|-
| LED control || No(t yet) || mce || Currently, this doesn't work yet
|-
| 2G/3G/4G data || No(t yet) || icd2 + libicd-network-ofono(?) || There is no libicd-network-ofono yet, and no connui plugin for gprs/umts/lte data
|-
| GPS || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed
|-
| SMS || No(t yet) || ofono, ? || No UI
|-
| Phone || No(t yet) || ofono, ? || No UI, audio routing
|}
c67dfb0c0f5da89a5acdc784d120fcb77e26ee3a
257
255
2018-09-20T14:39:16Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
For Device specific status pages, see See [[:Category:Device]]
The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device
{| class="wikitable"
! Feature
! Status
! Leste software
! Notes
|-
| Desktop environment || OK || hildon || hildon home, hildon desktop, .
|-
| Terminal || OK || osso-xterm || Scrolling doesn't work currently
|-
| Virtual keyboard || OK || hildon-input-meta || Should work on N900; other devices with some work (requires additional files not yet packaged)
|-
| Wireless || OK || icd2 + connui + libicd-network-wpasupplicant || Should work out of the box on N900. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7
|-
| Bluetooth || No(t yet) || ? ||
|-
| Browser || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently
|-
| Audio || WIP || ? || Basic audio/sounds work (like, notifications, charging notification, etc)
|-
| Battery / charging || OK || status-area-applet-battery, mce, upower ||
|-
| USB Periphal || WIP || hildon-status-bar-usb, ke-recv || Basic support in place for N900, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv
|-
| LED control || No(t yet) || mce || Currently, this doesn't work yet
|-
| 2G/3G/4G data || No(t yet) || icd2 + libicd-network-ofono(?) || There is no libicd-network-ofono yet, and no connui plugin for gprs/umts/lte data
|-
| GPS || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed
|-
| SMS || No(t yet) || ofono, ? || No UI
|-
| Phone || No(t yet) || ofono, ? || No UI, audio routing
|}
d8e6125fa5dc1c9650a18dff0914b3ae2a40c0e9
264
257
2018-10-13T10:53:37Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
For Device specific status pages, see See [[:Category:Device]]
The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device
{| class="wikitable"
! Feature
! Status
! Leste software
! Notes
|-
| Desktop environment || OK || hildon || hildon home, hildon desktop, .
|-
| Terminal || OK || osso-xterm || Scrolling doesn't work currently
|-
| Virtual keyboard || OK || hildon-input-meta || Should work on N900; other devices with some work (requires additional files not yet packaged)
|-
| Wireless || OK || icd2 + connui + libicd-network-wpasupplicant || Should work out of the box on N900. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7
|-
| Bluetooth || No(t yet) || ? ||
|-
| Browser || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently
|-
| Audio || WIP || ? || Basic audio/sounds work (like, notifications, charging notification, etc)
|-
| Battery / charging || OK || status-area-applet-battery, mce, upower ||
|-
| USB Peripheral || WIP || hildon-status-bar-usb, ke-recv || Basic support in place for N900, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv
|-
| LED control || No(t yet) || mce || Currently, this doesn't work yet
|-
| 2G/3G/4G data || No(t yet) || icd2 + libicd-network-ofono(?) || There is no libicd-network-ofono yet, and no connui plugin for gprs/umts/lte data
|-
| GPS || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed
|-
| SMS || No(t yet) || ofono, ? || No UI
|-
| Phone || No(t yet) || ofono, ? || No UI, audio routing
|}
ad30aa1ce226ed360884cef73543c52ef3d371a8
266
264
2018-10-14T21:15:55Z
Spinal
13
Terminal: scrolling is fixed
wikitext
text/x-wiki
{{Stub}}
For Device specific status pages, see See [[:Category:Device]]
The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device
{| class="wikitable"
! Feature
! Status
! Leste software
! Notes
|-
| Desktop environment || OK || hildon || hildon home, hildon desktop, .
|-
| Terminal || OK || osso-xterm ||
|-
| Virtual keyboard || OK || hildon-input-meta || Should work on N900; other devices with some work (requires additional files not yet packaged)
|-
| Wireless || OK || icd2 + connui + libicd-network-wpasupplicant || Should work out of the box on N900. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7
|-
| Bluetooth || No(t yet) || ? ||
|-
| Browser || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently
|-
| Audio || WIP || ? || Basic audio/sounds work (like, notifications, charging notification, etc)
|-
| Battery / charging || OK || status-area-applet-battery, mce, upower ||
|-
| USB Peripheral || WIP || hildon-status-bar-usb, ke-recv || Basic support in place for N900, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv
|-
| LED control || No(t yet) || mce || Currently, this doesn't work yet
|-
| 2G/3G/4G data || No(t yet) || icd2 + libicd-network-ofono(?) || There is no libicd-network-ofono yet, and no connui plugin for gprs/umts/lte data
|-
| GPS || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed
|-
| SMS || No(t yet) || ofono, ? || No UI
|-
| Phone || No(t yet) || ofono, ? || No UI, audio routing
|}
db65c5b862991f121103d37c7f7064fe7c675b96
274
266
2018-11-03T21:53:33Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
For Device specific status pages, see See [[:Category:Device]]
The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device
{| class="wikitable"
! Feature
! Status
! Leste software
! Notes
|-
| Desktop environment || OK || hildon || hildon home, hildon desktop, .
|-
| Terminal || OK || osso-xterm ||
|-
| [[Status/Virtual keyboard]] || OK || hildon-input-meta || Should work on N900; other devices with some work (requires additional files not yet packaged)
|-
| [[Status/Wireless]] || OK || icd2 + connui + libicd-network-wpasupplicant || Should work out of the box on N900. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7
|-
| Bluetooth || No(t yet) || ? ||
|-
| [[Status/Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently
|-
| Audio || WIP || ? || Basic audio/sounds work (like, notifications, charging notification, etc)
|-
| Battery / charging || OK || status-area-applet-battery, mce, upower ||
|-
| [[Status/USB Peripheral]] || WIP || hildon-status-bar-usb, ke-recv || Basic support in place for N900, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv
|-
| LED control || No(t yet) || mce || Currently, this doesn't work yet
|-
| 2G/3G/4G data || No(t yet) || icd2 + libicd-network-ofono(?) || There is no libicd-network-ofono yet, and no connui plugin for gprs/umts/lte data
|-
| [[Status/GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed
|-
| [[Status/SMS]] || No(t yet) || ofono, ? || No UI
|-
| Phone || No(t yet) || ofono, ? || No UI, audio routing
|}
cb18e0f75132370df9d061f0baabf9739cc671c2
275
274
2018-11-03T21:56:16Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
For Device specific status pages, see See [[:Category:Device]]
The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device
{| class="wikitable"
! Feature
! Status
! Leste software
! Notes
|-
| Desktop environment || OK || hildon || hildon home, hildon desktop, .
|-
| Terminal || OK || osso-xterm ||
|-
| [[Status/VirtualKeyboard|Virtual keyboard]] || OK || hildon-input-meta || Should work on N900; other devices with some work (requires additional files not yet packaged)
|-
| [[Status/Wireless|Wireless]] || OK || icd2 + connui + libicd-network-wpasupplicant || Should work out of the box on N900. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7
|-
| Bluetooth || No(t yet) || ? ||
|-
| [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently
|-
| Audio || WIP || ? || Basic audio/sounds work (like, notifications, charging notification, etc)
|-
| Battery / charging || OK || status-area-applet-battery, mce, upower ||
|-
| [[Status/USB Peripheral|USB Peripheral]] || WIP || hildon-status-bar-usb, ke-recv || Basic support in place for N900, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv
|-
| LED control || No(t yet) || mce || Currently, this doesn't work yet
|-
| 2G/3G/4G data || No(t yet) || icd2 + libicd-network-ofono(?) || There is no libicd-network-ofono yet, and no connui plugin for gprs/umts/lte data
|-
| [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed
|-
| [[Status/SMS|SMS]] || No(t yet) || ofono, ? || No UI
|-
| Phone || No(t yet) || ofono, ? || No UI, audio routing
|}
752ad5c4d2d8a12965b14b34c28c6387c1fd248c
280
275
2018-11-07T09:48:07Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
For Device specific status pages, see See [[:Category:Device]]
The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device
{| class="wikitable"
! Feature
! Status
! Leste software
! Notes
|-
| Desktop environment || OK || hildon || hildon home, hildon desktop, .
|-
| Terminal || OK || osso-xterm ||
|-
| [[Status/VirtualKeyboard|Virtual keyboard]] || OK || hildon-input-meta || Should work on N900; other devices with some work (requires additional files not yet packaged)
|-
| [[Status/Wireless|Wireless]] || OK || icd2 + connui + libicd-network-wpasupplicant || Should work out of the box on N900. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7
|-
| Bluetooth || No(t yet) || ? ||
|-
| [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently
|-
| Audio || WIP || ? || Basic audio/sounds work (like, notifications, charging notification, etc)
|-
| Battery / charging || OK || status-area-applet-battery, mce, upower ||
|-
| [[Status/USB Peripheral|USB Peripheral]] || WIP || hildon-status-bar-usb, ke-recv || Basic support in place for N900, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv
|-
| LED control || No(t yet) || mce || Currently, this doesn't work yet
|-
| [[Status/Mobile Data|Mobile data]] || No(t yet) || icd2 + libicd-network-ofono(?) || There is no libicd-network-ofono yet, and no connui plugin for gprs/umts/lte data
|-
| [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed
|-
| [[Status/SMS|SMS]] || No(t yet) || ofono, ? || No UI
|-
| Phone || No(t yet) || ofono, ? || No UI, audio routing
|}
f6f482f9cedc4214652d1394f0f0d4f80d9941aa
281
280
2018-11-07T09:49:46Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
For Device specific status pages, see See [[:Category:Device]]
The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device
{| class="wikitable"
! Feature
! Status
! Leste software
! Notes
|-
| Desktop environment || OK || hildon || hildon home, hildon desktop, .
|-
| Terminal || OK || osso-xterm ||
|-
| [[Status/VirtualKeyboard|Virtual keyboard]] || OK || hildon-input-meta || Should work on N900; other devices with some work (requires additional files not yet packaged)
|-
| [[Status/Wireless|Wireless]] || OK || icd2 + connui + libicd-network-wpasupplicant || Should work out of the box on N900. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7
|-
| Bluetooth || No(t yet) || ? ||
|-
| [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently
|-
| Audio || WIP || ? || Basic audio/sounds work (like, notifications, charging notification, etc)
|-
| Battery / charging || OK || status-area-applet-battery, mce, upower ||
|-
| [[Status/USB Peripheral|USB Peripheral]] || WIP || hildon-status-bar-usb, ke-recv || Basic support in place for N900, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv
|-
| LED control || No(t yet) || mce || Currently, this doesn't work yet
|-
| [[Status/Mobile Data|Mobile Data]] || No(t yet) || icd2 + libicd-network-ofono(?) || There is no libicd-network-ofono yet, and no connui plugin for gprs/umts/lte data
|-
| [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed
|-
| [[Status/SMS|SMS]] || No(t yet) || ofono, ? || No UI
|-
| [[Status/Phone Calls|Phone Calls]] || No(t yet) || ofono, ? || No UI, audio routing
|}
3bb97464dc692bc60566bfb9818a6d2cc8e32dd7
285
281
2018-11-07T10:15:57Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
For Device specific status pages, see See [[:Category:Device]]
The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device
{| class="wikitable"
! Feature
! Status
! Leste software
! Notes
|-
| Desktop environment || OK || hildon || hildon home, hildon desktop, .
|-
| Terminal || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] ||
|-
| [[Status/VirtualKeyboard|Virtual keyboard]] || OK || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work on N900; other devices with some work (requires additional files not yet packaged)
|-
| [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Should work out of the box on N900. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7
|-
| Bluetooth || No(t yet) || ? ||
|-
| [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently
|-
| Audio || WIP || ? || Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio
|-
| Battery / charging || OK || status-area-applet-battery, mce, upower ||
|-
| [[Status/USB Peripheral|USB Peripheral]] || WIP || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv
|-
| LED control || No(t yet) || mce || Currently, this doesn't work yet
|-
| [[Status/Mobile Data|Mobile Data]] || No(t yet) || libicd-network-ofono(?) || There is no libicd-network-ofono yet, and no connui plugin for gprs/umts/lte data
|-
| [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed
|-
| [[Status/SMS|SMS]] || No(t yet) || ofono, ? || No UI
|-
| [[Status/Phone Calls|Phone Calls]] || No(t yet) || ofono, ? || No UI, audio routing
|}
37cc062d94648ba764fd9ad951961c966112af9a
287
285
2018-11-07T10:19:31Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
For Device specific status pages, see See [[:Category:Device]]
The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device
{| class="wikitable"
! Feature
! Status
! Leste software
! Notes
|-
| Desktop environment || OK || hildon || hildon home, hildon desktop, .
|-
| Terminal || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] ||
|-
| [[Status/VirtualKeyboard|Virtual keyboard]] || OK || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work on N900; other devices with some work (requires additional files not yet packaged)
|-
| [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Should work out of the box on N900. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7
|-
| Bluetooth || No(t yet) || ? ||
|-
| [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently
|-
| Audio || WIP || ? || Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio
|-
| Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [[https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] ||
|-
| [[Status/USB Peripheral|USB Peripheral]] || WIP || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv
|-
| LED control || No(t yet) || mce || Currently, this doesn't work yet
|-
| [[Status/Mobile Data|Mobile Data]] || No(t yet) || libicd-network-ofono(?) || There is no libicd-network-ofono yet, and no connui plugin for gprs/umts/lte data
|-
| [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed
|-
| [[Status/SMS|SMS]] || No(t yet) || ofono, ? || No UI
|-
| [[Status/Phone Calls|Phone Calls]] || No(t yet) || ofono, ? || No UI, audio routing
|}
00c690c8400491de0cb7995c8a6d61cf0ced6b35
288
287
2018-11-07T10:20:25Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
For Device specific status pages, see See [[:Category:Device]]
The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device
{| class="wikitable"
! Feature
! Status
! Leste software
! Notes
|-
| Desktop environment || OK || hildon || hildon home, hildon desktop, .
|-
| Terminal || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] ||
|-
| [[Status/VirtualKeyboard|Virtual keyboard]] || OK || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work on N900; other devices with some work (requires additional files not yet packaged)
|-
| [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Should work out of the box on N900. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7
|-
| Bluetooth || No(t yet) || ? ||
|-
| [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently
|-
| Audio || WIP || ? || Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio
|-
| Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] ||
|-
| [[Status/USB Peripheral|USB Peripheral]] || WIP || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv
|-
| LED control || No(t yet) || mce || Currently, this doesn't work yet
|-
| [[Status/Mobile Data|Mobile Data]] || No(t yet) || libicd-network-ofono(?) || There is no libicd-network-ofono yet, and no connui plugin for gprs/umts/lte data
|-
| [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed
|-
| [[Status/SMS|SMS]] || No(t yet) || ofono, ? || No UI
|-
| [[Status/Phone Calls|Phone Calls]] || No(t yet) || ofono, ? || No UI, audio routing
|}
ab956e3a96b7a1fec2eafa1c61f78d225b68c438
Nokia N900
0
48
251
236
2018-08-31T21:40:55Z
Sicelo
5
Update bluetooth & FM radio info
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The original Nokia N900.
== Notes ==
Also see: https://elinux.org/N900
NOTE: Do not use the speakers yet unless you know what you are doing - you may fry them if you are not careful.
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 4.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Bluetooth || Not yet || Driver problems in mainline
|-
| (Micro USB) || Yes || Slave only, Host Untested
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || WIP || Works, but could be faster/better, https://github.com/maemo-leste/n9xx-xf86-video-fbdev-sgx
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || WIP || Works with ofono; but no work has been done on any integration; see https://github.com/maemo-leste/bugtracker/issues/61 and https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, no UI, not enabled by default
|-
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters)
|-
| FM Transmitter || Not yet ||
|-
| FM Receiver || Not yet || Depends on Bluetooth
|-
| Accelerometer || Not yet || Available as input device, needs MCE work
|-
| Proximity sensor || Not yet ||
|-
| HDMI-out || N/A ||
|-
| TV-out || Not yet || Should work in kernel, didn't get it to work yet
|-
| GPS || WIP || Works using gps3 and gpsd
|}
== Installation ==
Images: http://maedevu.maemo.org/images/n900/
dd the image to an sd card. Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
[[Category:Device]]
cce5dcc68460892c7afefc29b7494ca1618cc5aa
252
251
2018-08-31T22:24:22Z
Sicelo
5
Add Etcher, for Windows users with no access to dd
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The original Nokia N900.
== Notes ==
Also see: https://elinux.org/N900
NOTE: Do not use the speakers yet unless you know what you are doing - you may fry them if you are not careful.
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 4.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Bluetooth || Not yet || Driver problems in mainline
|-
| (Micro USB) || Yes || Slave only, Host Untested
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || WIP || Works, but could be faster/better, https://github.com/maemo-leste/n9xx-xf86-video-fbdev-sgx
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || WIP || Works with ofono; but no work has been done on any integration; see https://github.com/maemo-leste/bugtracker/issues/61 and https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, no UI, not enabled by default
|-
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters)
|-
| FM Transmitter || Not yet ||
|-
| FM Receiver || Not yet || Depends on Bluetooth
|-
| Accelerometer || Not yet || Available as input device, needs MCE work
|-
| Proximity sensor || Not yet ||
|-
| HDMI-out || N/A ||
|-
| TV-out || Not yet || Should work in kernel, didn't get it to work yet
|-
| GPS || WIP || Works using gps3 and gpsd
|}
== Installation ==
Images: http://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher]
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
[[Category:Device]]
2f0798a786996d6aff25c7debef4372232cde83a
253
252
2018-09-02T08:02:04Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The original Nokia N900.
== Notes ==
Also see: https://elinux.org/N900
NOTE: Do not use the speakers yet unless you know what you are doing - you may fry them if you are not careful.
Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 4.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Bluetooth || Not yet || Driver problems in mainline
|-
| (Micro USB) || Yes || Slave only, Host Untested
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || WIP || Works, but could be faster/better, https://github.com/maemo-leste/n9xx-xf86-video-fbdev-sgx
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || WIP || Works with ofono; but no work has been done on any integration; see https://github.com/maemo-leste/bugtracker/issues/61 and https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, no UI, not enabled by default
|-
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters)
|-
| FM Transmitter || Not yet ||
|-
| FM Receiver || Not yet || Depends on Bluetooth
|-
| Accelerometer || Not yet || Available as input device, needs MCE work
|-
| Proximity sensor || Not yet ||
|-
| HDMI-out || N/A ||
|-
| TV-out || Not yet || Should work in kernel, didn't get it to work yet
|-
| GPS || WIP || Works using gps3 and gpsd
|}
== Installation ==
Images: http://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher]
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
[[Category:Device]]
1cb5e2bba090a3aba68b4c030aa45d6754056c57
254
253
2018-09-03T00:34:17Z
Sicelo
5
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The original Nokia N900.
== Notes ==
Also see: https://elinux.org/N900
NOTE: Do not use the speakers yet unless you know what you are doing - you may fry them if you are not careful.
Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 4.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Bluetooth || Not yet || Driver problems in mainline
|-
| (Micro USB) || Yes || Slave only, Host Untested
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || WIP || Works, but could be faster/better, https://github.com/maemo-leste/n9xx-xf86-video-fbdev-sgx
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || WIP || Works with ofono; but no work has been done on any integration; see https://github.com/maemo-leste/bugtracker/issues/61 and https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, no UI, not enabled by default
|-
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters)
|-
| FM Transmitter || Not yet ||
|-
| FM Receiver || Not yet || Depends on Bluetooth
|-
| Accelerometer || Not yet || Available as input device, needs MCE work
|-
| Proximity sensor || Not yet ||
|-
| HDMI-out || N/A ||
|-
| TV-out || Not yet || Should work in kernel, didn't get it to work yet
|-
| GPS || WIP || Works using gps3 and gpsd
|}
== Installation ==
Images: http://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
[[Category:Device]]
2a74bab5367b47ebb611aa566e0f69528553c26c
256
254
2018-09-20T13:32:30Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The original Nokia N900.
== Notes ==
Also see: https://elinux.org/N900
NOTE: Do not use the speakers yet unless you know what you are doing - you may fry them if you are not careful.
Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 4.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Bluetooth || Not yet || Driver problems in mainline
|-
| (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || WIP || Works, but could be faster/better, https://github.com/maemo-leste/n9xx-xf86-video-fbdev-sgx
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || WIP || Works with ofono; but no work has been done on any integration; see https://github.com/maemo-leste/bugtracker/issues/61 and https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, no UI, not enabled by default
|-
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters)
|-
| FM Transmitter || Not yet ||
|-
| FM Receiver || Not yet || Depends on Bluetooth
|-
| Accelerometer || Not yet || Available as input device, needs MCE work
|-
| Proximity sensor || Not yet ||
|-
| HDMI-out || N/A ||
|-
| TV-out || Not yet || Should work in kernel, didn't get it to work yet
|-
| GPS || WIP || Works using gps3 and gpsd
|}
== Installation ==
Images: http://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
[[Category:Device]]
66dc513bbe6137b84987b44d8256d6d98046dc7b
271
256
2018-11-02T23:16:02Z
Unrest
14
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The original Nokia N900.
== Notes ==
Also see: https://elinux.org/N900
NOTE: Do not use the speakers yet unless you know what you are doing - you may fry them if you are not careful.
Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 4.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Bluetooth || Not yet || Driver problems in mainline
|-
| (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || WIP || Works, but could be faster/better, https://github.com/maemo-leste/n9xx-xf86-video-fbdev-sgx
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || WIP || Works with ofono; but no work has been done on any integration; see https://github.com/maemo-leste/bugtracker/issues/61 and https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, no UI, not enabled by default
|-
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters)
|-
| FM Transmitter || Not yet ||
|-
| FM Receiver || Not yet || Depends on Bluetooth
|-
| Accelerometer || Not yet || Available as input device, needs MCE work
|-
| Proximity sensor || Not yet ||
|-
| HDMI-out || N/A ||
|-
| TV-out || Not yet || Should work in kernel, didn't get it to work yet
|-
| GPS || WIP || Works using gps3 and gpsd
|}
== Installation ==
Images: http://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== increate filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
[[Category:Device]]
5326bb2a1ae12dec916fd476e284a7efa5169831
272
271
2018-11-02T23:18:59Z
Unrest
14
/* increate filesystem size */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The original Nokia N900.
== Notes ==
Also see: https://elinux.org/N900
NOTE: Do not use the speakers yet unless you know what you are doing - you may fry them if you are not careful.
Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 4.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Bluetooth || Not yet || Driver problems in mainline
|-
| (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || WIP || Works, but could be faster/better, https://github.com/maemo-leste/n9xx-xf86-video-fbdev-sgx
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || WIP || Works with ofono; but no work has been done on any integration; see https://github.com/maemo-leste/bugtracker/issues/61 and https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, no UI, not enabled by default
|-
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters)
|-
| FM Transmitter || Not yet ||
|-
| FM Receiver || Not yet || Depends on Bluetooth
|-
| Accelerometer || Not yet || Available as input device, needs MCE work
|-
| Proximity sensor || Not yet ||
|-
| HDMI-out || N/A ||
|-
| TV-out || Not yet || Should work in kernel, didn't get it to work yet
|-
| GPS || WIP || Works using gps3 and gpsd
|}
== Installation ==
Images: http://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
[[Category:Device]]
ecef947fc7b9aa618b061af739a856c7858ec34a
273
272
2018-11-02T23:47:19Z
Sicelo
5
/* increase filesystem size */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The original Nokia N900.
== Notes ==
Also see: https://elinux.org/N900
NOTE: Do not use the speakers yet unless you know what you are doing - you may fry them if you are not careful.
Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 4.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Bluetooth || Not yet || Driver problems in mainline
|-
| (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || WIP || Works, but could be faster/better, https://github.com/maemo-leste/n9xx-xf86-video-fbdev-sgx
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || WIP || Works with ofono; but no work has been done on any integration; see https://github.com/maemo-leste/bugtracker/issues/61 and https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, no UI, not enabled by default
|-
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters)
|-
| FM Transmitter || Not yet ||
|-
| FM Receiver || Not yet || Depends on Bluetooth
|-
| Accelerometer || Not yet || Available as input device, needs MCE work
|-
| Proximity sensor || Not yet ||
|-
| HDMI-out || N/A ||
|-
| TV-out || Not yet || Should work in kernel, didn't get it to work yet
|-
| GPS || WIP || Works using gps3 and gpsd
|}
== Installation ==
Images: http://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
Future images will have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
[[Category:Device]]
76b11386b1985e81667da9bb6912f999f8b41678
278
273
2018-11-05T21:55:56Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The original Nokia N900.
== Notes ==
* Screen will be black for a few minutes while starting X - this is a known PowerVR issue. Just wait it out - it might freeze once more for a few minutes, but then will function OKayish
* If your battery is not calibrated, the battery applet will not give you accurate/good data. Charge the battery fully, and then let it discharge (almost) completely.
* Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful.
Also see: https://elinux.org/N900
Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 4.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Bluetooth || Not yet || Driver problems in mainline
|-
| (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || WIP || Works, but could be faster/better, https://github.com/maemo-leste/n9xx-xf86-video-fbdev-sgx
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || WIP || Works with ofono; but no work has been done on any integration; see https://github.com/maemo-leste/bugtracker/issues/61 and https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, no UI, not enabled by default
|-
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters)
|-
| FM Transmitter || Not yet ||
|-
| FM Receiver || Not yet || Depends on Bluetooth
|-
| Accelerometer || Not yet || Available as input device, needs MCE work
|-
| Proximity sensor || Not yet ||
|-
| HDMI-out || N/A ||
|-
| TV-out || Not yet || Should work in kernel, didn't get it to work yet
|-
| GPS || WIP || Works using gps3 and gpsd
|}
== Installation ==
Images: http://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
Future images will have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
[[Category:Device]]
53ea3892b2e4f9876b80e5bfe849ad12d0551632
Raspberry Pi 2
0
57
265
233
2018-10-13T19:09:45Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Raspberry Pi Foundation
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
32-bit armv7 build for the Raspberry Pi 2, also compatible with the Raspberry Pi 3.
== Notes ==
Make sure that HDMI is connected on boot, otherwise dsme will reboot the device.
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 4.15 (or 4.16?) || Mainline, no patches
|-
| Serial || Unknown ||
|-
| Charging || N/A ||
|-
| Wireless || Yes ||
|-
| Ethernet || Yes ||
|-
| USB || Yes || Host
|-
| Keyboard || N/A || (USB attached works fine)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || Free driver
|-
| Touchscreen || Yes (external) ||
|-
| Audio || Yes ||
|-
| 2G/3G data || N/A ||
|-
| SMS || N/A ||
|-
| Phone calls || N/A ||
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || N/A ||
|-
| Accelerometer || N/A || Available as input device, needs MCE work
|-
| Proximity sensor || N/A ||
|-
| HDMI-out || Yes ||
|-
| TV-out || Not yet ||
|}
== Installation ==
Images: http://maedevu.maemo.org/images/raspi2/
dd the image to an sd card. Then boot from the sd card. Have a monitor connected to HDMI.
[[Category:Device]]
7510df69ad65c0e26795d00ba5068f1eddf1b484
Talk:Virtual Machine
1
71
267
2018-10-19T17:33:34Z
Juest
10
Let's discuss!
wikitext
text/x-wiki
== Now you can copy delme.img ... to a spare harddrive? I tried with USB stick and could not get that to work. ==
I tried this with a different method, specifically converting the vbox image to raw with vboxmanage and turns out the image is meant to be a full hard drive so you have to copy to a entire hard drive or extract the partition and put that (which is what i did) --[[User:Juest|Juest]] ([[User talk:Juest|talk]]) 17:33, 19 October 2018 (UTC)
9c6cca96f2a42402e3595039dc9b9a99c39745dd
Nexus 5/WIP
0
72
268
2018-10-24T17:02:09Z
Wizzup
4
Created page with "Documenting bringup. Kernel tree used: https://gitlab.com/postmarketOS/linux-postmarketos/tree/09efb4857f1a4119eced855912043817bd96e064 Kernel config used: https://gitlab.com..."
wikitext
text/x-wiki
Documenting bringup.
Kernel tree used: https://gitlab.com/postmarketOS/linux-postmarketos/tree/09efb4857f1a4119eced855912043817bd96e064
Kernel config used: https://gitlab.com/postmarketOS/pmaports/blob/master/main/linux-postmarketos-qcom/config-postmarketos-qcom.armhf
Kernel patch(es) applied: https://gitlab.com/postmarketOS/pmaports/blob/master/main/linux-postmarketos-qcom/0001-Fix-Hammerhead-backlight.patch
404b420a4a69b5fb178d2b918dda0b8c5153f22d
269
268
2018-10-25T00:09:10Z
Wizzup
4
wikitext
text/x-wiki
Documenting bringup.
* Kernel tree used: https://gitlab.com/postmarketOS/linux-postmarketos/tree/09efb4857f1a4119eced855912043817bd96e064
* Kernel config used: https://gitlab.com/postmarketOS/pmaports/blob/master/main/linux-postmarketos-qcom/config-postmarketos-qcom.armhf
* Kernel patch(es) applied: https://gitlab.com/postmarketOS/pmaports/blob/master/main/linux-postmarketos-qcom/0001-Fix-Hammerhead-backlight.patch
Kernel config wasn't adequate, lacked support for USB_STORAGE and SCSI, BLK_DEV_SD, SCSI_GENERIC, etc. (Not sure if the options are exactly ok, but mostly).
Now able to boot from usb stick (external root): https://wizzup.org/leste-n5-initial.jpg
Next up: (much) smaller initramfs (since fastboot requires that we have one), arrange serial/network, fix xorg.conf, look at msm-fb-refresher (if we need it).
Then, see if we can boot to hildon-desktop.
Once that works, I'm hoping someone else will make a multirom image.
235206338a9842cc7825c0dc4bcbba6bfe12a710
270
269
2018-10-25T00:20:00Z
Wizzup
4
wikitext
text/x-wiki
Documenting bringup.
* Kernel tree used: https://gitlab.com/postmarketOS/linux-postmarketos/tree/09efb4857f1a4119eced855912043817bd96e064
* Kernel config used: https://gitlab.com/postmarketOS/pmaports/blob/master/main/linux-postmarketos-qcom/config-postmarketos-qcom.armhf
* Kernel patch(es) applied: https://gitlab.com/postmarketOS/pmaports/blob/master/main/linux-postmarketos-qcom/0001-Fix-Hammerhead-backlight.patch
* rootfs used https://maedevu.maemo.org/wip/hammerhead/
Kernel config wasn't adequate, lacked support for USB_STORAGE and SCSI, BLK_DEV_SD, SCSI_GENERIC, etc. (Not sure if the options are exactly ok, but mostly).
Now able to boot from usb stick (external root): https://wizzup.org/leste-n5-initial.jpg
Next up: (much) smaller initramfs (since fastboot requires that we have one), arrange serial/network, fix xorg.conf, look at msm-fb-refresher (if we need it).
Then, see if we can boot to hildon-desktop.
Once that works, I'm hoping someone else will make a multirom image.
2bc441cd3d198b744bd2c962f80d835a170c4ca7
Status/USB Peripheral
0
73
276
2018-11-03T21:59:52Z
Wizzup
4
Created page with "Currently, devices that are supported by Maemo Leste will automatically set up USB networking if you plug them into a PC. Mass Storage may show as an option, but doesn't do an..."
wikitext
text/x-wiki
Currently, devices that are supported by Maemo Leste will automatically set up USB networking if you plug them into a PC.
Mass Storage may show as an option, but doesn't do anything useful yet.
== Share PC network with Leste device ==
To also have the devices use your PC network, log into the devices:
<pre>
ifconfig usb0 up 192.168.42.1
ssh root@192.168.42.2
</pre>
And then add the following route:
<pre>
ip route add default via 192.168.42.1
</pre>
On your PC, issue:
<pre>
# (Maybe only one of these two echos is necessary)
echo 1 > /proc/sys/net/ipv4/conf/usb0/forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -A POSTROUTING -t nat -s 192.168.42.2/32 -j MASQUERADE
</pre>
Now your Leste device should be able to use your PC network
6d4b0d4b6283091189f0c0674243e476e7a02990
295
276
2018-11-30T16:27:56Z
Wizzup
4
wikitext
text/x-wiki
Currently, devices that are supported by Maemo Leste will automatically set up USB networking if you plug them into a PC.
Mass Storage may show as an option, but doesn't do anything useful yet.
== Share PC network with Leste device ==
To also have the devices use your PC network, log into the devices:
<pre>
ifconfig usb0 up 192.168.42.1
ssh root@192.168.42.2
</pre>
And then add the following route on the device:
<pre>
ip route add default via 192.168.42.1
# if this fails, first run ip route del default
</pre>
On your PC, issue:
<pre>
# (Maybe only one of these two echos is necessary)
echo 1 > /proc/sys/net/ipv4/conf/usb0/forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -A POSTROUTING -t nat -s 192.168.42.2/32 -j MASQUERADE
</pre>
Now your Leste device should be able to use your PC network
2cde4acb2c064edaf2025bebb98bbe1fa257999d
A33-TurboX-Twister
0
67
277
212
2018-11-03T22:12:19Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:A33 Twister - Leste pre-alpha.jpg|250px]]
|manufacturer=TurboX
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Notes ==
Bought from here: http://plesio.bg/tableti-c-69981200/turbo-x-twister-tablet-7-black-p-326390.html
Modified kernel with Mali support, extracted touchscreen firmware from android, had to extract exact touchscreen driver info.
Wifi required external kernel module.
Need to dig into logs to figure out everything that was changed.
Otherwise should just work with mainline driver; hopefully soon with Lima as well.
Wifi driver is currently out of tree: https://github.com/jwrdegoede/rtl8723bs
Touch screen firmware was extracted from Android: https://github.com/onitake/gsl-firmware
(We'll have to find the exact firmware and post it somewhere soon)
Picture of the inside: http://wizzup.org/tablet.jpg
TODO:
* vaapi/vdpau ( https://bootlin.com/blog/allwinner-vpu-support-in-mainline-linux-status-update-week-20/ )
* lima (mali works, but yeah)
* audio/speaker support (might just work now)
== Status ==
== Installation ==
https://maedevu.maemo.org/images/turbox-twister/
dd the image to the sd card, boot.
[[Category:Device]]
a84b6e675e340307e5124b9f494ba1bd148c3d4b
Status/Phone Calls
0
74
282
2018-11-07T09:50:54Z
Wizzup
4
Created page with "Relevant tickets: * https://github.com/maemo-leste/bugtracker/issues/27 * https://github.com/maemo-leste/bugtracker/issues/110"
wikitext
text/x-wiki
Relevant tickets:
* https://github.com/maemo-leste/bugtracker/issues/27
* https://github.com/maemo-leste/bugtracker/issues/110
3ce8a9d7b8e9fec26ee3ef7b3e3296faa54e003a
Status/Mobile Data
0
75
283
2018-11-07T09:59:09Z
Wizzup
4
Created page with "Relevant tickets: * https://github.com/maemo-leste/bugtracker/issues/76 * https://github.com/maemo-leste/bugtracker/issues/151 * https://github.com/maemo-leste/bugtracker/iss..."
wikitext
text/x-wiki
Relevant tickets:
* https://github.com/maemo-leste/bugtracker/issues/76
* https://github.com/maemo-leste/bugtracker/issues/151
* https://github.com/maemo-leste/bugtracker/issues/195
We will need the following:
* RE of the current data icd2 plugin from Fremantle (as starting base)
* Code to interface with ofono, resulting in libicd-network-ofono
* Connui UI plugins for gprs - some work is done here: https://github.com/maemo-leste/connui-cellular
* Database of various mobile operations and their default APN information
* Hardware/driver support
a88e2468f8635caf46449b693ba6f3c8ebc96f3d
284
283
2018-11-07T10:13:57Z
Wizzup
4
wikitext
text/x-wiki
Relevant tickets:
* https://github.com/maemo-leste/bugtracker/issues/76
* https://github.com/maemo-leste/bugtracker/issues/151
* https://github.com/maemo-leste/bugtracker/issues/195
* https://github.com/maemo-leste/bugtracker/issues/196
We will need the following:
* RE of the current data icd2 plugin from Fremantle (as starting base)
* Code to interface with ofono, resulting in libicd-network-ofono
* Connui UI plugins for gprs - some work is done here: https://github.com/maemo-leste/connui-cellular
* Database of various mobile operations and their default APN information
* Hardware/driver support
695dcd48c399284b60448af18baf3054d011ef8d
291
284
2018-11-10T13:13:46Z
Wizzup
4
wikitext
text/x-wiki
Relevant tickets:
* https://github.com/maemo-leste/bugtracker/issues/76
* https://github.com/maemo-leste/bugtracker/issues/151
* https://github.com/maemo-leste/bugtracker/issues/195
* https://github.com/maemo-leste/bugtracker/issues/196
We will need the following:
* RE of the current data icd2 plugin from Fremantle (as starting base)
* Code to interface with ofono, resulting in libicd-network-ofono
* Connui UI plugins for gprs - some work is done here: https://github.com/maemo-leste/connui-cellular
* Database of various mobile operations and their default APN information
* Hardware/driver support
Useful resources/hw/links:
* https://wiki.maemo.org/User:Jebba/Ofono#Using_oFono_in_Pass_thru_mode (pass through n900 modem with ofono, untested)
* An USB modem for testing (like Option modems)
* ofono: https://01.org/ofono
cec3d57c68b72a08d183fb7712acd47b68ee8e9c
292
291
2018-11-11T12:27:05Z
Wizzup
4
wikitext
text/x-wiki
Relevant tickets:
* https://github.com/maemo-leste/bugtracker/issues/76
* https://github.com/maemo-leste/bugtracker/issues/151
* https://github.com/maemo-leste/bugtracker/issues/195
* https://github.com/maemo-leste/bugtracker/issues/196
We will need the following:
* RE of the current data icd2 plugin from Fremantle (as starting base)
* Code to interface with ofono, resulting in libicd-network-ofono
* Connui UI plugins for gprs - some work is done here: https://github.com/maemo-leste/connui-cellular
* Database of various mobile operations and their default APN information
* Hardware/driver support
Useful resources/hw/links:
* https://wiki.maemo.org/User:Jebba/Ofono#Using_oFono_in_Pass_thru_mode (pass through n900 modem with ofono, untested)
* An USB modem for testing (like Option modems)
* ofono: https://01.org/ofono
Olimex 3g modem (should also do voice calls), should work with ofono:
* https://www.olimex.com/Products/USB-Modules/MOD-USB3G/
* https://aleksander.es/data/Qualcomm%20Gobi%20devices%20on%20Linux.pdf
2449f066f71f5b7598f122216eecaa86df32986b
Status/GPS
0
76
286
2018-11-07T10:18:12Z
Wizzup
4
Created page with "Relevant tickets: * https://github.com/maemo-leste/bugtracker/issues/151 * https://github.com/maemo-leste/bugtracker/issues/57 * http://talk.maemo.org/showthread.php?t=100363"
wikitext
text/x-wiki
Relevant tickets:
* https://github.com/maemo-leste/bugtracker/issues/151
* https://github.com/maemo-leste/bugtracker/issues/57
* http://talk.maemo.org/showthread.php?t=100363
69aff73f3cf1a93eb3388ffdffa4cffde67bf5d9
Pine64 Anakin Devkit
0
77
296
2018-11-30T20:56:39Z
Wizzup
4
Created page with "{{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb..."
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
PineTablet / PinePhone first devkit, codenamed "Anakin".
== Notes ==
WIP. There are no working images yet.
http://wiki.pine64.org/index.php/Project_Anakin
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || ?? ||
|-
| Serial || ?? ||
|-
| Charging || ?? ||
|-
| Wireless || ?? ||
|-
| Ethernet || ?? ||
|-
| Bluetooth || ?? ||
|-
| (Micro USB) || N/A? ||
|-
| Keyboard || N/A ||
|-
| Screen || ?? ||
|-
| 3D Acceleration || ?? || Mali/Lima
|-
| Touchscreen || ?? ||
|-
| Audio || ?? ||
|-
| 2G/3G/LTE data || ?? || Quectel EC20 R2.1 LTE Module
|-
| SMS || ?? ||
|-
| Phone calls || ?? ||
|-
| HDMI-out || ?? ||
|-
| GPS || ?? ||
|}
== Installation ==
[[Category:Device]]
78eb5e8927d50ca010b05c924c75e2472e79d384
Status
0
64
297
288
2018-12-01T13:44:05Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
For Device specific status pages, see See [[:Category:Device]]
The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device
{| class="wikitable"
! Feature
! Status
! Leste software
! Notes
|-
| Desktop environment || OK || hildon || hildon home, hildon desktop, .
|-
| Terminal || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] ||
|-
| [[Status/VirtualKeyboard|Virtual keyboard]] || OK || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work on N900; other devices with some work (requires additional files not yet packaged)
|-
| [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Should work out of the box on N900. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7
|-
| Bluetooth || No(t yet) || ? ||
|-
| [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently
|-
| Audio || WIP || ? || Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio
|-
| Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] ||
|-
| [[Status/USB Peripheral|USB Peripheral]] || WIP || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv
|-
| LED control || No(t yet) || mce || Currently, this doesn't work yet
|-
| [[Status/Mobile Data|Mobile Data]] || No(t yet) || libicd-network-ofono(?) || There is no libicd-network-ofono yet, and no connui plugin for gprs/umts/lte data
|-
| [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed
|-
| [[Status/SMS|SMS]] || No(t yet) || ofono, ? || No UI
|-
| [[Status/Phone Calls|Phone Calls]] || No(t yet) || ofono, ? || No UI, audio routing
|-
| [[Status/Application Manager|Application Manager]] || No(t yet) || hildon-application-manager || [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue]
|-
| [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue]
|}
539c937a5b92616ddf1f5c02a9ad303a3bfa1916
300
297
2018-12-09T16:00:08Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
For Device specific status pages, see See [[:Category:Device]]
The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device
{| class="wikitable"
! Feature
! Status
! Leste software
! Notes
|-
| Desktop environment || OK || hildon || hildon home, hildon desktop, .
|-
| Terminal || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] ||
|-
| [[Status/VirtualKeyboard|Virtual keyboard]] || OK || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work on N900; other devices with some work (requires additional files not yet packaged)
|-
| [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Should work out of the box on N900. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7
|-
| Bluetooth || No(t yet) || ? ||
|-
| [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently
|-
| Audio || WIP || ? || Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio
|-
| Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] ||
|-
| [[Status/USB Peripheral|USB Peripheral]] || WIP || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv
|-
| LED control || OK || mce || Works on the N900 - make sure the notifications are enabled in settings. (On n900, also make sure that the led override is turned off)
|-
| [[Status/Mobile Data|Mobile Data]] || No(t yet) || libicd-network-ofono(?) || There is no libicd-network-ofono yet, and no connui plugin for gprs/umts/lte data
|-
| [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed
|-
| [[Status/SMS|SMS]] || No(t yet) || ofono, ? || No UI
|-
| [[Status/Phone Calls|Phone Calls]] || No(t yet) || ofono, ? || No UI, audio routing
|-
| [[Status/Application Manager|Application Manager]] || No(t yet) || hildon-application-manager || [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue]
|-
| [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue]
|}
2611e7b131114efb547df1378b602d20a9b69a3a
305
300
2018-12-14T12:49:24Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
For Device specific status pages, see See [[:Category:Device]]
The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device
{| class="wikitable"
! Feature
! Status
! Leste software
! Notes
|-
| Desktop environment || OK || hildon || hildon home, hildon desktop, .
|-
| Terminal || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] ||
|-
| [[Status/VirtualKeyboard|Virtual keyboard]] || OK || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work on N900; other devices with some work (requires additional files not yet packaged)
|-
| [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Should work out of the box on N900. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7
|-
| Bluetooth || No(t yet) || ? ||
|-
| [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently
|-
| Audio || WIP || ? || Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio
|-
| Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] ||
|-
| [[Status/USB Peripheral|USB Peripheral]] || WIP || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv
|-
| LED control || OK || mce || Works on the N900 - make sure the notifications are enabled in settings. (On n900, also make sure that the led override is turned off)
|-
| [[Status/Mobile Data|Mobile Data]] || No(t yet) || libicd-network-ofono(?) || There is no libicd-network-ofono yet, and no connui plugin for gprs/umts/lte data
|-
| [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed
|-
| [[Status/SMS|SMS]] || No(t yet) || ofono, ? || No UI
|-
| [[Status/Phone Calls|Phone Calls]] || No(t yet) || ofono, ? || No UI, audio routing
|-
| [[Status/Application Manager|Application Manager]] || No(t yet) || hildon-application-manager || [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue]
|-
| [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue]
|}
378112f4895832812b293a44881908bb485bdc50
307
305
2018-12-20T05:54:39Z
Sicelo
5
wikitext
text/x-wiki
{{Stub}}
For Device specific status pages, see See [[:Category:Device]]
The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device
{| class="wikitable"
! Feature
! Status
! Leste software
! Notes
|-
| Desktop environment || OK || hildon || hildon home, hildon desktop, .
|-
| Terminal || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] ||
|-
| [[Status/VirtualKeyboard|Virtual keyboard]] || OK || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work on N900; other devices with some work (requires additional files not yet packaged)
|-
| [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Should work out of the box on N900. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7
|-
| Bluetooth || No(t yet) || ? ||
|-
| [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily
|-
| Audio || WIP || ? || Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio
|-
| Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] ||
|-
| [[Status/USB Peripheral|USB Peripheral]] || WIP || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv
|-
| LED control || OK || mce || Works on the N900 - make sure the notifications are enabled in settings. (On n900, also make sure that the led override is turned off)
|-
| [[Status/Mobile Data|Mobile Data]] || No(t yet) || libicd-network-ofono(?) || There is no libicd-network-ofono yet, and no connui plugin for gprs/umts/lte data
|-
| [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed
|-
| [[Status/SMS|SMS]] || No(t yet) || ofono, ? || No UI
|-
| [[Status/Phone Calls|Phone Calls]] || No(t yet) || ofono, ? || No UI, audio routing
|-
| [[Status/Application Manager|Application Manager]] || No(t yet) || hildon-application-manager || [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue]
|-
| [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue]
|}
0cd2fa448f371fd247adccec5b3d6f7295ebc802
309
307
2018-12-20T08:35:16Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
For Device specific status pages, see See [[:Category:Device]]
The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device
{| class="wikitable"
! Feature
! Status
! Leste software
! Notes
|-
| Desktop environment || OK || hildon || hildon home, hildon desktop, .
|-
| Terminal || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] ||
|-
| [[Status/VirtualKeyboard|Virtual keyboard]] || OK || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work on N900; other devices with some work (requires additional files not yet packaged)
|-
| [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Should work out of the box on N900. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7
|-
| Bluetooth || No(t yet) || ? ||
|-
| [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily
|-
| Audio || WIP || ? || Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio
|-
| Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] ||
|-
| [[Status/USB Peripheral|USB Peripheral]] || WIP || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv
|-
| LED control || OK || mce || Works on the N900 - make sure the notifications are enabled in settings. (On n900, also make sure that the led override is turned off)
|-
| [[Status/Mobile Data|Mobile Data]] || No(t yet) || libicd-network-ofono(?) || There is no libicd-network-ofono yet, and no connui plugin for gprs/umts/lte data
|-
| [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed
|-
| [[Status/SMS|SMS]] || WIP || ofono, ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue]
|-
| [[Status/Phone Calls|Phone Calls]] || WIP || ofono, ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue]
|-
| [[Status/Application Manager|Application Manager]] || No(t yet) || hildon-application-manager || [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue]
|-
| [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue]
|}
ad2687e0aec7960279e473387a182104d181db5a
311
309
2018-12-20T08:59:40Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
For Device specific status pages, see See [[:Category:Device]]
The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device
{| class="wikitable"
! Feature
! Status
! Leste software
! Notes
|-
| Desktop environment || OK || hildon || hildon home, hildon desktop, .
|-
| Terminal || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] ||
|-
| [[Status/VirtualKeyboard|Virtual keyboard]] || OK || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work on N900; other devices with some work (requires additional files not yet packaged)
|-
| [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Should work out of the box on N900. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7
|-
| Bluetooth || No(t yet) || ? ||
|-
| [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily
|-
| Audio || WIP || ? || Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio
|-
| Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] ||
|-
| [[Status/USB Peripheral|USB Peripheral]] || WIP || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv
|-
| LED control || OK || mce || Works on the N900 - make sure the notifications are enabled in settings. (On n900, also make sure that the led override is turned off)
|-
| [[Status/Mobile Data|Mobile Data]] || WIP) || libicd-network-ofono(?) || There is no libicd-network-ofono yet, and no connui plugin for gprs/umts/lte data ; but works when set up manually using dbus/ifconfig
|-
| [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed
|-
| [[Status/SMS|SMS]] || WIP || ofono, ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue]
|-
| [[Status/Phone Calls|Phone Calls]] || WIP || ofono, ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue]
|-
| [[Status/Application Manager|Application Manager]] || No(t yet) || hildon-application-manager || [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue]
|-
| [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue]
|}
be15629c10e3913c4eebc60b9e06cb7689621626
312
311
2018-12-20T09:01:21Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
For Device specific status pages, see See [[:Category:Device]]
The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device
{| class="wikitable"
! Feature
! Status
! Leste software
! Notes
|-
| Desktop environment || OK || hildon || hildon home, hildon desktop, .
|-
| Terminal || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] ||
|-
| [[Status/VirtualKeyboard|Virtual keyboard]] || OK || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work on N900; other devices with some work (requires additional files not yet packaged)
|-
| [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Should work out of the box on N900. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7
|-
| Bluetooth || No(t yet) || ? ||
|-
| [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily
|-
| Audio || WIP || ? || Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio
|-
| Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] ||
|-
| [[Status/USB Peripheral|USB Peripheral]] || WIP || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv
|-
| LED control || OK || mce || Works on the N900 - make sure the notifications are enabled in settings. (On n900, also make sure that the led override is turned off)
|-
| [[Status/Mobile Data|Mobile Data]] || WIP) || libicd-network-ofono(?) || There is no libicd-network-ofono yet, and no connui plugin for gprs/umts/lte data ; but works when set up manually using dbus/ifconfig
|-
| [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed
|-
| [[Status/SMS|SMS]] || WIP || ofono, ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue]
|-
| [[Status/Phone Calls|Phone Calls]] || WIP || ofono, ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue]
|-
| [[Status/Application Manager|Application Manager]] || No(t yet) || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue]
|-
| [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue]
|}
6ce03128a94667d4cc897187b166ee7ddb234c66
A33-TurboX-Twister
0
67
298
277
2018-12-07T22:34:16Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:A33 Twister - Leste pre-alpha.jpg|250px]]
|manufacturer=TurboX
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Notes ==
Bought from here: http://plesio.bg/tableti-c-69981200/turbo-x-twister-tablet-7-black-p-326390.html
Modified kernel with Mali support, extracted touchscreen firmware from android, had to extract exact touchscreen driver info.
Wifi required external kernel module (this is no longer true, it is now in mainline staging)
Otherwise should just work with mainline driver - lima works with some patches! (See https://maemo-leste.github.io/maemo-leste-lima-works.html)
Touch screen firmware was extracted from Android: https://github.com/onitake/gsl-firmware
Picture of the inside: http://wizzup.org/tablet.jpg
TODO:
* vaapi/vdpau ( https://bootlin.com/blog/allwinner-vpu-support-in-mainline-linux-status-update-week-20/ )
* audio/speaker support (headphones are already detected in alsamixer)
== Status ==
== Installation ==
(Current image does not yet ship with Lima)
https://maedevu.maemo.org/images/turbox-twister/
dd the image to the sd card, boot.
[[Category:Device]]
9f5774b94ca93e1f36f7874c09de846ecd0214d9
301
298
2018-12-09T21:03:54Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:A33 Twister - Leste pre-alpha.jpg|250px]]
|manufacturer=TurboX
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Notes ==
Bought from here: http://plesio.bg/tableti-c-69981200/turbo-x-twister-tablet-7-black-p-326390.html
Modified kernel with Mali support, extracted touchscreen firmware from android, had to extract exact touchscreen driver info.
Wifi required external kernel module (this is no longer true, it is now in mainline staging)
Otherwise should just work with mainline driver - lima works with some patches! (See https://maemo-leste.github.io/maemo-leste-lima-works.html)
Touch screen firmware was extracted from Android: https://github.com/onitake/gsl-firmware
Picture of the inside: http://wizzup.org/tablet.jpg
TODO:
* vaapi/vdpau ( https://bootlin.com/blog/allwinner-vpu-support-in-mainline-linux-status-update-week-20/ )
* audio/speaker support (headphones are already detected in alsamixer)
== Status ==
(Some of these values may not be available in the latest image yet)
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 4.19+ || Mainline + Lima + Display patches: https://github.com/maemo-leste/lime2-linux/tree/lime2-and-twister-4.19-rc4-20181207
|-
| Serial || Probably || Need to locate it on the board
|-
| Charging || Yes ||
|-
| Wireless || Yes || Driver is still in staging
|-
| Bluetooth || ? ||
|-
| (Micro USB) || Yes || Peripheral and OTG
|-
| Keyboard || N/A ||
|-
| Screen || Yes || sunxi drm
|-
| 3D Acceleration || WIP || Works, with lima - https://maemo-leste.github.io/maemo-leste-lima-works.html
|-
| Touchscreen || Yes || Resistive
|-
| Audio || WIP || Headphones work, speakers not yet (or untested)
|-
| Accelerometer || ? || Not sure if available
|-
| Proximity sensor || ? || Not sure if available
|}
== Installation ==
(Current image does not yet ship with Lima)
https://maedevu.maemo.org/images/turbox-twister/
dd the image to the sd card, boot.
[[Category:Device]]
9f1b558225ef3d2ab6c22e8cd61681fe61275d28
302
301
2018-12-09T21:05:06Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:A33 Twister - Leste pre-alpha.jpg|250px]]
|manufacturer=TurboX
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Notes ==
Bought from here: http://plesio.bg/tableti-c-69981200/turbo-x-twister-tablet-7-black-p-326390.html
Modified kernel with Mali support, extracted touchscreen firmware from android, had to extract exact touchscreen driver info.
Wifi required external kernel module (this is no longer true, it is now in mainline staging)
Otherwise should just work with mainline driver - lima works with some patches! (See https://maemo-leste.github.io/maemo-leste-lima-works.html)
Touch screen firmware was extracted from Android: https://github.com/onitake/gsl-firmware
Picture of the inside: http://wizzup.org/tablet.jpg
TODO:
* vaapi/vdpau ( https://bootlin.com/blog/allwinner-vpu-support-in-mainline-linux-status-update-week-20/ )
* audio/speaker support (headphones are already detected in alsamixer)
== Status ==
(Some of these values may not be available in the latest image yet)
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 4.19+ || Mainline + Lima + Display patches: https://github.com/maemo-leste/lime2-linux/tree/lime2-and-twister-4.19-rc4-20181207
|-
| Serial || Probably || Need to locate it on the board
|-
| Charging || Yes ||
|-
| Wireless || Yes || Driver is still in staging
|-
| Bluetooth || ? ||
|-
| (Micro USB) || Yes || Peripheral and OTG
|-
| Keyboard || N/A ||
|-
| Screen || Yes || sunxi drm
|-
| 3D Acceleration || WIP || Works, with lima - https://maemo-leste.github.io/maemo-leste-lima-works.html
|-
| Touchscreen || Yes || Resistive
|-
| Audio || WIP || Headphones work, speakers not yet (or untested)
|-
| Accelerometer || ? || Not sure if available
|-
| Proximity sensor || ? || Not sure if available
|-
| eMMC || Yes ||
|}
== Installation ==
(Current image does not yet ship with Lima)
https://maedevu.maemo.org/images/turbox-twister/
dd the image to the sd card, boot.
[[Category:Device]]
338c2a57284a20c8091b7ec24a29ec32aceba1e7
303
302
2018-12-09T21:05:53Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:A33 Twister - Leste pre-alpha.jpg|250px]]
|manufacturer=TurboX
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Notes ==
Bought from here: http://plesio.bg/tableti-c-69981200/turbo-x-twister-tablet-7-black-p-326390.html
Modified kernel with Mali support, extracted touchscreen firmware from android, had to extract exact touchscreen driver info.
Wifi required external kernel module (this is no longer true, it is now in mainline staging)
Otherwise should just work with mainline driver - lima works with some patches! (See https://maemo-leste.github.io/maemo-leste-lima-works.html) https://github.com/maemo-leste/bugtracker/issues/181
Touch screen firmware was extracted from Android: https://github.com/onitake/gsl-firmware
Picture of the inside: http://wizzup.org/tablet.jpg
TODO:
* vaapi/vdpau ( https://bootlin.com/blog/allwinner-vpu-support-in-mainline-linux-status-update-week-20/ )
* audio/speaker support (headphones are already detected in alsamixer)
== Status ==
(Some of these values may not be available in the latest image yet)
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 4.19+ || Mainline + Lima + Display patches: https://github.com/maemo-leste/lime2-linux/tree/lime2-and-twister-4.19-rc4-20181207
|-
| Serial || Probably || Need to locate it on the board
|-
| Charging || Yes ||
|-
| Wireless || Yes || Driver is still in staging
|-
| Bluetooth || ? ||
|-
| (Micro USB) || Yes || Peripheral and OTG
|-
| Keyboard || N/A ||
|-
| Screen || Yes || sunxi drm
|-
| 3D Acceleration || WIP || Works, with lima - https://maemo-leste.github.io/maemo-leste-lima-works.html
|-
| Touchscreen || Yes || Resistive
|-
| Audio || WIP || Headphones work, speakers not yet (or untested)
|-
| Accelerometer || ? || Not sure if available
|-
| Proximity sensor || ? || Not sure if available
|-
| eMMC || Yes ||
|}
== Installation ==
(Current image does not yet ship with Lima)
https://maedevu.maemo.org/images/turbox-twister/
dd the image to the sd card, boot.
[[Category:Device]]
2e17d5f9274ab8a4c5ae79d906ca88ed76242746
304
303
2018-12-09T21:07:32Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:A33 Twister - Leste pre-alpha.jpg|250px]]
|manufacturer=TurboX
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Notes ==
Bought from here: http://plesio.bg/tableti-c-69981200/turbo-x-twister-tablet-7-black-p-326390.html
Extracted touchscreen firmware from android, had to extract exact touchscreen driver info ;
Touch screen firmware was extracted from Android: https://github.com/onitake/gsl-firmware
Otherwise should just work with mainline driver - lima works with some patches! (See https://maemo-leste.github.io/maemo-leste-lima-works.html)
Picture of the inside: http://wizzup.org/tablet.jpg
TODO:
* vaapi/vdpau ( https://bootlin.com/blog/allwinner-vpu-support-in-mainline-linux-status-update-week-20/ )
== Status ==
(Some of these values may not be available in the latest image yet)
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 4.19+ || Mainline + Lima + Display patches: https://github.com/maemo-leste/lime2-linux/tree/lime2-and-twister-4.19-rc4-20181207
|-
| Serial || Probably || Need to locate it on the board
|-
| Charging || Yes ||
|-
| Wireless || Yes || Driver is still in staging
|-
| Bluetooth || ? ||
|-
| (Micro USB) || Yes || Peripheral and OTG
|-
| Keyboard || N/A ||
|-
| Screen || Yes || sunxi drm
|-
| 3D Acceleration || WIP || Works, with lima - https://maemo-leste.github.io/maemo-leste-lima-works.html https://github.com/maemo-leste/bugtracker/issues/181
|-
| Touchscreen || Yes || Resistive
|-
| Audio || WIP || Headphones work, speakers not yet (or untested)
|-
| Accelerometer || ? || Not sure if available
|-
| Proximity sensor || ? || Not sure if available
|-
| eMMC || Yes ||
|-
| HW accelerated video encode/decode|| ? || Should work with Cedrus in Linux 4.20+
|}
== Installation ==
(Current image does not yet ship with Lima)
https://maedevu.maemo.org/images/turbox-twister/
dd the image to the sd card, boot.
[[Category:Device]]
1473aa5176ba4a256cd866a9f34fd07fb4554e35
306
304
2018-12-14T12:52:15Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:A33 Twister - Leste pre-alpha.jpg|250px]]
|manufacturer=TurboX
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Notes ==
Bought from here: http://plesio.bg/tableti-c-69981200/turbo-x-twister-tablet-7-black-p-326390.html
Extracted touchscreen firmware from android, had to extract exact touchscreen driver info ;
Touch screen firmware was extracted from Android: https://github.com/onitake/gsl-firmware
Otherwise should just work with mainline driver - lima works with some patches! (See https://maemo-leste.github.io/maemo-leste-lima-works.html)
Picture of the inside: http://wizzup.org/tablet.jpg
TODO:
* vaapi/vdpau ( https://bootlin.com/blog/allwinner-vpu-support-in-mainline-linux-status-update-week-20/ )
== Status ==
(Some of these values may not be available in the latest image yet)
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 4.19+ || Mainline + Lima + Display patches: https://github.com/maemo-leste/lime2-linux/tree/lime2-and-twister-4.19-rc4-20181207
|-
| Serial || Probably || Need to locate it on the board
|-
| Charging || Yes ||
|-
| Wireless || Yes || Driver is still in staging
|-
| Bluetooth || ? ||
|-
| (Micro USB) || Yes || Peripheral and OTG
|-
| Keyboard || N/A ||
|-
| Screen || Yes || sunxi drm
|-
| 3D Acceleration || WIP || Works, with lima - https://maemo-leste.github.io/maemo-leste-lima-works.html https://github.com/maemo-leste/bugtracker/issues/181
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || WIP || Headphones work, speakers not yet (or untested)
|-
| Accelerometer || ? || Not sure if available
|-
| Proximity sensor || ? || Not sure if available
|-
| eMMC || Yes ||
|-
| HW accelerated video encode/decode|| ? || Should work with Cedrus in Linux 4.20+
|}
== Installation ==
(Current image does not yet ship with Lima)
https://maedevu.maemo.org/images/turbox-twister/
dd the image to the sd card, boot.
[[Category:Device]]
f8b6f900b302df5414516d6f1700f12c2e44d141
Nokia N900
0
48
299
278
2018-12-08T10:04:47Z
Sicelo
5
/* Increase filesystem size */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The original Nokia N900.
== Notes ==
* Screen will be black for a few minutes while starting X - this is a known PowerVR issue. Just wait it out - it might freeze once more for a few minutes, but then will function OKayish
* If your battery is not calibrated, the battery applet will not give you accurate/good data. Charge the battery fully, and then let it discharge (almost) completely.
* Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful.
Also see: https://elinux.org/N900
Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 4.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Bluetooth || Not yet || Driver problems in mainline
|-
| (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || WIP || Works, but could be faster/better, https://github.com/maemo-leste/n9xx-xf86-video-fbdev-sgx
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || WIP || Works with ofono; but no work has been done on any integration; see https://github.com/maemo-leste/bugtracker/issues/61 and https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, no UI, not enabled by default
|-
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters)
|-
| FM Transmitter || Not yet ||
|-
| FM Receiver || Not yet || Depends on Bluetooth
|-
| Accelerometer || Not yet || Available as input device, needs MCE work
|-
| Proximity sensor || Not yet ||
|-
| HDMI-out || N/A ||
|-
| TV-out || Not yet || Should work in kernel, didn't get it to work yet
|-
| GPS || WIP || Works using gps3 and gpsd
|}
== Installation ==
Images: http://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
[[Category:Device]]
c3e2081e4f1933d4bcfa3aa457b9e8392f0e4755
314
299
2019-01-04T00:00:08Z
Spinal
13
/* Installation */ add u-boot section
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The original Nokia N900.
== Notes ==
* Screen will be black for a few minutes while starting X - this is a known PowerVR issue. Just wait it out - it might freeze once more for a few minutes, but then will function OKayish
* If your battery is not calibrated, the battery applet will not give you accurate/good data. Charge the battery fully, and then let it discharge (almost) completely.
* Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful.
Also see: https://elinux.org/N900
Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 4.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Bluetooth || Not yet || Driver problems in mainline
|-
| (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || WIP || Works, but could be faster/better, https://github.com/maemo-leste/n9xx-xf86-video-fbdev-sgx
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || WIP || Works with ofono; but no work has been done on any integration; see https://github.com/maemo-leste/bugtracker/issues/61 and https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, no UI, not enabled by default
|-
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters)
|-
| FM Transmitter || Not yet ||
|-
| FM Receiver || Not yet || Depends on Bluetooth
|-
| Accelerometer || Not yet || Available as input device, needs MCE work
|-
| Proximity sensor || Not yet ||
|-
| HDMI-out || N/A ||
|-
| TV-out || Not yet || Should work in kernel, didn't get it to work yet
|-
| GPS || WIP || Works using gps3 and gpsd
|}
== Installation ==
Images: http://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
== U-Boot setup ==
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="vfat"
EOF
u-boot-update-bootmenu
4. Reboot the device
== Increase filesystem size ==
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
[[Category:Device]]
e25f537741f2cdf22ae8b358b341c4bd83561173
315
314
2019-01-04T00:02:45Z
Spinal
13
Change sections format back
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The original Nokia N900.
== Notes ==
* Screen will be black for a few minutes while starting X - this is a known PowerVR issue. Just wait it out - it might freeze once more for a few minutes, but then will function OKayish
* If your battery is not calibrated, the battery applet will not give you accurate/good data. Charge the battery fully, and then let it discharge (almost) completely.
* Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful.
Also see: https://elinux.org/N900
Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 4.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Bluetooth || Not yet || Driver problems in mainline
|-
| (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || WIP || Works, but could be faster/better, https://github.com/maemo-leste/n9xx-xf86-video-fbdev-sgx
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || WIP || Works with ofono; but no work has been done on any integration; see https://github.com/maemo-leste/bugtracker/issues/61 and https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, no UI, not enabled by default
|-
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters)
|-
| FM Transmitter || Not yet ||
|-
| FM Receiver || Not yet || Depends on Bluetooth
|-
| Accelerometer || Not yet || Available as input device, needs MCE work
|-
| Proximity sensor || Not yet ||
|-
| HDMI-out || N/A ||
|-
| TV-out || Not yet || Should work in kernel, didn't get it to work yet
|-
| GPS || WIP || Works using gps3 and gpsd
|}
== Installation ==
Images: http://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="vfat"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
[[Category:Device]]
705001b039e4b8df21de7d972d67376cb3ac937d
316
315
2019-01-05T06:07:37Z
Spinal
13
Add "Accessing MTD" section
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The original Nokia N900.
== Notes ==
* Screen will be black for a few minutes while starting X - this is a known PowerVR issue. Just wait it out - it might freeze once more for a few minutes, but then will function OKayish
* If your battery is not calibrated, the battery applet will not give you accurate/good data. Charge the battery fully, and then let it discharge (almost) completely.
* Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful.
Also see: https://elinux.org/N900
Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 4.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Bluetooth || Not yet || Driver problems in mainline
|-
| (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || WIP || Works, but could be faster/better, https://github.com/maemo-leste/n9xx-xf86-video-fbdev-sgx
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || WIP || Works with ofono; but no work has been done on any integration; see https://github.com/maemo-leste/bugtracker/issues/61 and https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, no UI, not enabled by default
|-
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters)
|-
| FM Transmitter || Not yet ||
|-
| FM Receiver || Not yet || Depends on Bluetooth
|-
| Accelerometer || Not yet || Available as input device, needs MCE work
|-
| Proximity sensor || Not yet ||
|-
| HDMI-out || N/A ||
|-
| TV-out || Not yet || Should work in kernel, didn't get it to work yet
|-
| GPS || WIP || Works using gps3 and gpsd
|}
== Installation ==
Images: http://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="vfat"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
[[Category:Device]]
678e3d2375cd17ce58f5bad2dacc63ece9704c4b
327
316
2019-03-08T01:13:03Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The original Nokia N900.
== Notes ==
* Screen will be black for a few minutes while starting X - this is a known PowerVR issue. Just wait it out - it might freeze once more for a few minutes, but then will function OKayish
* If your battery is not calibrated, the battery applet will not give you accurate/good data. Charge the battery fully, and then let it discharge (almost) completely.
* Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful.
Also see: https://elinux.org/N900
Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 4.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Bluetooth || Not yet || Driver problems in mainline
|-
| (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || WIP || Works, but could be faster/better, https://github.com/maemo-leste/n9xx-xf86-video-fbdev-sgx
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || WIP || Works with ofono; but no work has been done on any integration; see https://github.com/maemo-leste/bugtracker/issues/61 and https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, no UI, not enabled by default
|-
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters)
|-
| FM Transmitter || Not yet ||
|-
| FM Receiver || Not yet || Depends on Bluetooth
|-
| Accelerometer || Not yet || Available as input device, needs MCE work
|-
| Proximity sensor || Not yet ||
|-
| HDMI-out || N/A ||
|-
| TV-out || Not yet || Should work in kernel, didn't get it to work yet
|-
| GPS || WIP || Works using gps3 and gpsd
|}
== Installation ==
Images: http://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to use/install Fremantle, or want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste.
To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="vfat"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
[[Category:Device]]
cd07f37daf772a39e3c8a37707eeef60fe92123d
328
327
2019-03-08T01:14:05Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The original Nokia N900.
== Notes ==
* Screen will be black for a few minutes while starting X - this is a known PowerVR issue. Just wait it out - it might freeze once more for a few minutes, but then will function OKayish
* If your battery is not calibrated, the battery applet will not give you accurate/good data. Charge the battery fully, and then let it discharge (almost) completely.
* Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful.
Also see: https://elinux.org/N900
Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 4.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Bluetooth || Not yet || Driver problems in mainline
|-
| (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || WIP || Works, but could be faster/better, https://github.com/maemo-leste/n9xx-xf86-video-fbdev-sgx
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || WIP || Works with ofono; but no work has been done on any integration; see https://github.com/maemo-leste/bugtracker/issues/61 and https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, no UI, not enabled by default
|-
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters)
|-
| FM Transmitter || Not yet ||
|-
| FM Receiver || Not yet || Depends on Bluetooth
|-
| Accelerometer || Not yet || Available as input device, needs MCE work
|-
| Proximity sensor || Not yet ||
|-
| HDMI-out || N/A ||
|-
| TV-out || Not yet || Should work in kernel, didn't get it to work yet
|-
| GPS || WIP || Works using gps3 and gpsd
|}
== Installation ==
Images: http://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to use/install Fremantle, or want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste.
To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
[[Category:Device]]
8d552593c1195b3e0f77edd5c0470c329e0d5df7
329
328
2019-03-08T01:16:32Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The original Nokia N900.
== Notes ==
* Screen will be black for a few minutes while starting X - this is a known PowerVR issue. Just wait it out - it might freeze once more for a few minutes, but then will function OKayish
* If your battery is not calibrated, the battery applet will not give you accurate/good data. Charge the battery fully, and then let it discharge (almost) completely.
* Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful.
Also see: https://elinux.org/N900
Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 4.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Bluetooth || Not yet || Driver problems in mainline
|-
| (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || WIP || Works, but could be faster/better, https://github.com/maemo-leste/n9xx-xf86-video-fbdev-sgx
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || WIP || Works with ofono; but no work has been done on any integration; see https://github.com/maemo-leste/bugtracker/issues/61 and https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, no UI, not enabled by default
|-
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters)
|-
| FM Transmitter || Not yet ||
|-
| FM Receiver || Not yet || Depends on Bluetooth
|-
| Accelerometer || Not yet || Available as input device, needs MCE work
|-
| Proximity sensor || Not yet ||
|-
| HDMI-out || N/A ||
|-
| TV-out || Not yet || Should work in kernel, didn't get it to work yet
|-
| GPS || WIP || Works using gps3 and gpsd
|}
== Installation ==
Images: http://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to use/install Fremantle, or want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste.
To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
[[Category:Device]]
b9f6ac1bf6857aa12334885c02e3c49dd869eeb4
330
329
2019-03-11T02:54:08Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The original Nokia N900.
== Notes ==
* Screen will be black for a few minutes while starting X - this is a known PowerVR issue. Just wait it out - it might freeze once more for a few minutes, but then will function OKayish
* If your battery is not calibrated, the battery applet will not give you accurate/good data. Charge the battery fully, and then let it discharge (almost) completely.
* Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful.
Also see: https://elinux.org/N900
Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.0 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip-5.0.y
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Bluetooth || Not yet || Driver problems in mainline
|-
| (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || WIP || Works, but could be faster/better, https://github.com/maemo-leste/n9xx-xf86-video-fbdev-sgx
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || WIP || Works with ofono; but no work has been done on any integration; see https://github.com/maemo-leste/bugtracker/issues/61 and https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, no UI, not enabled by default
|-
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters)
|-
| FM Transmitter || Not yet ||
|-
| FM Receiver || Not yet || Depends on Bluetooth
|-
| Accelerometer || Not yet || Available as input device, needs MCE work
|-
| Proximity sensor || Not yet ||
|-
| HDMI-out || N/A ||
|-
| TV-out || Not yet || Should work in kernel, didn't get it to work yet
|-
| GPS || WIP || Works using gps3 and gpsd
|}
== Installation ==
Images: http://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to use/install Fremantle, or want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste.
To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
[[Category:Device]]
c34b5f5a552cbea1c668f56ed4abfc89b54f6139
Main Page
0
1
308
244
2018-12-20T05:54:46Z
Sicelo
5
wikitext
text/x-wiki
= Description =
Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo (Fremantle). We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more.
You can find us on '''freenode''', channel '''#maemo-leste'''.
For an overview of the current status, you might want to check out: [[Status]]
Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels.
The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available, such as the N900.
So far we have set up Devuan/Debian repositories for our packages, with builds for armel, armhf and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software.
Also see our [[Leste_FAQ|FAQ]].
= Supported Devices =
See [[:Category:Device]]
= Development =
See [[Development]]
= Roadmap =
== Project milestones ==
https://github.com/maemo-leste/bugtracker/milestones
= Links =
<div>
*Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io]
*Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues]
*Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/]
*Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/]
The central point of meeting and talking is IRC and this thread: https://talk.maemo.org/showthread.php?t=100192.
</div>
*[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)]
0425fb1aaa9c499f4332eb4dbc293607bb0b2ad8
317
308
2019-01-25T22:54:43Z
Derby
3
/* Description */
wikitext
text/x-wiki
= Description =
Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo (Fremantle). We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more.
You can find us on '''freenode''', channel '''#maemo-leste'''.
For an overview of the current status, you might want to check out: [[Status]]
Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels.
The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers. For some devices, we have development images available, such as the N900.
So far we have set up Devuan/Debian repositories for our packages, with builds for armel, armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software.
Also see our [[Leste_FAQ|FAQ]].
= Supported Devices =
See [[:Category:Device]]
= Development =
See [[Development]]
= Roadmap =
== Project milestones ==
https://github.com/maemo-leste/bugtracker/milestones
= Links =
<div>
*Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io]
*Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues]
*Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/]
*Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/]
The central point of meeting and talking is IRC and this thread: https://talk.maemo.org/showthread.php?t=100192.
</div>
*[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)]
291f24f4ab8b1fb66388ae7eb54ff400c0090c6b
Status/Wireless
0
78
310
2018-12-20T08:58:56Z
Wizzup
4
Created page with "If Linux has a driver and wpa_supplicant can drive the device, our libicd-network-wpasupplicant should just work in combination with icd2."
wikitext
text/x-wiki
If Linux has a driver and wpa_supplicant can drive the device, our libicd-network-wpasupplicant should just work in combination with icd2.
0c88a8814435345815bc7a50a615a5ab1e75b56e
Leste FAQ
0
62
313
213
2018-12-20T21:51:28Z
Derby
3
Fix typos
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs.
Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the now very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone.
The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs.
Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle.
We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired.
Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases approximately every six weeks and also less frequent long term supported stable releases.
=== What's wrong with Android (vendor) Linux kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. It makes little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices run on mainline Linux, most of those with very limited hardware support. Linux kernels are forked once by AOSP, and then forked again by the device manufacturer which results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'' forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC.
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the anticipated Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for the Librem 5 phone.
=== How about other alternatives (Sailfish, Nemo, Ubuntu Touch, LuneOS, Tizen, etc)? ===
* Android kernels (Sailfish, Nemo, Ubuntu Touch, LuneOS)
** They prioritise device compatibility and ports over software freedoms
* Built for profit which means they may not have the best interests of the end-user at heart, especially those which purposely include closed components where it could have been avoided (Sailfish/Tizen)
** Proprietary application framework (Sailfish Silica components)
** Proprietary GUI (Sailfish)
** Unmaintained/vulnerable GPL v2 packages for the purpose of Tivoisation (Sailfish/Nemo)
* Mir debacle (Ubuntu Touch)
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticable in the project).
Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts.
But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== Does Maemo Leste have a process supervisor? ===
Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
02c8fce20228e87fce1f1bfa27e28c24c7f29de4
323
313
2019-03-05T13:04:35Z
Derby
3
/* What is mainline Linux? */
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs.
Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the now very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone.
The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs.
Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle.
We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired.
Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases approximately every eight to nine weeks and also less frequent long term supported stable releases.
=== What's wrong with Android (vendor) Linux kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. It makes little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices run on mainline Linux, most of those with very limited hardware support. Linux kernels are forked once by AOSP, and then forked again by the device manufacturer which results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'' forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC.
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the anticipated Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for the Librem 5 phone.
=== How about other alternatives (Sailfish, Nemo, Ubuntu Touch, LuneOS, Tizen, etc)? ===
* Android kernels (Sailfish, Nemo, Ubuntu Touch, LuneOS)
** They prioritise device compatibility and ports over software freedoms
* Built for profit which means they may not have the best interests of the end-user at heart, especially those which purposely include closed components where it could have been avoided (Sailfish/Tizen)
** Proprietary application framework (Sailfish Silica components)
** Proprietary GUI (Sailfish)
** Unmaintained/vulnerable GPL v2 packages for the purpose of Tivoisation (Sailfish/Nemo)
* Mir debacle (Ubuntu Touch)
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticable in the project).
Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts.
But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== Does Maemo Leste have a process supervisor? ===
Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
2a420297148fcc6efd1b99525a8f3b93a4bde21a
332
323
2019-03-13T20:17:24Z
Derby
3
/* What's wrong with Android (vendor) Linux kernels? */
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs.
Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the now very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone.
The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs.
Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle.
We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired.
Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases approximately every eight to nine weeks and also less frequent long term supported stable releases.
=== What's wrong with Android (vendor) Linux kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. It makes little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices run on mainline Linux, most of those that do have very limited hardware support. Linux kernels are forked once by AOSP, and then forked again by the device manufacturer which results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'' forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC.
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the anticipated Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for the Librem 5 phone.
=== How about other alternatives (Sailfish, Nemo, Ubuntu Touch, LuneOS, Tizen, etc)? ===
* Android kernels (Sailfish, Nemo, Ubuntu Touch, LuneOS)
** They prioritise device compatibility and ports over software freedoms
* Built for profit which means they may not have the best interests of the end-user at heart, especially those which purposely include closed components where it could have been avoided (Sailfish/Tizen)
** Proprietary application framework (Sailfish Silica components)
** Proprietary GUI (Sailfish)
** Unmaintained/vulnerable GPL v2 packages for the purpose of Tivoisation (Sailfish/Nemo)
* Mir debacle (Ubuntu Touch)
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticable in the project).
Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts.
But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== Does Maemo Leste have a process supervisor? ===
Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
25ed42efae0aa965aa46b829d246d7a7fe11ea1e
333
332
2019-03-13T20:41:48Z
Derby
3
/* What's wrong with Android (vendor) Linux kernels? */
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs.
Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the now very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone.
The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs.
Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle.
We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired.
Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases approximately every eight to nine weeks and also less frequent long term supported stable releases.
=== What's wrong with Android (vendor) Linux kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained with very little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'', forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC.
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the anticipated Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for the Librem 5 phone.
=== How about other alternatives (Sailfish, Nemo, Ubuntu Touch, LuneOS, Tizen, etc)? ===
* Android kernels (Sailfish, Nemo, Ubuntu Touch, LuneOS)
** They prioritise device compatibility and ports over software freedoms
* Built for profit which means they may not have the best interests of the end-user at heart, especially those which purposely include closed components where it could have been avoided (Sailfish/Tizen)
** Proprietary application framework (Sailfish Silica components)
** Proprietary GUI (Sailfish)
** Unmaintained/vulnerable GPL v2 packages for the purpose of Tivoisation (Sailfish/Nemo)
* Mir debacle (Ubuntu Touch)
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticable in the project).
Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts.
But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== Does Maemo Leste have a process supervisor? ===
Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
dcd7445203509a54d0cba98308dcb6dafb73e1eb
335
333
2019-03-16T15:43:34Z
Derby
3
/* How about other alternatives (Sailfish, Nemo, Ubuntu Touch, LuneOS, Tizen, etc)? */
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs.
Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the now very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone.
The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs.
Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle.
We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired.
Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases approximately every eight to nine weeks and also less frequent long term supported stable releases.
=== What's wrong with Android (vendor) Linux kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained with very little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise ''planned obsolescence''. This practice is a huge contributor to our society's ''throw-away culture'', forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC.
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the anticipated Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for the Librem 5 phone.
=== How about other alternative distributions (Sailfish, Nemo, Ubuntu Touch, LuneOS, Tizen, etc)? ===
The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided.
One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution.
Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland.
Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]] in order to prioritise device compatibility and ease of ports over software freedoms.
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticable in the project).
Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts.
But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== Does Maemo Leste have a process supervisor? ===
Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
432b83113776ace79385ad90662b98d0a4a4bc58
336
335
2019-03-16T15:49:47Z
Derby
3
/* What's wrong with Android (vendor) Linux kernels? */
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs.
Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the now very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone.
The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs.
Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle.
We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired.
Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases approximately every eight to nine weeks and also less frequent long term supported stable releases.
=== What's wrong with Android (vendor) Linux kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained with very little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with cutting-edge kernel development whilst also giving us the option of providing stable kernels. Mainline Linux does not suffer from any of the problems associated with Android kernels. Linux kernel development does not accept regressions and ensures kernel-to-userspace ABI stability meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC.
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the anticipated Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for the Librem 5 phone.
=== How about other alternative distributions (Sailfish, Nemo, Ubuntu Touch, LuneOS, Tizen, etc)? ===
The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided.
One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution.
Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland.
Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]] in order to prioritise device compatibility and ease of ports over software freedoms.
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticable in the project).
Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts.
But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== Does Maemo Leste have a process supervisor? ===
Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
b17dcedd072410575d098c030efd5381562a40b2
337
336
2019-03-19T23:00:14Z
Derby
3
/* Why is it important to run mainline Linux? */
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs.
Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the now very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone.
The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs.
Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle.
We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired.
Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases approximately every eight to nine weeks and also less frequent long term supported stable releases.
=== What's wrong with Android (vendor) Linux kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained with very little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git cutting-edge kernel development], whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git stable kernels]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. This means regressions are not allowed and ensures kernel-to-userspace ABI stability, meaning that once a device is supported, we can be sure that it will continue to work and will receive regular updates for decades to come, just like running Linux on your PC.
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the anticipated Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for the Librem 5 phone.
=== How about other alternative distributions (Sailfish, Nemo, Ubuntu Touch, LuneOS, Tizen, etc)? ===
The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided.
One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution.
Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland.
Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]] in order to prioritise device compatibility and ease of ports over software freedoms.
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticable in the project).
Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts.
But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== Does Maemo Leste have a process supervisor? ===
Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
568526a7ad61114f157a1b32bc55c314eb145026
338
337
2019-03-19T23:01:57Z
Derby
3
/* Why is it important to run mainline Linux? */
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs.
Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the now very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone.
The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs.
Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle.
We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired.
Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases approximately every eight to nine weeks and also less frequent long term supported stable releases.
=== What's wrong with Android (vendor) Linux kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained with very little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git cutting-edge kernel development], whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git stable kernels]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. This means regressions are not allowed and ensures kernel-to-userspace ABI stability, meaning that once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC.
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the anticipated Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for the Librem 5 phone.
=== How about other alternative distributions (Sailfish, Nemo, Ubuntu Touch, LuneOS, Tizen, etc)? ===
The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided.
One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution.
Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland.
Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]] in order to prioritise device compatibility and ease of ports over software freedoms.
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticable in the project).
Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts.
But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== Does Maemo Leste have a process supervisor? ===
Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
fe38a38d1d8f435f003aec9a6f887747d7c051d5
339
338
2019-03-19T23:07:56Z
Derby
3
/* How about other alternative distributions (Sailfish, Nemo, Ubuntu Touch, LuneOS, Tizen, etc)? */
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs.
Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the now very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone.
The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs.
Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle.
We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired.
Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases approximately every eight to nine weeks and also less frequent long term supported stable releases.
=== What's wrong with Android (vendor) Linux kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained with very little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git cutting-edge kernel development], whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git stable kernels]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. This means regressions are not allowed and ensures kernel-to-userspace ABI stability, meaning that once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC.
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the anticipated Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for the Librem 5 phone.
=== How about other alternative distributions (Sailfish, Nemo, Ubuntu Touch, LuneOS, Tizen, etc)? ===
The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided.
One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution.
Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland.
Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]] in order to prioritise device compatibility and ease of ports over software freedoms.
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticable in the project).
Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts.
But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== Does Maemo Leste have a process supervisor? ===
Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
3888a3bd452a132c8e99a70b12968cc4f5d0e02d
340
339
2019-03-23T15:38:28Z
Derby
3
/* Why is it important to run mainline Linux? */
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs.
Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the now very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone.
The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs.
Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle.
We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired.
Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases approximately every eight to nine weeks and also less frequent long term supported stable releases.
=== What's wrong with Android (vendor) Linux kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained with very little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git cutting-edge kernel development], whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git stable kernels]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API/ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline].
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the anticipated Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for the Librem 5 phone.
=== How about other alternative distributions (Sailfish, Nemo, Ubuntu Touch, LuneOS, Tizen, etc)? ===
The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided.
One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution.
Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland.
Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]] in order to prioritise device compatibility and ease of ports over software freedoms.
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticable in the project).
Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts.
But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 are broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== Does Maemo Leste have a process supervisor? ===
Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
b720233d87e753c35bfac007f8928291b9f80e5b
341
340
2019-03-23T15:42:46Z
Derby
3
/* Why is Maemo Leste based on Devuan rather than Debian? */
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs.
Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the now very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone.
The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs.
Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle.
We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired.
Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases approximately every eight to nine weeks and also less frequent long term supported stable releases.
=== What's wrong with Android (vendor) Linux kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained with very little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git cutting-edge kernel development], whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git stable kernels]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API/ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline].
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the anticipated Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for the Librem 5 phone.
=== How about other alternative distributions (Sailfish, Nemo, Ubuntu Touch, LuneOS, Tizen, etc)? ===
The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided.
One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution.
Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland.
Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]] in order to prioritise device compatibility and ease of ports over software freedoms.
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticable in the project).
Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts.
But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== Does Maemo Leste have a process supervisor? ===
Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
639e2b67843816fc0b42d77c7f7e054f0992743a
342
341
2019-03-23T15:53:42Z
Derby
3
/* Why is Maemo Leste based on Devuan rather than Debian? */
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs.
Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the now very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone.
The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs.
Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle.
We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired.
Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases approximately every eight to nine weeks and also less frequent long term supported stable releases.
=== What's wrong with Android (vendor) Linux kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained with very little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git cutting-edge kernel development], whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git stable kernels]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API/ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline].
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the anticipated Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for the Librem 5 phone.
=== How about other alternative distributions (Sailfish, Nemo, Ubuntu Touch, LuneOS, Tizen, etc)? ===
The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided.
One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution.
Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland.
Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]] in order to prioritise device compatibility and ease of ports over software freedoms.
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticable in the project).
Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts.
But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== Does Maemo Leste have a process supervisor? ===
Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
08b2a2c235473d08023b7ed47f2fa49fdb7c44ab
343
342
2019-03-23T16:45:06Z
Derby
3
/* What is mainline Linux? */
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs.
Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the now very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone.
The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs.
Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle.
We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired.
Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long term supported stable releases.
=== What's wrong with Android (vendor) Linux kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained with very little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git cutting-edge kernel development], whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git stable kernels]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API/ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline].
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the anticipated Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for the Librem 5 phone.
=== How about other alternative distributions (Sailfish, Nemo, Ubuntu Touch, LuneOS, Tizen, etc)? ===
The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided.
One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution.
Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland.
Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]] in order to prioritise device compatibility and ease of ports over software freedoms.
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticable in the project).
Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts.
But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== Does Maemo Leste have a process supervisor? ===
Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
3ae68df413af31305bca13ce9b16d3a532525e41
344
343
2019-03-23T17:09:39Z
Derby
3
/* Why is it important to run mainline Linux? */
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs.
Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the now very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone.
The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs.
Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle.
We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired.
Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long term supported stable releases.
=== What's wrong with Android (vendor) Linux kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained with very little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline].
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the anticipated Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for the Librem 5 phone.
=== How about other alternative distributions (Sailfish, Nemo, Ubuntu Touch, LuneOS, Tizen, etc)? ===
The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided.
One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution.
Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland.
Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]] in order to prioritise device compatibility and ease of ports over software freedoms.
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticable in the project).
Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts.
But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== Does Maemo Leste have a process supervisor? ===
Maemo Leste currently uses ''dsme'' from Fremantle which provides supervision over certain processes. It's possible that this may eventually be replaced with a modern process supervisor.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
23c2764f67a07d4529c75ebb8a463f46106e152e
345
344
2019-03-23T17:19:03Z
Derby
3
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs.
Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the now very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone.
The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs.
Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle.
We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired.
Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long term supported stable releases.
=== What's wrong with Android (vendor) Linux kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained with very little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline].
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the anticipated Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for the Librem 5 phone.
=== How about other alternative distributions (Sailfish, Nemo, Ubuntu Touch, LuneOS, Tizen, etc)? ===
The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided.
One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution.
Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland.
Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]] in order to prioritise device compatibility and ease of ports over software freedoms.
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticable in the project).
Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts.
But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
6df9726e5d45dea7336f43d91cb5d982d8d2733c
Virtual Machine
0
60
318
294
2019-02-06T17:19:21Z
Jonsger
18
indent as code
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Generic
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
Generic virtual machine target. This is particularly useful when doing development and testing.
== Installation ==
https://maedevu.maemo.org/images/virtual-machines/
There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration.
Converting the qcow2 image to raw allows it to be used on real hardware.
=== VirtualBox ===
Download latest .vdi.xz image, unpack it with "xz -d" command.
Create new Virtual Machine, select "Debian (64-bit)" and 1024MB RAM. Use the downloaded file as virtual hard disk.
You are done!
=== QEMU ===
Not all QEMU versions might work, see this issue for a known working version, as well as a working qemu command line: https://github.com/maemo-leste/bugtracker/issues/198
=== Real hardware ===
xz -d maemo-leste-1.0-amd64-virtual-20180425.qcow2.xz
qemu-img convert -f qcow2 -O raw maemo-leste-1.0-amd64-virtual-20180425.qcow2 delme.img
Now you can copy delme.img ... to a spare harddrive? I tried with USB stick and could not get that to work.
== Initial configuration ==
On the first run you may want to generate ssh host keys and set the timezone. To do so open the "X Terminal" application and run:
sudo su -
dpkg-reconfigure openssh-server
dpkg-reconfigure tzdata
Make the system up-to-date:
apt-get update
apt-get upgrade
apt-get install linux-image-amd64
reboot
To get networking to work (at least in virtualbox), launch a shell and do
sudo ifconfig eth0 up
sudo dhclient eth0
[[Category:Device]]
4bbe2576a774bdd681500f45ddbf7acb166cc1a4
319
318
2019-02-06T17:39:09Z
Jonsger
18
/* Initial configuration */ we have apt :)
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Generic
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
Generic virtual machine target. This is particularly useful when doing development and testing.
== Installation ==
https://maedevu.maemo.org/images/virtual-machines/
There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration.
Converting the qcow2 image to raw allows it to be used on real hardware.
=== VirtualBox ===
Download latest .vdi.xz image, unpack it with "xz -d" command.
Create new Virtual Machine, select "Debian (64-bit)" and 1024MB RAM. Use the downloaded file as virtual hard disk.
You are done!
=== QEMU ===
Not all QEMU versions might work, see this issue for a known working version, as well as a working qemu command line: https://github.com/maemo-leste/bugtracker/issues/198
=== Real hardware ===
xz -d maemo-leste-1.0-amd64-virtual-20180425.qcow2.xz
qemu-img convert -f qcow2 -O raw maemo-leste-1.0-amd64-virtual-20180425.qcow2 delme.img
Now you can copy delme.img ... to a spare harddrive? I tried with USB stick and could not get that to work.
== Initial configuration ==
On the first run you may want to generate ssh host keys and set the timezone. To do so open the "X Terminal" application and run:
sudo su -
dpkg-reconfigure openssh-server
dpkg-reconfigure tzdata
Make the system up-to-date:
apt update
apt upgrade
apt install linux-image-amd64
reboot
To get networking to work (at least in virtualbox), launch a shell and do
sudo ifconfig eth0 up
sudo dhclient eth0
[[Category:Device]]
cd73e25bdfb65e1bd223d713e13a1a988d9720d1
320
319
2019-02-06T17:45:31Z
Jonsger
18
/* Installation */ provide example for QEMU, but still link to the relevant GitHub issue
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Generic
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
Generic virtual machine target. This is particularly useful when doing development and testing.
== Installation ==
https://maedevu.maemo.org/images/virtual-machines/
There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration.
Converting the qcow2 image to raw allows it to be used on real hardware.
=== VirtualBox ===
Download latest .vdi.xz image, unpack it with "xz -d" command.
Create new Virtual Machine, select "Debian (64-bit)" and 1024MB RAM. Use the downloaded file as virtual hard disk.
You are done!
=== QEMU ===
In general something like
qemu-system-x86_64 -hda maemo-leste-1.0-amd64.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024
should work. But there seem to be issues with some QEMU versions, for more details see [https://github.com/maemo-leste/bugtracker/issues/198 issue#198].
=== Real hardware ===
xz -d maemo-leste-1.0-amd64-virtual-20180425.qcow2.xz
qemu-img convert -f qcow2 -O raw maemo-leste-1.0-amd64-virtual-20180425.qcow2 delme.img
Now you can copy delme.img ... to a spare harddrive? I tried with USB stick and could not get that to work.
== Initial configuration ==
On the first run you may want to generate ssh host keys and set the timezone. To do so open the "X Terminal" application and run:
sudo su -
dpkg-reconfigure openssh-server
dpkg-reconfigure tzdata
Make the system up-to-date:
apt update
apt upgrade
apt install linux-image-amd64
reboot
To get networking to work (at least in virtualbox), launch a shell and do
sudo ifconfig eth0 up
sudo dhclient eth0
[[Category:Device]]
54137e69c02bb264f5525ed8df04a02fcb79c402
Motorola Droid 4
0
50
321
230
2019-03-03T21:10:24Z
Wizzup
4
Update for to-be 5.0 kernel
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
...
== Notes ==
Also see: http://elektranox.org/droid4/
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.0 || Mainline + some patches not yet in mainline
|-
| Serial || Yes || On MicroUSB port, requires special cable
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]]
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Reported to work, no UI, requires extra software, ofono patches, kernel patches
|-
| SMS || WIP || Reported to work, no UI, requires extra software, ofono patches, kernel patches
|-
| Phone calls || WIP || Reported to work, no UI, requires extra software, ofono patches, kernel patches
|-
| FM Transmitter || N/A? ||
|-
| FM Receiver || ? ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|}
== Installation ==
''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card '''
PostmarketOS has some information how to install safestrap: [https://wiki.postmarketos.org/wiki/Motorola_Droid_4_(motorola-maserati) in wiki]
(This is the boot method currently being used but we'll probably replace this with [https://github.com/tmlind/droid4-kexecboot droid4-kexecboot] to aid kernel updates via deb package)
Flashing the zip file is quite confusing / tricky:
Boot options, select slot with Leste, Activate.
In main menu: Install, scroll down to select ddroid-....zip file, swipe to confirm flash. You will get error, including "ApplyParsePerms, set_metadata_recursive, Error executing updater binary, Unable to mount." Red "failed" will appear. These are normal. Proceed by selecting "Reboot System", you'll get one more warning that system is not installed, swipe to confirm reboot.
Red motorola logo will appear, press search button to continue boot, phone vibrates, then vibrates again, then green led comes on. After about a minute, console appears, then disappears and X comes to life.
== Kernel development ==
Linux 4.14 plus patches
Status: http://elektranox.org/droid4/
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]
[[Category:Device]]
8196a91ab0c56b88c3aeac36abbdb66fb54c52a8
322
321
2019-03-03T21:30:05Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
...
== Notes ==
Also see: http://elektranox.org/droid4/
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.0 || Mainline + some patches not yet in mainline
|-
| Serial || Yes || On MicroUSB port, requires special cable
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]]
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Reported to work, no UI, requires extra software, ofono patches, kernel patches
|-
| SMS || WIP || Reported to work, no UI, requires extra software, ofono patches, kernel patches
|-
| Phone calls || WIP || Reported to work, no UI, requires extra software, ofono patches, kernel patches
|-
| FM Transmitter || N/A? ||
|-
| FM Receiver || ? ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|}
== Installation using kexecboot ==
This procedure will erase existing android and/or safestrap.
Requirements:
* MicroSD card, MicroUSB cable and Droid4
* Charged Droid4
* fastboot, adb and git, xzcat, dd
* Host Linux system
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest '''maemo-leste-1.0-armhf-droid4-*.img.xz'''
And clone:
* https://github.com/tmlind/droid4-kexecboot.git
briefly show kexecboot.
Installation:
# Power off Droid4
# Create a working directory with above mentioned files in it
# unzip '''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip'''
#* If you have safestrap on the device, turn on the droid4, go to safestrap, reboot, reboot to bootloader
#* If you do not have safestrap, turn on the device, and issue on the host: '''adb reboot bootloader'''
# Run the '''flash-droid-4-fw.sh''' script from the extracted android directory ('''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml'''), run as sudo if it does not find the device
# Wait for the flashing script to complete. This can take a few minutes. The droid will reboot a couple of times to the bootloader.
Then go to the '''droid4-kexecboot''' directory and run (possibly as sudo):
# fastboot flash mbm path/to/android/zip/allow-mbmloader-flashing-mbm.bin
# fastboot reboot-bootloader
# fastboot flash bpsw current/droid4-kexecboot.img
# fastboot flash utags utags-mmcblk1p13.bin
Then reboot the device (hold the power button for one or two seconds) and '''wait for it to get through the first boot'''. It will show a green android with something moving in it's stomach, as well as a progress bar. Then the device should show kexecboot for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard, this is how I did it:
# '''xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz > maemo-leste-1.0-armhf-droid4-20190227.img'''
# '''sudo dd if=maemo-leste-1.0-armhf-droid4-20190227.img of=/dev/MICROSDCARD-DEVICE'''
# '''sync; sync; sync'''
Wait for the sync to complete and and insert the SD card into the Droid 4. Reboot the device and select Maemo Leste from the kexecboot menu.
You will now have see Maemo Leste boot up, and show you an unaccelerated hildon-desktop after about one minute.
== Safestrap+ddroid Installation (no longer recommended and outdated) ==
''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card '''
PostmarketOS has some information how to install safestrap: [https://wiki.postmarketos.org/wiki/Motorola_Droid_4_(motorola-maserati) in wiki]
(This is the boot method currently being used but we'll probably replace this with [https://github.com/tmlind/droid4-kexecboot droid4-kexecboot] to aid kernel updates via deb package)
Flashing the zip file is quite confusing / tricky:
Boot options, select slot with Leste, Activate.
In main menu: Install, scroll down to select ddroid-....zip file, swipe to confirm flash. You will get error, including "ApplyParsePerms, set_metadata_recursive, Error executing updater binary, Unable to mount." Red "failed" will appear. These are normal. Proceed by selecting "Reboot System", you'll get one more warning that system is not installed, swipe to confirm reboot.
Red motorola logo will appear, press search button to continue boot, phone vibrates, then vibrates again, then green led comes on. After about a minute, console appears, then disappears and X comes to life.
== Kernel development (old and outdated) ==
Linux 4.14 plus patches
Status: http://elektranox.org/droid4/
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]
[[Category:Device]]
20d49879467ec3704aaebaf3f776d262080fd459
331
322
2019-03-11T16:13:58Z
Spinal
13
/* Installation using kexecboot */ Optimize flashing image to sdcard command sequence
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
...
== Notes ==
Also see: http://elektranox.org/droid4/
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.0 || Mainline + some patches not yet in mainline
|-
| Serial || Yes || On MicroUSB port, requires special cable
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]]
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Reported to work, no UI, requires extra software, ofono patches, kernel patches
|-
| SMS || WIP || Reported to work, no UI, requires extra software, ofono patches, kernel patches
|-
| Phone calls || WIP || Reported to work, no UI, requires extra software, ofono patches, kernel patches
|-
| FM Transmitter || N/A? ||
|-
| FM Receiver || ? ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|}
== Installation using kexecboot ==
This procedure will erase existing android and/or safestrap.
Requirements:
* MicroSD card, MicroUSB cable and Droid4
* Charged Droid4
* fastboot, adb and git, xzcat, dd
* Host Linux system
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest '''maemo-leste-1.0-armhf-droid4-*.img.xz'''
And clone:
* https://github.com/tmlind/droid4-kexecboot.git
briefly show kexecboot.
Installation:
# Power off Droid4
# Create a working directory with above mentioned files in it
# unzip '''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip'''
#* If you have safestrap on the device, turn on the droid4, go to safestrap, reboot, reboot to bootloader
#* If you do not have safestrap, turn on the device, and issue on the host: '''adb reboot bootloader'''
# Run the '''flash-droid-4-fw.sh''' script from the extracted android directory ('''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml'''), run as sudo if it does not find the device
# Wait for the flashing script to complete. This can take a few minutes. The droid will reboot a couple of times to the bootloader.
Then go to the '''droid4-kexecboot''' directory and run (possibly as sudo):
# fastboot flash mbm path/to/android/zip/allow-mbmloader-flashing-mbm.bin
# fastboot reboot-bootloader
# fastboot flash bpsw current/droid4-kexecboot.img
# fastboot flash utags utags-mmcblk1p13.bin
Then reboot the device (hold the power button for one or two seconds) and '''wait for it to get through the first boot'''. It will show a green android with something moving in it's stomach, as well as a progress bar. Then the device should show kexecboot for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard, this is how I did it:
# '''xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE'''
# '''sync'''
Wait for the sync to complete and and insert the SD card into the Droid 4. Reboot the device and select Maemo Leste from the kexecboot menu.
You will now have see Maemo Leste boot up, and show you an unaccelerated hildon-desktop after about one minute.
== Safestrap+ddroid Installation (no longer recommended and outdated) ==
''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card '''
PostmarketOS has some information how to install safestrap: [https://wiki.postmarketos.org/wiki/Motorola_Droid_4_(motorola-maserati) in wiki]
(This is the boot method currently being used but we'll probably replace this with [https://github.com/tmlind/droid4-kexecboot droid4-kexecboot] to aid kernel updates via deb package)
Flashing the zip file is quite confusing / tricky:
Boot options, select slot with Leste, Activate.
In main menu: Install, scroll down to select ddroid-....zip file, swipe to confirm flash. You will get error, including "ApplyParsePerms, set_metadata_recursive, Error executing updater binary, Unable to mount." Red "failed" will appear. These are normal. Proceed by selecting "Reboot System", you'll get one more warning that system is not installed, swipe to confirm reboot.
Red motorola logo will appear, press search button to continue boot, phone vibrates, then vibrates again, then green led comes on. After about a minute, console appears, then disappears and X comes to life.
== Kernel development (old and outdated) ==
Linux 4.14 plus patches
Status: http://elektranox.org/droid4/
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]
[[Category:Device]]
7b1d08b2c35c105909b4d01c72336c766244b617
334
331
2019-03-13T20:49:45Z
Derby
3
/* Safestrap+ddroid Installation (no longer recommended and outdated) */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
...
== Notes ==
Also see: http://elektranox.org/droid4/
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.0 || Mainline + some patches not yet in mainline
|-
| Serial || Yes || On MicroUSB port, requires special cable
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]]
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Reported to work, no UI, requires extra software, ofono patches, kernel patches
|-
| SMS || WIP || Reported to work, no UI, requires extra software, ofono patches, kernel patches
|-
| Phone calls || WIP || Reported to work, no UI, requires extra software, ofono patches, kernel patches
|-
| FM Transmitter || N/A? ||
|-
| FM Receiver || ? ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|}
== Installation using kexecboot ==
This procedure will erase existing android and/or safestrap.
Requirements:
* MicroSD card, MicroUSB cable and Droid4
* Charged Droid4
* fastboot, adb and git, xzcat, dd
* Host Linux system
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest '''maemo-leste-1.0-armhf-droid4-*.img.xz'''
And clone:
* https://github.com/tmlind/droid4-kexecboot.git
briefly show kexecboot.
Installation:
# Power off Droid4
# Create a working directory with above mentioned files in it
# unzip '''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip'''
#* If you have safestrap on the device, turn on the droid4, go to safestrap, reboot, reboot to bootloader
#* If you do not have safestrap, turn on the device, and issue on the host: '''adb reboot bootloader'''
# Run the '''flash-droid-4-fw.sh''' script from the extracted android directory ('''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml'''), run as sudo if it does not find the device
# Wait for the flashing script to complete. This can take a few minutes. The droid will reboot a couple of times to the bootloader.
Then go to the '''droid4-kexecboot''' directory and run (possibly as sudo):
# fastboot flash mbm path/to/android/zip/allow-mbmloader-flashing-mbm.bin
# fastboot reboot-bootloader
# fastboot flash bpsw current/droid4-kexecboot.img
# fastboot flash utags utags-mmcblk1p13.bin
Then reboot the device (hold the power button for one or two seconds) and '''wait for it to get through the first boot'''. It will show a green android with something moving in it's stomach, as well as a progress bar. Then the device should show kexecboot for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard, this is how I did it:
# '''xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE'''
# '''sync'''
Wait for the sync to complete and and insert the SD card into the Droid 4. Reboot the device and select Maemo Leste from the kexecboot menu.
You will now have see Maemo Leste boot up, and show you an unaccelerated hildon-desktop after about one minute.
== Safestrap+ddroid Installation (no longer recommended and outdated) ==
''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card '''
PostmarketOS has some information how to install safestrap: [https://wiki.postmarketos.org/wiki/Motorola_Droid_4_(motorola-maserati) in wiki]
Flashing the zip file is quite confusing / tricky:
Boot options, select slot with Leste, Activate.
In main menu: Install, scroll down to select ddroid-....zip file, swipe to confirm flash. You will get error, including "ApplyParsePerms, set_metadata_recursive, Error executing updater binary, Unable to mount." Red "failed" will appear. These are normal. Proceed by selecting "Reboot System", you'll get one more warning that system is not installed, swipe to confirm reboot.
Red motorola logo will appear, press search button to continue boot, phone vibrates, then vibrates again, then green led comes on. After about a minute, console appears, then disappears and X comes to life.
== Kernel development (old and outdated) ==
Linux 4.14 plus patches
Status: http://elektranox.org/droid4/
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]
[[Category:Device]]
3138deae813000914226db09e51d2ecea0300bf6
Development
0
61
324
194
2019-03-05T16:37:03Z
Spinal
13
Add "Multiarch" section
wikitext
text/x-wiki
Maemo Leste development is split up in a few different places.
== Communication and organising ==
* Our https://maemo-leste.github.io website is where we post (news) updates, as well as on this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192
* There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker
* The day-to-day development and user chatter mostly takes place in the [[IRC channel]] (We might eventually want to switch some discussion to a mailing list, but that has not happened so far. Please raise your voice if this is important to you.)
* This wiki: for documenting the status of various long-running projects, status per device, etc.
== Technical ==
All our git repositories can be found here: https://github.com/maemo-leste
=== Jenkins ===
To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/
=== Developing on a device ===
Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle users, this might sound weird, but there is essentially no need for a 'scratchbox' type VM)
The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]].
=== Multiarch ===
Multiarch is ability present on modern Debian systems that allows you to develop for Maemo Leste using your PC/Mac/Notebook etc.
Here we show how you can easily setup multiarch environment and build some packages on a Debian system.
This can be adapted to develop on other systems as well. If you have such experience, please feel free to expand this section to help more people be involved in Maemo Leste development.
# Make a container for our development system
DIR=/var/lib/container/stretch
sudo apt-get install qemu-user-static debootstrap &&
sudo debootstrap stretch $DIR http://deb.debian.org/debian &&
echo "strech_cross" | sudo tee $DIR/etc/debian_chroot &&
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR
# Setup build environment inside the container
cat >> ~/.bashrc << EOF &&
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
export CC=arm-linux-gnueabihf-gcc
EOF
dpkg --add-architecture armhf &&
apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates &&
cat >> /etc/apt/sources.list << "EOF" &&
deb http://maedevu.maemo.org/leste leste main contrib non-free n900
deb http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900
deb-src http://deb.debian.org/debian stretch main
deb-src http://maedevu.maemo.org/leste leste main contrib non-free n900
deb-src http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900
EOF
wget https://maedevu.maemo.org/testing-key.asc &&
apt-key add testing-key.asc &&
rm -f testing-key.asc &&
rm -f /var/cache/apt/archives/*.deb &&
apt-get update &&
exec bash
# Build Xorg for Nokia N900
apt-get source xserver-xorg-core &&
cd xorg-server-1.19.2 &&
wget https://raw.githubusercontent.com/buildroot/buildroot/master/package/x11r7/xserver_xorg-server/1.20.3/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch &&
mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches &&
echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series &&
apt-get -y build-dep -a armhf . &&
time dpkg-buildpackage -aarmhf -j4 -b &&
echo OK || echo FAIL
To login the container later just issue the command:
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch
If you wish to remove the container, just delete the directory we created:
rm -fr /var/lib/container/stretch
=== TODO ===
* Discuss where people look to pick up issues (clear answer is the bugtracker, but still)
* How people can make changes and how to send them in
5650c1448893cf85adc60ebf7f7e5cdd0d0453ad
325
324
2019-03-05T16:38:56Z
Spinal
13
/* Multiarch */ Minor fix
wikitext
text/x-wiki
Maemo Leste development is split up in a few different places.
== Communication and organising ==
* Our https://maemo-leste.github.io website is where we post (news) updates, as well as on this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192
* There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker
* The day-to-day development and user chatter mostly takes place in the [[IRC channel]] (We might eventually want to switch some discussion to a mailing list, but that has not happened so far. Please raise your voice if this is important to you.)
* This wiki: for documenting the status of various long-running projects, status per device, etc.
== Technical ==
All our git repositories can be found here: https://github.com/maemo-leste
=== Jenkins ===
To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/
=== Developing on a device ===
Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle users, this might sound weird, but there is essentially no need for a 'scratchbox' type VM)
The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]].
=== Multiarch ===
Multiarch is ability present on modern Debian systems that allows you to develop for Maemo Leste using your PC/Mac/Notebook etc.
Here we show how you can easily setup multiarch environment and build some packages on a Debian system.
This can be adapted to develop on other systems as well. If you have such experience, please feel free to expand this section to help more people be involved in Maemo Leste development.
# Make a container for our development system
DIR=/var/lib/container/stretch
sudo apt-get install qemu-user-static debootstrap &&
sudo debootstrap stretch $DIR http://deb.debian.org/debian &&
echo "strech_cross" | sudo tee $DIR/etc/debian_chroot &&
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR
# Setup build environment inside the container
cat >> ~/.bashrc << EOF &&
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
export CC=arm-linux-gnueabihf-gcc
EOF
dpkg --add-architecture armhf &&
apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates &&
cat >> /etc/apt/sources.list << "EOF" &&
deb http://maedevu.maemo.org/leste leste main contrib non-free n900
deb http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900
deb-src http://deb.debian.org/debian stretch main
deb-src http://maedevu.maemo.org/leste leste main contrib non-free n900
deb-src http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900
EOF
wget https://maedevu.maemo.org/testing-key.asc &&
apt-key add testing-key.asc &&
rm -f testing-key.asc &&
rm -f /var/cache/apt/archives/*.deb &&
apt-get update &&
exec bash
# Build Xorg for Nokia N900
apt-get source xserver-xorg-core &&
cd xorg-server-1.19.2 &&
wget https://raw.githubusercontent.com/buildroot/buildroot/master/package/x11r7/xserver_xorg-server/1.20.3/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch &&
mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches &&
echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series &&
apt-get -y build-dep -a armhf . &&
time dpkg-buildpackage -aarmhf -j4 -b &&
echo OK || echo FAIL
To login the container later, issue the command:
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch
If you wish to remove the container, just delete the directory we created:
rm -fr /var/lib/container/stretch
=== TODO ===
* Discuss where people look to pick up issues (clear answer is the bugtracker, but still)
* How people can make changes and how to send them in
737d82b572aa54dffdf1523febf0bab4945bb92c
326
325
2019-03-05T16:40:44Z
Spinal
13
/* Multiarch */ Add sudo to rm command
wikitext
text/x-wiki
Maemo Leste development is split up in a few different places.
== Communication and organising ==
* Our https://maemo-leste.github.io website is where we post (news) updates, as well as on this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192
* There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker
* The day-to-day development and user chatter mostly takes place in the [[IRC channel]] (We might eventually want to switch some discussion to a mailing list, but that has not happened so far. Please raise your voice if this is important to you.)
* This wiki: for documenting the status of various long-running projects, status per device, etc.
== Technical ==
All our git repositories can be found here: https://github.com/maemo-leste
=== Jenkins ===
To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/
=== Developing on a device ===
Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle users, this might sound weird, but there is essentially no need for a 'scratchbox' type VM)
The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]].
=== Multiarch ===
Multiarch is ability present on modern Debian systems that allows you to develop for Maemo Leste using your PC/Mac/Notebook etc.
Here we show how you can easily setup multiarch environment and build some packages on a Debian system.
This can be adapted to develop on other systems as well. If you have such experience, please feel free to expand this section to help more people be involved in Maemo Leste development.
# Make a container for our development system
DIR=/var/lib/container/stretch
sudo apt-get install qemu-user-static debootstrap &&
sudo debootstrap stretch $DIR http://deb.debian.org/debian &&
echo "strech_cross" | sudo tee $DIR/etc/debian_chroot &&
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR
# Setup build environment inside the container
cat >> ~/.bashrc << EOF &&
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
export CC=arm-linux-gnueabihf-gcc
EOF
dpkg --add-architecture armhf &&
apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates &&
cat >> /etc/apt/sources.list << "EOF" &&
deb http://maedevu.maemo.org/leste leste main contrib non-free n900
deb http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900
deb-src http://deb.debian.org/debian stretch main
deb-src http://maedevu.maemo.org/leste leste main contrib non-free n900
deb-src http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900
EOF
wget https://maedevu.maemo.org/testing-key.asc &&
apt-key add testing-key.asc &&
rm -f testing-key.asc &&
rm -f /var/cache/apt/archives/*.deb &&
apt-get update &&
exec bash
# Build Xorg for Nokia N900
apt-get source xserver-xorg-core &&
cd xorg-server-1.19.2 &&
wget https://raw.githubusercontent.com/buildroot/buildroot/master/package/x11r7/xserver_xorg-server/1.20.3/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch &&
mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches &&
echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series &&
apt-get -y build-dep -a armhf . &&
time dpkg-buildpackage -aarmhf -j4 -b &&
echo OK || echo FAIL
To login the container later, issue the command:
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch
If you wish to remove the container, just delete the directory we created:
sudo rm -fr /var/lib/container/stretch
=== TODO ===
* Discuss where people look to pick up issues (clear answer is the bugtracker, but still)
* How people can make changes and how to send them in
5e8b25871d995af3f499ea228392880d6d37b1e0
Leste FAQ
0
62
346
345
2019-03-23T17:40:33Z
Derby
3
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs.
Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the now very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone.
The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs.
Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle.
We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired.
Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long term supported stable releases.
=== What's wrong with Android (vendor) Linux kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained with very little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline].
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the anticipated Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for the Librem 5 phone.
=== How about other popular non-Android mobile Linux distributions? ===
The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided.
One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution.
Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland.
Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]] in order to prioritise device compatibility and ease of ports over software freedoms.
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticable in the project).
Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts.
But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
c76af9c69058f8b6afdf64ef795b6a271db3d6d3
364
346
2019-05-14T13:19:25Z
Sicelo
5
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs.
Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the now very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone.
The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs.
Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle.
We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired.
Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long term supported stable releases.
=== What's wrong with Android (vendor) Linux kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained with very little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline].
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the anticipated Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We look forward to any future collaborations, as well as a possible Maemo Leste port for the Librem 5 phone.
=== How about other popular non-Android mobile Linux distributions? ===
The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided.
One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution.
Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland.
Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]] in order to prioritise device compatibility and ease of ports over software freedoms.
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticable in the project).
Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts.
But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
=== Are packages (for N900 especially) Thumb-compiled? ===
Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb
24725652a5d62cf5fed41adaecdaf4aad137224f
Development
0
61
347
326
2019-03-27T12:48:15Z
Spinal
13
/* Multiarch */ Fix link
wikitext
text/x-wiki
Maemo Leste development is split up in a few different places.
== Communication and organising ==
* Our https://maemo-leste.github.io website is where we post (news) updates, as well as on this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192
* There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker
* The day-to-day development and user chatter mostly takes place in the [[IRC channel]] (We might eventually want to switch some discussion to a mailing list, but that has not happened so far. Please raise your voice if this is important to you.)
* This wiki: for documenting the status of various long-running projects, status per device, etc.
== Technical ==
All our git repositories can be found here: https://github.com/maemo-leste
=== Jenkins ===
To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/
=== Developing on a device ===
Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle users, this might sound weird, but there is essentially no need for a 'scratchbox' type VM)
The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]].
=== Multiarch ===
Multiarch is ability present on modern Debian systems that allows you to develop for Maemo Leste using your PC/Mac/Notebook etc.
Here we show how you can easily setup multiarch environment and build some packages on a Debian system.
This can be adapted to develop on other systems as well. If you have such experience, please feel free to expand this section to help more people be involved in Maemo Leste development.
# Make a container for our development system
DIR=/var/lib/container/stretch
sudo apt-get install qemu-user-static debootstrap &&
sudo debootstrap stretch $DIR http://deb.debian.org/debian &&
echo "strech_cross" | sudo tee $DIR/etc/debian_chroot &&
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR
# Setup build environment inside the container
cat >> ~/.bashrc << EOF &&
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
export CC=arm-linux-gnueabihf-gcc
EOF
dpkg --add-architecture armhf &&
apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates &&
cat >> /etc/apt/sources.list << "EOF" &&
deb http://maedevu.maemo.org/leste leste main contrib non-free n900
deb http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900
deb-src http://deb.debian.org/debian stretch main
deb-src http://maedevu.maemo.org/leste leste main contrib non-free n900
deb-src http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900
EOF
wget https://maedevu.maemo.org/testing-key.asc &&
apt-key add testing-key.asc &&
rm -f testing-key.asc &&
rm -f /var/cache/apt/archives/*.deb &&
apt-get update &&
exec bash
# Build Xorg for Nokia N900
apt-get source xserver-xorg-core &&
cd xorg-server-1.19.2 &&
wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch &&
mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches &&
echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series &&
apt-get -y build-dep -a armhf . &&
time dpkg-buildpackage -aarmhf -j4 -b &&
echo OK || echo FAIL
To login the container later, issue the command:
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch
If you wish to remove the container, just delete the directory we created:
sudo rm -fr /var/lib/container/stretch
=== TODO ===
* Discuss where people look to pick up issues (clear answer is the bugtracker, but still)
* How people can make changes and how to send them in
14e4525de7526243d60a15cd4b02d08a065d2725
357
347
2019-04-30T23:15:49Z
Derby
3
/* Technical */ Add instructions for how to set up an ARM/ARM64 chroot on a PC
wikitext
text/x-wiki
Maemo Leste development is split up in a few different places.
== Communication and organising ==
* Our https://maemo-leste.github.io website is where we post (news) updates, as well as on this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192
* There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker
* The day-to-day development and user chatter mostly takes place in the [[IRC channel]] (We might eventually want to switch some discussion to a mailing list, but that has not happened so far. Please raise your voice if this is important to you.)
* This wiki: for documenting the status of various long-running projects, status per device, etc.
== Technical ==
All our git repositories can be found here: https://github.com/maemo-leste
=== Jenkins ===
To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/
=== Developing on a device ===
Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle users, this might sound weird, but there is essentially no need for a 'scratchbox' type VM)
The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]].
=== Multiarch ===
Multiarch is ability present on modern Debian systems that allows you to develop for Maemo Leste using your PC/Mac/Notebook etc.
Here we show how you can easily setup multiarch environment and build some packages on a Debian system.
This can be adapted to develop on other systems as well. If you have such experience, please feel free to expand this section to help more people be involved in Maemo Leste development.
# Make a container for our development system
DIR=/var/lib/container/stretch
sudo apt-get install qemu-user-static debootstrap &&
sudo debootstrap stretch $DIR http://deb.debian.org/debian &&
echo "strech_cross" | sudo tee $DIR/etc/debian_chroot &&
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR
# Setup build environment inside the container
cat >> ~/.bashrc << EOF &&
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
export CC=arm-linux-gnueabihf-gcc
EOF
dpkg --add-architecture armhf &&
apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates &&
cat >> /etc/apt/sources.list << "EOF" &&
deb http://maedevu.maemo.org/leste leste main contrib non-free n900
deb http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900
deb-src http://deb.debian.org/debian stretch main
deb-src http://maedevu.maemo.org/leste leste main contrib non-free n900
deb-src http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900
EOF
wget https://maedevu.maemo.org/testing-key.asc &&
apt-key add testing-key.asc &&
rm -f testing-key.asc &&
rm -f /var/cache/apt/archives/*.deb &&
apt-get update &&
exec bash
# Build Xorg for Nokia N900
apt-get source xserver-xorg-core &&
cd xorg-server-1.19.2 &&
wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch &&
mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches &&
echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series &&
apt-get -y build-dep -a armhf . &&
time dpkg-buildpackage -aarmhf -j4 -b &&
echo OK || echo FAIL
To login the container later, issue the command:
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch
If you wish to remove the container, just delete the directory we created:
sudo rm -fr /var/lib/container/stretch
=== Cross-distro solution for development inside an ARM/ARM64 chroot on a PC ===
It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices.
1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]:
$ sudo apt-get install qemu-user-static binfmt-support
The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''':
$ sudo update-binfmts --display qemu-arm
qemu-arm (enabled):
package = qemu-user-static
type = magic
offset = 0
magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00
mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff
interpreter = /usr/bin/qemu-arm-static
detector =
2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it:
$ mkdir leste-arm64
$ cd leste-arm64
$ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf -
3. From the same directory, configure the chroot with a few resources from your host system:
$ sudo mount -t proc proc proc
$ sudo mount -o bind /dev dev
$ sudo mount -o bind /dev/pts dev/pts
4. From the same directory, create a symlink for the mount table:
$ sudo ln -s /proc/mounts etc/mtab
5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user:
$ sudo LC_ALL=C chroot . /bin/su - user
You'll now be ready to use your Maemo Leste ARM64 development environment:
$ uname -m
aarch64
Once you have finished with it, you can exit and unmount the resources you previously mounted:
$ exit
$ sudo umount dev/pts dev proc
=== TODO ===
* Discuss where people look to pick up issues (clear answer is the bugtracker, but still)
* How people can make changes and how to send them in
644da78ab78b7b79dc77249829d461dcdcab078a
362
357
2019-05-12T21:16:27Z
Sicelo
5
/* Developing on a device */
wikitext
text/x-wiki
Maemo Leste development is split up in a few different places.
== Communication and organising ==
* Our https://maemo-leste.github.io website is where we post (news) updates, as well as on this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192
* There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker
* The day-to-day development and user chatter mostly takes place in the [[IRC channel]] (We might eventually want to switch some discussion to a mailing list, but that has not happened so far. Please raise your voice if this is important to you.)
* This wiki: for documenting the status of various long-running projects, status per device, etc.
== Technical ==
All our git repositories can be found here: https://github.com/maemo-leste
=== Jenkins ===
To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/
=== Developing on a device ===
Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM)
The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]].
=== Multiarch ===
Multiarch is ability present on modern Debian systems that allows you to develop for Maemo Leste using your PC/Mac/Notebook etc.
Here we show how you can easily setup multiarch environment and build some packages on a Debian system.
This can be adapted to develop on other systems as well. If you have such experience, please feel free to expand this section to help more people be involved in Maemo Leste development.
# Make a container for our development system
DIR=/var/lib/container/stretch
sudo apt-get install qemu-user-static debootstrap &&
sudo debootstrap stretch $DIR http://deb.debian.org/debian &&
echo "strech_cross" | sudo tee $DIR/etc/debian_chroot &&
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR
# Setup build environment inside the container
cat >> ~/.bashrc << EOF &&
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
export CC=arm-linux-gnueabihf-gcc
EOF
dpkg --add-architecture armhf &&
apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates &&
cat >> /etc/apt/sources.list << "EOF" &&
deb http://maedevu.maemo.org/leste leste main contrib non-free n900
deb http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900
deb-src http://deb.debian.org/debian stretch main
deb-src http://maedevu.maemo.org/leste leste main contrib non-free n900
deb-src http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900
EOF
wget https://maedevu.maemo.org/testing-key.asc &&
apt-key add testing-key.asc &&
rm -f testing-key.asc &&
rm -f /var/cache/apt/archives/*.deb &&
apt-get update &&
exec bash
# Build Xorg for Nokia N900
apt-get source xserver-xorg-core &&
cd xorg-server-1.19.2 &&
wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch &&
mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches &&
echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series &&
apt-get -y build-dep -a armhf . &&
time dpkg-buildpackage -aarmhf -j4 -b &&
echo OK || echo FAIL
To login the container later, issue the command:
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch
If you wish to remove the container, just delete the directory we created:
sudo rm -fr /var/lib/container/stretch
=== Cross-distro solution for development inside an ARM/ARM64 chroot on a PC ===
It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices.
1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]:
$ sudo apt-get install qemu-user-static binfmt-support
The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''':
$ sudo update-binfmts --display qemu-arm
qemu-arm (enabled):
package = qemu-user-static
type = magic
offset = 0
magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00
mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff
interpreter = /usr/bin/qemu-arm-static
detector =
2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it:
$ mkdir leste-arm64
$ cd leste-arm64
$ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf -
3. From the same directory, configure the chroot with a few resources from your host system:
$ sudo mount -t proc proc proc
$ sudo mount -o bind /dev dev
$ sudo mount -o bind /dev/pts dev/pts
4. From the same directory, create a symlink for the mount table:
$ sudo ln -s /proc/mounts etc/mtab
5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user:
$ sudo LC_ALL=C chroot . /bin/su - user
You'll now be ready to use your Maemo Leste ARM64 development environment:
$ uname -m
aarch64
Once you have finished with it, you can exit and unmount the resources you previously mounted:
$ exit
$ sudo umount dev/pts dev proc
=== TODO ===
* Discuss where people look to pick up issues (clear answer is the bugtracker, but still)
* How people can make changes and how to send them in
acbd855946bb1cc7765273987b45adb9f6ee226f
363
362
2019-05-12T21:17:13Z
Sicelo
5
/* Multiarch */
wikitext
text/x-wiki
Maemo Leste development is split up in a few different places.
== Communication and organising ==
* Our https://maemo-leste.github.io website is where we post (news) updates, as well as on this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192
* There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker
* The day-to-day development and user chatter mostly takes place in the [[IRC channel]] (We might eventually want to switch some discussion to a mailing list, but that has not happened so far. Please raise your voice if this is important to you.)
* This wiki: for documenting the status of various long-running projects, status per device, etc.
== Technical ==
All our git repositories can be found here: https://github.com/maemo-leste
=== Jenkins ===
To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/
=== Developing on a device ===
Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM)
The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]].
=== Multiarch ===
Multiarch is an ability present on modern Debian systems that allows you to develop for Maemo Leste using your PC/Mac/Notebook etc.
Here we show how you can easily setup a multiarch environment and build some packages on a Debian system.
This can be adapted to develop on other systems as well. If you have such experience, please feel free to expand this section to help more people be involved in Maemo Leste development.
# Make a container for our development system
DIR=/var/lib/container/stretch
sudo apt-get install qemu-user-static debootstrap &&
sudo debootstrap stretch $DIR http://deb.debian.org/debian &&
echo "strech_cross" | sudo tee $DIR/etc/debian_chroot &&
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR
# Setup build environment inside the container
cat >> ~/.bashrc << EOF &&
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
export CC=arm-linux-gnueabihf-gcc
EOF
dpkg --add-architecture armhf &&
apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates &&
cat >> /etc/apt/sources.list << "EOF" &&
deb http://maedevu.maemo.org/leste leste main contrib non-free n900
deb http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900
deb-src http://deb.debian.org/debian stretch main
deb-src http://maedevu.maemo.org/leste leste main contrib non-free n900
deb-src http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900
EOF
wget https://maedevu.maemo.org/testing-key.asc &&
apt-key add testing-key.asc &&
rm -f testing-key.asc &&
rm -f /var/cache/apt/archives/*.deb &&
apt-get update &&
exec bash
# Build Xorg for Nokia N900
apt-get source xserver-xorg-core &&
cd xorg-server-1.19.2 &&
wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch &&
mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches &&
echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series &&
apt-get -y build-dep -a armhf . &&
time dpkg-buildpackage -aarmhf -j4 -b &&
echo OK || echo FAIL
To login the container later, issue the command:
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch
If you wish to remove the container, just delete the directory we created:
sudo rm -fr /var/lib/container/stretch
=== Cross-distro solution for development inside an ARM/ARM64 chroot on a PC ===
It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices.
1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]:
$ sudo apt-get install qemu-user-static binfmt-support
The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''':
$ sudo update-binfmts --display qemu-arm
qemu-arm (enabled):
package = qemu-user-static
type = magic
offset = 0
magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00
mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff
interpreter = /usr/bin/qemu-arm-static
detector =
2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it:
$ mkdir leste-arm64
$ cd leste-arm64
$ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf -
3. From the same directory, configure the chroot with a few resources from your host system:
$ sudo mount -t proc proc proc
$ sudo mount -o bind /dev dev
$ sudo mount -o bind /dev/pts dev/pts
4. From the same directory, create a symlink for the mount table:
$ sudo ln -s /proc/mounts etc/mtab
5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user:
$ sudo LC_ALL=C chroot . /bin/su - user
You'll now be ready to use your Maemo Leste ARM64 development environment:
$ uname -m
aarch64
Once you have finished with it, you can exit and unmount the resources you previously mounted:
$ exit
$ sudo umount dev/pts dev proc
=== TODO ===
* Discuss where people look to pick up issues (clear answer is the bugtracker, but still)
* How people can make changes and how to send them in
db822944607056b699994bce3c00466508fcaac5
366
363
2019-06-14T15:09:54Z
Sicelo
5
Adding mailing list info
wikitext
text/x-wiki
Maemo Leste development is split up in a few different places.
== Communication and organising ==
* Our https://maemo-leste.github.io website is where we post (news) updates, as well as on this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192
* There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker
* The day-to-day development and user chatter mostly takes place in the [[IRC channel]]
* We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
* This wiki: for documenting the status of various long-running projects, status per device, etc.
== Technical ==
All our git repositories can be found here: https://github.com/maemo-leste
=== Jenkins ===
To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/
=== Developing on a device ===
Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM)
The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]].
=== Multiarch ===
Multiarch is an ability present on modern Debian systems that allows you to develop for Maemo Leste using your PC/Mac/Notebook etc.
Here we show how you can easily setup a multiarch environment and build some packages on a Debian system.
This can be adapted to develop on other systems as well. If you have such experience, please feel free to expand this section to help more people be involved in Maemo Leste development.
# Make a container for our development system
DIR=/var/lib/container/stretch
sudo apt-get install qemu-user-static debootstrap &&
sudo debootstrap stretch $DIR http://deb.debian.org/debian &&
echo "strech_cross" | sudo tee $DIR/etc/debian_chroot &&
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR
# Setup build environment inside the container
cat >> ~/.bashrc << EOF &&
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
export CC=arm-linux-gnueabihf-gcc
EOF
dpkg --add-architecture armhf &&
apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates &&
cat >> /etc/apt/sources.list << "EOF" &&
deb http://maedevu.maemo.org/leste leste main contrib non-free n900
deb http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900
deb-src http://deb.debian.org/debian stretch main
deb-src http://maedevu.maemo.org/leste leste main contrib non-free n900
deb-src http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900
EOF
wget https://maedevu.maemo.org/testing-key.asc &&
apt-key add testing-key.asc &&
rm -f testing-key.asc &&
rm -f /var/cache/apt/archives/*.deb &&
apt-get update &&
exec bash
# Build Xorg for Nokia N900
apt-get source xserver-xorg-core &&
cd xorg-server-1.19.2 &&
wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch &&
mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches &&
echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series &&
apt-get -y build-dep -a armhf . &&
time dpkg-buildpackage -aarmhf -j4 -b &&
echo OK || echo FAIL
To login the container later, issue the command:
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch
If you wish to remove the container, just delete the directory we created:
sudo rm -fr /var/lib/container/stretch
=== Cross-distro solution for development inside an ARM/ARM64 chroot on a PC ===
It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices.
1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]:
$ sudo apt-get install qemu-user-static binfmt-support
The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''':
$ sudo update-binfmts --display qemu-arm
qemu-arm (enabled):
package = qemu-user-static
type = magic
offset = 0
magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00
mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff
interpreter = /usr/bin/qemu-arm-static
detector =
2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it:
$ mkdir leste-arm64
$ cd leste-arm64
$ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf -
3. From the same directory, configure the chroot with a few resources from your host system:
$ sudo mount -t proc proc proc
$ sudo mount -o bind /dev dev
$ sudo mount -o bind /dev/pts dev/pts
4. From the same directory, create a symlink for the mount table:
$ sudo ln -s /proc/mounts etc/mtab
5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user:
$ sudo LC_ALL=C chroot . /bin/su - user
You'll now be ready to use your Maemo Leste ARM64 development environment:
$ uname -m
aarch64
Once you have finished with it, you can exit and unmount the resources you previously mounted:
$ exit
$ sudo umount dev/pts dev proc
=== TODO ===
* Discuss where people look to pick up issues (clear answer is the bugtracker, but still)
* How people can make changes and how to send them in
cf922943926eda080e708c7d9b35ffc12c5fff2b
377
366
2019-07-27T00:03:33Z
Wizzup
4
wikitext
text/x-wiki
Maemo Leste development is split up in a few different places.
== Communication and organising ==
* Our https://maemo-leste.github.io website is where we post (news) updates, as well as on this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192
* There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker
* The day-to-day development and user chatter mostly takes place in the [[IRC channel]]
* We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
* This wiki: for documenting the status of various long-running projects, status per device, etc.
== Guides ==
* [[Development/Porting Packages]]
* [[Development/Building Packages]]
* [[Development/Device Bringup]]
== Technical ==
All our git repositories can be found here: https://github.com/maemo-leste
=== Jenkins ===
To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/
=== Developing on a device ===
Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM)
The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]].
=== Multiarch ===
Multiarch is an ability present on modern Debian systems that allows you to develop for Maemo Leste using your PC/Mac/Notebook etc.
Here we show how you can easily setup a multiarch environment and build some packages on a Debian system.
This can be adapted to develop on other systems as well. If you have such experience, please feel free to expand this section to help more people be involved in Maemo Leste development.
# Make a container for our development system
DIR=/var/lib/container/stretch
sudo apt-get install qemu-user-static debootstrap &&
sudo debootstrap stretch $DIR http://deb.debian.org/debian &&
echo "strech_cross" | sudo tee $DIR/etc/debian_chroot &&
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR
# Setup build environment inside the container
cat >> ~/.bashrc << EOF &&
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
export CC=arm-linux-gnueabihf-gcc
EOF
dpkg --add-architecture armhf &&
apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates &&
cat >> /etc/apt/sources.list << "EOF" &&
deb http://maedevu.maemo.org/leste leste main contrib non-free n900
deb http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900
deb-src http://deb.debian.org/debian stretch main
deb-src http://maedevu.maemo.org/leste leste main contrib non-free n900
deb-src http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900
EOF
wget https://maedevu.maemo.org/testing-key.asc &&
apt-key add testing-key.asc &&
rm -f testing-key.asc &&
rm -f /var/cache/apt/archives/*.deb &&
apt-get update &&
exec bash
# Build Xorg for Nokia N900
apt-get source xserver-xorg-core &&
cd xorg-server-1.19.2 &&
wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch &&
mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches &&
echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series &&
apt-get -y build-dep -a armhf . &&
time dpkg-buildpackage -aarmhf -j4 -b &&
echo OK || echo FAIL
To login the container later, issue the command:
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch
If you wish to remove the container, just delete the directory we created:
sudo rm -fr /var/lib/container/stretch
=== Cross-distro solution for development inside an ARM/ARM64 chroot on a PC ===
It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices.
1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]:
$ sudo apt-get install qemu-user-static binfmt-support
The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''':
$ sudo update-binfmts --display qemu-arm
qemu-arm (enabled):
package = qemu-user-static
type = magic
offset = 0
magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00
mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff
interpreter = /usr/bin/qemu-arm-static
detector =
2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it:
$ mkdir leste-arm64
$ cd leste-arm64
$ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf -
3. From the same directory, configure the chroot with a few resources from your host system:
$ sudo mount -t proc proc proc
$ sudo mount -o bind /dev dev
$ sudo mount -o bind /dev/pts dev/pts
4. From the same directory, create a symlink for the mount table:
$ sudo ln -s /proc/mounts etc/mtab
5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user:
$ sudo LC_ALL=C chroot . /bin/su - user
You'll now be ready to use your Maemo Leste ARM64 development environment:
$ uname -m
aarch64
Once you have finished with it, you can exit and unmount the resources you previously mounted:
$ exit
$ sudo umount dev/pts dev proc
=== TODO ===
* Discuss where people look to pick up issues (clear answer is the bugtracker, but still)
* How people can make changes and how to send them in
13d92585c3aebe6d465b2a3d7df1f2b727913f95
379
377
2019-07-27T22:53:38Z
Wizzup
4
wikitext
text/x-wiki
Maemo Leste development is split up in a few different places.
== Communication and organising ==
* Our https://maemo-leste.github.io website is where we post (news) updates, as well as on this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192
* There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker
* The day-to-day development and user chatter mostly takes place in the [[IRC channel]]
* We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
* This wiki: for documenting the status of various long-running projects, status per device, etc.
== Codename ==
* Maemo Leste is currently based on Devuan Ascii, which is based on Debian Stretch.
* Maemo Leste will be rebased (in the near future) to Devuan Beowulf, which is based on Debian Buster.
== Guides ==
* [[Development/Porting Packages]]
* [[Development/Building Packages]]
* [[Development/Device Bringup]]
== Technical ==
All our git repositories can be found here: https://github.com/maemo-leste
=== Jenkins ===
To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/
=== Developing on a device ===
Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM)
The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]].
=== Multiarch ===
Multiarch is an ability present on modern Debian systems that allows you to develop for Maemo Leste using your PC/Mac/Notebook etc.
Here we show how you can easily setup a multiarch environment and build some packages on a Debian system.
This can be adapted to develop on other systems as well. If you have such experience, please feel free to expand this section to help more people be involved in Maemo Leste development.
# Make a container for our development system
DIR=/var/lib/container/stretch
sudo apt-get install qemu-user-static debootstrap &&
sudo debootstrap stretch $DIR http://deb.debian.org/debian &&
echo "strech_cross" | sudo tee $DIR/etc/debian_chroot &&
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR
# Setup build environment inside the container
cat >> ~/.bashrc << EOF &&
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
export CC=arm-linux-gnueabihf-gcc
EOF
dpkg --add-architecture armhf &&
apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates &&
cat >> /etc/apt/sources.list << "EOF" &&
deb http://maedevu.maemo.org/leste leste main contrib non-free n900
deb http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900
deb-src http://deb.debian.org/debian stretch main
deb-src http://maedevu.maemo.org/leste leste main contrib non-free n900
deb-src http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900
EOF
wget https://maedevu.maemo.org/testing-key.asc &&
apt-key add testing-key.asc &&
rm -f testing-key.asc &&
rm -f /var/cache/apt/archives/*.deb &&
apt-get update &&
exec bash
# Build Xorg for Nokia N900
apt-get source xserver-xorg-core &&
cd xorg-server-1.19.2 &&
wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch &&
mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches &&
echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series &&
apt-get -y build-dep -a armhf . &&
time dpkg-buildpackage -aarmhf -j4 -b &&
echo OK || echo FAIL
To login the container later, issue the command:
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch
If you wish to remove the container, just delete the directory we created:
sudo rm -fr /var/lib/container/stretch
=== Cross-distro solution for development inside an ARM/ARM64 chroot on a PC ===
It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices.
1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]:
$ sudo apt-get install qemu-user-static binfmt-support
The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''':
$ sudo update-binfmts --display qemu-arm
qemu-arm (enabled):
package = qemu-user-static
type = magic
offset = 0
magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00
mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff
interpreter = /usr/bin/qemu-arm-static
detector =
2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it:
$ mkdir leste-arm64
$ cd leste-arm64
$ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf -
3. From the same directory, configure the chroot with a few resources from your host system:
$ sudo mount -t proc proc proc
$ sudo mount -o bind /dev dev
$ sudo mount -o bind /dev/pts dev/pts
4. From the same directory, create a symlink for the mount table:
$ sudo ln -s /proc/mounts etc/mtab
5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user:
$ sudo LC_ALL=C chroot . /bin/su - user
You'll now be ready to use your Maemo Leste ARM64 development environment:
$ uname -m
aarch64
Once you have finished with it, you can exit and unmount the resources you previously mounted:
$ exit
$ sudo umount dev/pts dev proc
=== TODO ===
* Discuss where people look to pick up issues (clear answer is the bugtracker, but still)
* How people can make changes and how to send them in
c4c6ebc3f6bb48d0a853a2dadc12cf4473e6e43a
381
379
2019-07-27T23:02:22Z
Wizzup
4
wikitext
text/x-wiki
Maemo Leste development is split up in a few different places.
== Communication and organising ==
* Our https://maemo-leste.github.io website is where we post (news) updates, as well as on this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192
* There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker
* The day-to-day development and user chatter mostly takes place in the [[IRC channel]]
* We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
* This wiki: for documenting the status of various long-running projects, status per device, etc.
== Codename ==
* Maemo Leste is currently based on Devuan Ascii, which is based on Debian Stretch.
* Maemo Leste will be rebased (in the near future) to Devuan Beowulf, which is based on Debian Buster.
== Guides ==
* [[Development/Porting Packages]]
* [[Development/Building Packages]]
* [[Development/Modified Software]]
* [[Development/Device Bringup]]
== Technical ==
All our git repositories can be found here: https://github.com/maemo-leste
=== Jenkins ===
To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/
=== Developing on a device ===
Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM)
The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]].
=== Multiarch ===
Multiarch is an ability present on modern Debian systems that allows you to develop for Maemo Leste using your PC/Mac/Notebook etc.
Here we show how you can easily setup a multiarch environment and build some packages on a Debian system.
This can be adapted to develop on other systems as well. If you have such experience, please feel free to expand this section to help more people be involved in Maemo Leste development.
# Make a container for our development system
DIR=/var/lib/container/stretch
sudo apt-get install qemu-user-static debootstrap &&
sudo debootstrap stretch $DIR http://deb.debian.org/debian &&
echo "strech_cross" | sudo tee $DIR/etc/debian_chroot &&
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR
# Setup build environment inside the container
cat >> ~/.bashrc << EOF &&
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
export CC=arm-linux-gnueabihf-gcc
EOF
dpkg --add-architecture armhf &&
apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates &&
cat >> /etc/apt/sources.list << "EOF" &&
deb http://maedevu.maemo.org/leste leste main contrib non-free n900
deb http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900
deb-src http://deb.debian.org/debian stretch main
deb-src http://maedevu.maemo.org/leste leste main contrib non-free n900
deb-src http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900
EOF
wget https://maedevu.maemo.org/testing-key.asc &&
apt-key add testing-key.asc &&
rm -f testing-key.asc &&
rm -f /var/cache/apt/archives/*.deb &&
apt-get update &&
exec bash
# Build Xorg for Nokia N900
apt-get source xserver-xorg-core &&
cd xorg-server-1.19.2 &&
wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch &&
mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches &&
echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series &&
apt-get -y build-dep -a armhf . &&
time dpkg-buildpackage -aarmhf -j4 -b &&
echo OK || echo FAIL
To login the container later, issue the command:
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch
If you wish to remove the container, just delete the directory we created:
sudo rm -fr /var/lib/container/stretch
=== Cross-distro solution for development inside an ARM/ARM64 chroot on a PC ===
It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices.
1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]:
$ sudo apt-get install qemu-user-static binfmt-support
The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''':
$ sudo update-binfmts --display qemu-arm
qemu-arm (enabled):
package = qemu-user-static
type = magic
offset = 0
magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00
mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff
interpreter = /usr/bin/qemu-arm-static
detector =
2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it:
$ mkdir leste-arm64
$ cd leste-arm64
$ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf -
3. From the same directory, configure the chroot with a few resources from your host system:
$ sudo mount -t proc proc proc
$ sudo mount -o bind /dev dev
$ sudo mount -o bind /dev/pts dev/pts
4. From the same directory, create a symlink for the mount table:
$ sudo ln -s /proc/mounts etc/mtab
5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user:
$ sudo LC_ALL=C chroot . /bin/su - user
You'll now be ready to use your Maemo Leste ARM64 development environment:
$ uname -m
aarch64
Once you have finished with it, you can exit and unmount the resources you previously mounted:
$ exit
$ sudo umount dev/pts dev proc
=== TODO ===
* Discuss where people look to pick up issues (clear answer is the bugtracker, but still)
* How people can make changes and how to send them in
15ae97c889020dff0118ded8f85bfd6c26948d7d
Nokia N900
0
48
348
330
2019-04-15T06:12:09Z
Wizzup
4
Comment on 3d accel improvements in status
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The original Nokia N900.
== Notes ==
* Screen will be black for a few minutes while starting X - this is a known PowerVR issue. Just wait it out - it might freeze once more for a few minutes, but then will function OKayish
* If your battery is not calibrated, the battery applet will not give you accurate/good data. Charge the battery fully, and then let it discharge (almost) completely.
* Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful.
Also see: https://elinux.org/N900
Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.0 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip-5.0.y
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Bluetooth || Not yet || Driver problems in mainline
|-
| (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || Yes || Works fast(!), install these two packages: https://maedevu.maemo.org/images/n900/hd-temporary
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || WIP || Works with ofono; but no work has been done on any integration; see https://github.com/maemo-leste/bugtracker/issues/61 and https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, no UI, not enabled by default
|-
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters)
|-
| FM Transmitter || Not yet ||
|-
| FM Receiver || Not yet || Depends on Bluetooth
|-
| Accelerometer || Not yet || Available as input device, needs MCE work
|-
| Proximity sensor || Not yet ||
|-
| HDMI-out || N/A ||
|-
| TV-out || Not yet || Should work in kernel, didn't get it to work yet
|-
| GPS || WIP || Works using gps3 and gpsd
|}
== Installation ==
Images: http://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to use/install Fremantle, or want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste.
To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
[[Category:Device]]
0a61961afcb59f629cb3c67ff05e511248a2c418
349
348
2019-04-15T06:15:15Z
Wizzup
4
reflect connui-cellular work
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The original Nokia N900.
== Notes ==
* Screen will be black for a few minutes while starting X - this is a known PowerVR issue. Just wait it out - it might freeze once more for a few minutes, but then will function OKayish
* If your battery is not calibrated, the battery applet will not give you accurate/good data. Charge the battery fully, and then let it discharge (almost) completely.
* Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful.
Also see: https://elinux.org/N900
Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.0 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip-5.0.y
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Bluetooth || Not yet || Driver problems in mainline
|-
| (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || Yes || Works fast(!), install these two packages: https://maedevu.maemo.org/images/n900/hd-temporary
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters)
|-
| FM Transmitter || Not yet ||
|-
| FM Receiver || Not yet || Depends on Bluetooth
|-
| Accelerometer || Not yet || Available as input device, needs MCE work
|-
| Proximity sensor || Not yet ||
|-
| HDMI-out || N/A ||
|-
| TV-out || Not yet || Should work in kernel, didn't get it to work yet
|-
| GPS || WIP || Works using gps3 and gpsd, needs integration still
|}
== Installation ==
Images: http://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to use/install Fremantle, or want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste.
To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
[[Category:Device]]
f112e1c8012119ed31b6066d69a533736fb664c7
368
349
2019-06-14T15:16:13Z
Sicelo
5
Indicate that WiFi needs non-free firmware blob
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The original Nokia N900.
== Notes ==
* Screen will be black for a few minutes while starting X - this is a known PowerVR issue. Just wait it out - it might freeze once more for a few minutes, but then will function OKayish
* If your battery is not calibrated, the battery applet will not give you accurate/good data. Charge the battery fully, and then let it discharge (almost) completely.
* Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful.
Also see: https://elinux.org/N900
Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.0 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip-5.0.y
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing non-free firmware
|-
| Ethernet || N/A ||
|-
| Bluetooth || Not yet || Driver problems in mainline
|-
| (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || Yes || Works fast(!), install these two packages: https://maedevu.maemo.org/images/n900/hd-temporary
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters)
|-
| FM Transmitter || Not yet ||
|-
| FM Receiver || Not yet || Depends on Bluetooth
|-
| Accelerometer || Not yet || Available as input device, needs MCE work
|-
| Proximity sensor || Not yet ||
|-
| HDMI-out || N/A ||
|-
| TV-out || Not yet || Should work in kernel, didn't get it to work yet
|-
| GPS || WIP || Works using gps3 and gpsd, needs integration still
|}
== Installation ==
Images: http://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to use/install Fremantle, or want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste.
To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
[[Category:Device]]
bd00cc575ce1da700bdcd0f217c66309da5de32e
369
368
2019-06-14T15:59:13Z
Sicelo
5
Indicate that there is no battery data at all when needing calibration
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The original Nokia N900.
== Notes ==
* Screen will be black for a few minutes while starting X - this is a known PowerVR issue. Just wait it out - it might freeze once more for a few minutes, but then will function OKayish
* If your battery is not calibrated, the battery applet will not give you any data. Charge the battery fully, and then let it discharge (almost) completely.
* Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful.
Also see: https://elinux.org/N900
Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.0 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip-5.0.y
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing non-free firmware
|-
| Ethernet || N/A ||
|-
| Bluetooth || Not yet || Driver problems in mainline
|-
| (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || Yes || Works fast(!), install these two packages: https://maedevu.maemo.org/images/n900/hd-temporary
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters)
|-
| FM Transmitter || Not yet ||
|-
| FM Receiver || Not yet || Depends on Bluetooth
|-
| Accelerometer || Not yet || Available as input device, needs MCE work
|-
| Proximity sensor || Not yet ||
|-
| HDMI-out || N/A ||
|-
| TV-out || Not yet || Should work in kernel, didn't get it to work yet
|-
| GPS || WIP || Works using gps3 and gpsd, needs integration still
|}
== Installation ==
Images: http://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to use/install Fremantle, or want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste.
To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
[[Category:Device]]
3535c477ab3bbcd9f542008ab9bc670c4a72fc82
371
369
2019-07-22T20:49:25Z
Sicelo
5
Add usage note for FM transmitter and remove reference to HDMI
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The original Nokia N900.
== Notes ==
* Screen will be black for a few minutes while starting X - this is a known PowerVR issue. Just wait it out - it might freeze once more for a few minutes, but then will function OKayish
* If your battery is not calibrated, the battery applet will not give you any data. Charge the battery fully, and then let it discharge (almost) completely.
* Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful.
Also see: https://elinux.org/N900
Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.0 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip-5.0.y
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing non-free firmware
|-
| Ethernet || N/A ||
|-
| Bluetooth || Not yet || Driver problems in mainline
|-
| (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || Yes || Works fast(!), install these two packages: https://maedevu.maemo.org/images/n900/hd-temporary
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters)
|-
| FM Transmitter || Yes || Install `v4l-utils`, then enable chip and set frequency using: `v4l2-ctl -d /dev/radio0 --set-ctrl=mute=0 -f <freq> `
|-
| FM Receiver || Not yet || Depends on Bluetooth
|-
| Accelerometer || Not yet || Available as input device, needs MCE work
|-
| Proximity sensor || Not yet ||
|-
| TV-out || Not yet || Should work in kernel, didn't get it to work yet
|-
| GPS || WIP || Works using gps3 and gpsd, needs integration still
|}
== Installation ==
Images: http://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to use/install Fremantle, or want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste.
To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
[[Category:Device]]
3ebf3203cd595d891f25d00a3f23132b41cf3f44
372
371
2019-07-24T07:44:51Z
Sicelo
5
Add tune_power_level property for the FM Transmitter
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The original Nokia N900.
== Notes ==
* Screen will be black for a few minutes while starting X - this is a known PowerVR issue. Just wait it out - it might freeze once more for a few minutes, but then will function OKayish
* If your battery is not calibrated, the battery applet will not give you any data. Charge the battery fully, and then let it discharge (almost) completely.
* Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful.
Also see: https://elinux.org/N900
Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.0 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip-5.0.y
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing non-free firmware
|-
| Ethernet || N/A ||
|-
| Bluetooth || Not yet || Driver problems in mainline
|-
| (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || Yes || Works fast(!), install these two packages: https://maedevu.maemo.org/images/n900/hd-temporary
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters)
|-
| FM Transmitter || Yes || Install `v4l-utils`, then enable chip and set frequency using: `v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq> `
|-
| FM Receiver || Not yet || Depends on Bluetooth
|-
| Accelerometer || Not yet || Available as input device, needs MCE work
|-
| Proximity sensor || Not yet ||
|-
| TV-out || Not yet || Should work in kernel, didn't get it to work yet
|-
| GPS || WIP || Works using gps3 and gpsd, needs integration still
|}
== Installation ==
Images: http://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to use/install Fremantle, or want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste.
To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
[[Category:Device]]
b3bac2968d40dbd8053ed5454a17039e6f101e13
373
372
2019-07-24T07:47:20Z
Sicelo
5
/* Status */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The original Nokia N900.
== Notes ==
* Screen will be black for a few minutes while starting X - this is a known PowerVR issue. Just wait it out - it might freeze once more for a few minutes, but then will function OKayish
* If your battery is not calibrated, the battery applet will not give you any data. Charge the battery fully, and then let it discharge (almost) completely.
* Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful.
Also see: https://elinux.org/N900
Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.0 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip-5.0.y
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing non-free firmware
|-
| Ethernet || N/A ||
|-
| Bluetooth || Not yet || Driver problems in mainline
|-
| (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || Yes || Works fast(!), install these two packages: https://maedevu.maemo.org/images/n900/hd-temporary
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters)
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || Not yet || Depends on Bluetooth
|-
| Accelerometer || Not yet || Available as input device, needs MCE work
|-
| Proximity sensor || Not yet ||
|-
| TV-out || Not yet || Should work in kernel, didn't get it to work yet
|-
| GPS || WIP || Works using gps3 and gpsd, needs integration still
|}
== Installation ==
Images: http://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to use/install Fremantle, or want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste.
To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
[[Category:Device]]
f5ff19570844d1c3055fefb48cdad83281b38417
374
373
2019-07-24T07:56:32Z
Sicelo
5
/* Status */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The original Nokia N900.
== Notes ==
* Screen will be black for a few minutes while starting X - this is a known PowerVR issue. Just wait it out - it might freeze once more for a few minutes, but then will function OKayish
* If your battery is not calibrated, the battery applet will not give you any data. Charge the battery fully, and then let it discharge (almost) completely.
* Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful.
Also see: https://elinux.org/N900
Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.0 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip-5.0.y
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing non-free firmware
|-
| Ethernet || N/A ||
|-
| Bluetooth || Not yet || Driver problems in mainline
|-
| (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || Yes || Works fast(!), install these two packages: https://maedevu.maemo.org/images/n900/hd-temporary
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters)
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || Not yet || Depends on Bluetooth
|-
| Accelerometer || Not yet || Available as input device, needs MCE work
|-
| Proximity sensor || Not yet ||
|-
| Vibration Motor || Not yet ||
|-
| TV-out || Not yet || Should work in kernel, didn't get it to work yet
|-
| GPS || WIP || Works using gps3 and gpsd, needs integration still
|}
== Installation ==
Images: http://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to use/install Fremantle, or want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste.
To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
[[Category:Device]]
e1087c33162d6663164fbc83ac803f2bbde71233
375
374
2019-07-24T09:02:10Z
Sicelo
5
/* Status */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The original Nokia N900.
== Notes ==
* Screen will be black for a few minutes while starting X - this is a known PowerVR issue. Just wait it out - it might freeze once more for a few minutes, but then will function OKayish
* If your battery is not calibrated, the battery applet will not give you any data. Charge the battery fully, and then let it discharge (almost) completely.
* Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful.
Also see: https://elinux.org/N900
Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.0 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip-5.0.y
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing non-free firmware
|-
| Ethernet || N/A ||
|-
| Bluetooth || Not yet || Driver problems in mainline
|-
| Infrared || Yes || TX only (hardware limitation).
|-
| (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || Yes || Works fast(!), install these two packages: https://maedevu.maemo.org/images/n900/hd-temporary
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters)
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || Not yet || Depends on Bluetooth
|-
| Accelerometer || Not yet || Available as input device, needs MCE work
|-
| Proximity sensor || Not yet ||
|-
| Vibration Motor || Not yet ||
|-
| TV-out || Not yet || Should work in kernel, didn't get it to work yet
|-
| GPS || WIP || Works using gps3 and gpsd, needs integration still
|}
== Installation ==
Images: http://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to use/install Fremantle, or want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste.
To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
[[Category:Device]]
2c24d418d0f3af5471defc87577921a7fe98dfa0
376
375
2019-07-24T12:04:57Z
Sicelo
5
/* Status */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The original Nokia N900.
== Notes ==
* Screen will be black for a few minutes while starting X - this is a known PowerVR issue. Just wait it out - it might freeze once more for a few minutes, but then will function OKayish
* If your battery is not calibrated, the battery applet will not give you any data. Charge the battery fully, and then let it discharge (almost) completely.
* Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful.
Also see: https://elinux.org/N900
Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.0 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip-5.0.y
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing non-free firmware
|-
| Ethernet || N/A ||
|-
| Bluetooth || Not yet || Driver problems in mainline
|-
| Infrared || Yes || TX only (hardware limitation).
|-
| (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || Yes || Works fast(!), install these two packages: https://maedevu.maemo.org/images/n900/hd-temporary
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters)
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on Bluetooth
|-
| Accelerometer || Not yet || Available as input device, needs MCE work
|-
| Proximity sensor || Not yet ||
|-
| Vibration Motor || Yes || No integration yet
|-
| TV-out || Not yet || Should work in kernel, didn't get it to work yet
|-
| GPS || WIP || Works using gps3 and gpsd, needs integration still
|}
== Installation ==
Images: http://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to use/install Fremantle, or want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste.
To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
[[Category:Device]]
59f2a63980172184b65350ff7a3e9813612ccff3
Motorola Droid 4
0
50
350
334
2019-04-15T06:16:27Z
Wizzup
4
Update connectivity
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
...
== Notes ==
Also see: http://elektranox.org/droid4/
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.0 || Mainline + some patches not yet in mainline
|-
| Serial || Yes || On MicroUSB port, requires special cable
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]]
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Reported to work, no UI yet
|-
| Phone calls || WIP || Reported to work, no UI yet
|-
| FM Transmitter || N/A? ||
|-
| FM Receiver || ? ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|}
== Installation using kexecboot ==
This procedure will erase existing android and/or safestrap.
Requirements:
* MicroSD card, MicroUSB cable and Droid4
* Charged Droid4
* fastboot, adb and git, xzcat, dd
* Host Linux system
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest '''maemo-leste-1.0-armhf-droid4-*.img.xz'''
And clone:
* https://github.com/tmlind/droid4-kexecboot.git
briefly show kexecboot.
Installation:
# Power off Droid4
# Create a working directory with above mentioned files in it
# unzip '''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip'''
#* If you have safestrap on the device, turn on the droid4, go to safestrap, reboot, reboot to bootloader
#* If you do not have safestrap, turn on the device, and issue on the host: '''adb reboot bootloader'''
# Run the '''flash-droid-4-fw.sh''' script from the extracted android directory ('''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml'''), run as sudo if it does not find the device
# Wait for the flashing script to complete. This can take a few minutes. The droid will reboot a couple of times to the bootloader.
Then go to the '''droid4-kexecboot''' directory and run (possibly as sudo):
# fastboot flash mbm path/to/android/zip/allow-mbmloader-flashing-mbm.bin
# fastboot reboot-bootloader
# fastboot flash bpsw current/droid4-kexecboot.img
# fastboot flash utags utags-mmcblk1p13.bin
Then reboot the device (hold the power button for one or two seconds) and '''wait for it to get through the first boot'''. It will show a green android with something moving in it's stomach, as well as a progress bar. Then the device should show kexecboot for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard, this is how I did it:
# '''xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE'''
# '''sync'''
Wait for the sync to complete and and insert the SD card into the Droid 4. Reboot the device and select Maemo Leste from the kexecboot menu.
You will now have see Maemo Leste boot up, and show you an unaccelerated hildon-desktop after about one minute.
== Safestrap+ddroid Installation (no longer recommended and outdated) ==
''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card '''
PostmarketOS has some information how to install safestrap: [https://wiki.postmarketos.org/wiki/Motorola_Droid_4_(motorola-maserati) in wiki]
Flashing the zip file is quite confusing / tricky:
Boot options, select slot with Leste, Activate.
In main menu: Install, scroll down to select ddroid-....zip file, swipe to confirm flash. You will get error, including "ApplyParsePerms, set_metadata_recursive, Error executing updater binary, Unable to mount." Red "failed" will appear. These are normal. Proceed by selecting "Reboot System", you'll get one more warning that system is not installed, swipe to confirm reboot.
Red motorola logo will appear, press search button to continue boot, phone vibrates, then vibrates again, then green led comes on. After about a minute, console appears, then disappears and X comes to life.
== Kernel development (old and outdated) ==
Linux 4.14 plus patches
Status: http://elektranox.org/droid4/
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]
[[Category:Device]]
7f464286fb67f13f3f9a4e028c961a2683f8f7a4
356
350
2019-04-27T21:57:00Z
Sicelo
5
/* Status */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
...
== Notes ==
Also see: http://elektranox.org/droid4/
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.0 || Mainline + some patches not yet in mainline
|-
| Serial || Yes || On MicroUSB port, requires special cable
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]]
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Reported to work, no UI yet
|-
| Phone calls || WIP || Reported to work, no UI yet
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|}
== Installation using kexecboot ==
This procedure will erase existing android and/or safestrap.
Requirements:
* MicroSD card, MicroUSB cable and Droid4
* Charged Droid4
* fastboot, adb and git, xzcat, dd
* Host Linux system
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest '''maemo-leste-1.0-armhf-droid4-*.img.xz'''
And clone:
* https://github.com/tmlind/droid4-kexecboot.git
briefly show kexecboot.
Installation:
# Power off Droid4
# Create a working directory with above mentioned files in it
# unzip '''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip'''
#* If you have safestrap on the device, turn on the droid4, go to safestrap, reboot, reboot to bootloader
#* If you do not have safestrap, turn on the device, and issue on the host: '''adb reboot bootloader'''
# Run the '''flash-droid-4-fw.sh''' script from the extracted android directory ('''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml'''), run as sudo if it does not find the device
# Wait for the flashing script to complete. This can take a few minutes. The droid will reboot a couple of times to the bootloader.
Then go to the '''droid4-kexecboot''' directory and run (possibly as sudo):
# fastboot flash mbm path/to/android/zip/allow-mbmloader-flashing-mbm.bin
# fastboot reboot-bootloader
# fastboot flash bpsw current/droid4-kexecboot.img
# fastboot flash utags utags-mmcblk1p13.bin
Then reboot the device (hold the power button for one or two seconds) and '''wait for it to get through the first boot'''. It will show a green android with something moving in it's stomach, as well as a progress bar. Then the device should show kexecboot for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard, this is how I did it:
# '''xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE'''
# '''sync'''
Wait for the sync to complete and and insert the SD card into the Droid 4. Reboot the device and select Maemo Leste from the kexecboot menu.
You will now have see Maemo Leste boot up, and show you an unaccelerated hildon-desktop after about one minute.
== Safestrap+ddroid Installation (no longer recommended and outdated) ==
''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card '''
PostmarketOS has some information how to install safestrap: [https://wiki.postmarketos.org/wiki/Motorola_Droid_4_(motorola-maserati) in wiki]
Flashing the zip file is quite confusing / tricky:
Boot options, select slot with Leste, Activate.
In main menu: Install, scroll down to select ddroid-....zip file, swipe to confirm flash. You will get error, including "ApplyParsePerms, set_metadata_recursive, Error executing updater binary, Unable to mount." Red "failed" will appear. These are normal. Proceed by selecting "Reboot System", you'll get one more warning that system is not installed, swipe to confirm reboot.
Red motorola logo will appear, press search button to continue boot, phone vibrates, then vibrates again, then green led comes on. After about a minute, console appears, then disappears and X comes to life.
== Kernel development (old and outdated) ==
Linux 4.14 plus patches
Status: http://elektranox.org/droid4/
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]
[[Category:Device]]
9e1d61b158cfdf4db90edbe620a99dc48e53e793
378
356
2019-07-27T20:54:52Z
Dgby714
22
Added instructions for Windows flashing
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
...
== Notes ==
Also see: http://elektranox.org/droid4/
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.0 || Mainline + some patches not yet in mainline
|-
| Serial || Yes || On MicroUSB port, requires special cable
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]]
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Reported to work, no UI yet
|-
| Phone calls || WIP || Reported to work, no UI yet
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|}
== Installation using kexecboot ==
This procedure will erase existing android and/or safestrap.
Requirements:
* MicroSD card, MicroUSB cable and Droid4
* Charged Droid4
* Android Tools (fastboot and adb), git (optional), and flashing tools (xzcat and dd on Linux '''OR''' Etcher[https://github.com/balena-io/etcher] on Windows)
* Host Linux or Windows system
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh (Linux) or flash-droid-4-fs.bat (Windows)
# Latest '''maemo-leste-1.0-armhf-droid4-*.img.xz'''
And clone (or download the zip for):
* https://github.com/tmlind/droid4-kexecboot.git
Installation:
# Power off Droid4
# Create a working directory with above mentioned files in it
# unzip '''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip'''
#* If you have safestrap on the device, turn on the droid4, go to safestrap, reboot, reboot to bootloader
#* If you do not have safestrap, turn on the device, and issue on the host: '''adb reboot bootloader'''
# Run the '''flash-droid-4-fw''' script from the extracted android directory ('''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml'''), run as admin/root if it does not find the device
# If you get errors while writing the image files, try a better MicroUSB cable.
# Wait for the flashing script to complete. This can take a few minutes. The droid will reboot a couple of times to the bootloader.
Then go to the '''droid4-kexecboot''' directory and run (possibly as sudo):
# fastboot flash mbm path/to/android/zip/allow-mbmloader-flashing-mbm.bin
# fastboot reboot-bootloader
# fastboot flash bpsw current/droid4-kexecboot.img
# fastboot flash utags utags-mmcblk1p13.bin
Then reboot the device (hold the power button for one or two seconds) and '''wait for it to get through the first boot'''. It will show a green android with something moving in it's stomach, as well as a progress bar. Then the device should show kexecboot for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
# '''xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE'''
# '''sync'''
On Windows: Use Etcher
Wait for the sync to complete and and insert the SD card into the Droid 4. Reboot the device and select Maemo Leste from the kexecboot menu.
You will now have see Maemo Leste boot up, and show you an unaccelerated hildon-desktop after about one minute.
== Safestrap+ddroid Installation (no longer recommended and outdated) ==
''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card '''
PostmarketOS has some information how to install safestrap: [https://wiki.postmarketos.org/wiki/Motorola_Droid_4_(motorola-maserati) in wiki]
Flashing the zip file is quite confusing / tricky:
Boot options, select slot with Leste, Activate.
In main menu: Install, scroll down to select ddroid-....zip file, swipe to confirm flash. You will get error, including "ApplyParsePerms, set_metadata_recursive, Error executing updater binary, Unable to mount." Red "failed" will appear. These are normal. Proceed by selecting "Reboot System", you'll get one more warning that system is not installed, swipe to confirm reboot.
Red motorola logo will appear, press search button to continue boot, phone vibrates, then vibrates again, then green led comes on. After about a minute, console appears, then disappears and X comes to life.
== Kernel development (old and outdated) ==
Linux 4.14 plus patches
Status: http://elektranox.org/droid4/
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]
[[Category:Device]]
7423be868fbcb0a2902ed3abf39f84074ce99dfc
Status
0
64
351
312
2019-04-15T06:20:01Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
For Device specific status pages, see See [[:Category:Device]]
The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device
{| class="wikitable"
! Feature
! Status
! Leste software
! Notes
|-
| Desktop environment || OK || hildon || hildon home, hildon desktop, .
|-
| Terminal || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] ||
|-
| [[Status/VirtualKeyboard|Virtual keyboard]] || OK || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work on N900; other devices with some work (requires additional files not yet packaged)
|-
| [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Should work out of the box on N900. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7
|-
| Bluetooth || No(t yet) || ? ||
|-
| [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily
|-
| Audio || WIP || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio
|-
| Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] ||
|-
| [[Status/USB Peripheral|USB Peripheral]] || WIP || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv
|-
| LED control || OK || mce || Works on the N900 - make sure the notifications are enabled in settings. (On n900, also make sure that the led override is turned off)
|-
| [[Status/Mobile Data|Mobile Data]] || WIP) || [https://github.com/maemo-leste/connui-cellular connui-cellular] libicd-network-ofono(?) || There is no libicd-network-ofono yet, connui-cellular needs porting to ofono
|-
| [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed
|-
| [[Status/SMS|SMS]] || WIP || ofono, ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue]
|-
| [[Status/Phone Calls|Phone Calls]] || WIP || ofono, ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue]
|-
| [[Status/Application Manager|Application Manager]] || No(t yet) || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue]
|-
| [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue]
|}
9dbecb06509fe2a42349603233f782662fd9a885
352
351
2019-04-15T06:20:49Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
For Device specific status pages, see See [[:Category:Device]]
The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device
{| class="wikitable"
! Feature
! Status
! Leste software
! Notes
|-
| Desktop environment || OK || hildon || hildon home, hildon desktop, .
|-
| Terminal || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] ||
|-
| [[Status/VirtualKeyboard|Virtual keyboard]] || OK || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work on N900; other devices with some work (requires additional files not yet packaged)
|-
| [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Should work out of the box on N900. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7
|-
| Bluetooth || No(t yet) || ? ||
|-
| [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily
|-
| Audio || WIP || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio
|-
| Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] ||
|-
| [[Status/USB Peripheral|USB Peripheral]] || OK || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv
|-
| LED control || OK || mce || Works on the N900 - make sure the notifications are enabled in settings.
|-
| [[Status/Mobile Data|Mobile Data]] || WIP) || [https://github.com/maemo-leste/connui-cellular connui-cellular] libicd-network-ofono(?) || There is no libicd-network-ofono yet, connui-cellular needs porting to ofono
|-
| [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed
|-
| [[Status/SMS|SMS]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue]
|-
| [[Status/Phone Calls|Phone Calls]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue]
|-
| [[Status/Application Manager|Application Manager]] || No(t yet) || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue]
|-
| [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue]
|}
5adad0b4bdc618966c6a334ce072710e0f779dd5
353
352
2019-04-15T06:23:41Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
For Device specific status pages, see See [[:Category:Device]]
The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device
{| class="wikitable"
! Feature
! Status
! Leste software
! Notes
|-
| Desktop environment || OK || hildon || hildon home, hildon desktop, .
|-
| Terminal || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] ||
|-
| [[Status/VirtualKeyboard|Virtual keyboard]] || OK || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work on N900; other devices with some work (requires additional files not yet packaged)
|-
| [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Should work out of the box on N900. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7
|-
| Bluetooth || No(t yet) || ? ||
|-
| [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily
|-
| Audio || WIP || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio
|-
| Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] ||
|-
| [[Status/USB Peripheral|USB Peripheral]] || OK || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv
|-
| LED control || OK || mce || Works on the N900 - make sure the notifications are enabled in settings.
|-
| [[Status/Mobile Data|Mobile Data]] || WIP || [https://github.com/maemo-leste/connui-cellular connui-cellular] libicd-network-ofono(?) || There is no libicd-network-ofono yet, connui-cellular needs porting to ofono
|-
| [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed
|-
| [[Status/SMS|SMS]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue]
|-
| [[Status/Phone Calls|Phone Calls]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue]
|-
| [[Status/Application Manager|Application Manager]] || No(t yet) || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue]
|-
| [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue]
|}
5d8fcaade4a4d7c044ed17627d4ed14c497e98c4
355
353
2019-04-15T06:52:43Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
For Device specific status pages, see See [[:Category:Device]]
The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device
{| class="wikitable"
! Feature
! Status
! Leste software
! Notes
|-
| Desktop environment || OK || hildon || hildon home, hildon desktop, .
|-
| Terminal || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] ||
|-
| [[Status/VirtualKeyboard|Virtual keyboard]] || OK || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work on N900; other devices with some work (requires additional files not yet packaged)
|-
| [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Should work out of the box on N900. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7
|-
| Bluetooth || No(t yet) || ? ||
|-
| [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily
|-
| Audio || WIP || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio ; will need to import alsa-policy-enforcement, port OHM
|-
| Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] ||
|-
| [[Status/USB Peripheral|USB Peripheral]] || OK || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv
|-
| LED control || OK || mce || Works on the N900 - make sure the notifications are enabled in settings.
|-
| [[Status/Mobile Data|Mobile Data]] || WIP || [https://github.com/maemo-leste/connui-cellular connui-cellular] libicd-network-ofono(?) || There is no libicd-network-ofono yet, connui-cellular needs porting to ofono
|-
| [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed
|-
| [[Status/SMS|SMS]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue]
|-
| [[Status/Phone Calls|Phone Calls]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue]
|-
| [[Status/Application Manager|Application Manager]] || No(t yet) || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue]
|-
| [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue]
|}
db283231b79ad9f33416a0ac33b47fb5f8c9fc71
370
355
2019-06-14T16:00:41Z
Sicelo
5
Indicate that WiFi and VKB are known to be working
wikitext
text/x-wiki
{{Stub}}
For Device specific status pages, see See [[:Category:Device]]
The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device
{| class="wikitable"
! Feature
! Status
! Leste software
! Notes
|-
| Desktop environment || OK || hildon || hildon home, hildon desktop, .
|-
| Terminal || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] ||
|-
| [[Status/VirtualKeyboard|Virtual keyboard]] || OK || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work fine for all devices
|-
| [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Works out of the box. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7
|-
| Bluetooth || No(t yet) || ? ||
|-
| [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily
|-
| Audio || WIP || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio ; will need to import alsa-policy-enforcement, port OHM
|-
| Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] ||
|-
| [[Status/USB Peripheral|USB Peripheral]] || OK || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv
|-
| LED control || OK || mce || Works on the N900 - make sure the notifications are enabled in settings.
|-
| [[Status/Mobile Data|Mobile Data]] || WIP || [https://github.com/maemo-leste/connui-cellular connui-cellular] libicd-network-ofono(?) || There is no libicd-network-ofono yet, connui-cellular needs porting to ofono
|-
| [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed
|-
| [[Status/SMS|SMS]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue]
|-
| [[Status/Phone Calls|Phone Calls]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue]
|-
| [[Status/Application Manager|Application Manager]] || No(t yet) || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue]
|-
| [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue]
|}
abc68a444e4916450bd7f368b34805902ce27a87
389
370
2019-08-12T22:38:25Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
For Device specific status pages, see See [[:Category:Device]]
The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device
{| class="wikitable"
! Feature
! Status
! Leste software
! Notes
|-
| Desktop environment || OK || hildon || hildon home, hildon desktop, .
|-
| Terminal || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] ||
|-
| [[Status/VirtualKeyboard|Virtual keyboard]] || OK || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work fine for all devices
|-
| [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Works out of the box. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7
|-
| Bluetooth || No(t yet) || ? ||
|-
| [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily
|-
| Audio || WIP || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio ; will need to import alsa-policy-enforcement, port OHM
|-
| Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] ||
|-
| [[Status/USB Peripheral|USB Peripheral]] || OK || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv
|-
| LED control || OK || mce || Works on the N900 - make sure the notifications are enabled in settings.
|-
| [[Status/Mobile Data|Mobile Data]] || WIP || [https://github.com/maemo-leste/connui-cellular connui-cellular] [https://github.com/maemo-leste/libicd-network-ofono libicd-network-ofono] || There is basic libicd-network-ofono, connui-cellular is being ported to ofono
|-
| [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed
|-
| [[Status/SMS|SMS]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue]
|-
| [[Status/Phone Calls|Phone Calls]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue]
|-
| [[Status/Application Manager|Application Manager]] || No(t yet) || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue]
|-
| [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue]
|}
2eb2f6bb5157eb0ca758da65c430c01c29a69ecc
Status/Mobile Data
0
75
354
292
2019-04-15T06:25:11Z
Wizzup
4
wikitext
text/x-wiki
Relevant tickets:
* https://github.com/maemo-leste/bugtracker/issues/76
* https://github.com/maemo-leste/bugtracker/issues/151
* https://github.com/maemo-leste/bugtracker/issues/195
* https://github.com/maemo-leste/bugtracker/issues/196
We will need the following:
* RE of the current data icd2 plugin from Fremantle (as starting base)
* Code to interface with ofono, resulting in libicd-network-ofono
* Connui UI plugins for gprs and port it to ofono https://github.com/maemo-leste/connui-cellular
* Database of various mobile operations and their default APN information
* Hardware/driver support
Useful resources/hw/links:
* https://wiki.maemo.org/User:Jebba/Ofono#Using_oFono_in_Pass_thru_mode (pass through n900 modem with ofono, works for non-data only)
* An USB modem for testing (like Option modems)
* ofono: https://01.org/ofono
Olimex 3g modem (should also do voice calls), should work with ofono:
* https://www.olimex.com/Products/USB-Modules/MOD-USB3G/
* https://aleksander.es/data/Qualcomm%20Gobi%20devices%20on%20Linux.pdf
Modems from Pine64 Devkits work with ofono:
* http://wiki.pine64.org/index.php/Project_Anakin
* http://wiki.pine64.org/index.php/Project_Don't_be_evil
d27c5b5599394c106f8b98f53959923d62852e00
390
354
2019-08-12T22:39:55Z
Wizzup
4
wikitext
text/x-wiki
Relevant tickets:
* https://github.com/maemo-leste/bugtracker/issues/76
* https://github.com/maemo-leste/bugtracker/issues/151
* https://github.com/maemo-leste/bugtracker/issues/195
* https://github.com/maemo-leste/bugtracker/issues/196
We will need the following:
* RE of the current data icd2 plugin from Fremantle (as starting base)
* Code to interface with ofono, resulting in libicd-network-ofono
* Connui UI plugins for gprs and port it to ofono https://github.com/maemo-leste/connui-cellular
* Database of various mobile operations and their default APN information
* Hardware/driver support
Useful resources/hw/links:
* https://wiki.maemo.org/User:Jebba/Ofono#Using_oFono_in_Pass_thru_mode (pass through n900 modem with ofono, works for non-data only)
* An USB modem for testing (like Option modems)
* ofono: https://01.org/ofono
Olimex 3g modem (should also do voice calls), should work with ofono:
* https://www.olimex.com/Products/USB-Modules/MOD-USB3G/
* https://aleksander.es/data/Qualcomm%20Gobi%20devices%20on%20Linux.pdf
USB passthrough on QEMU can work like this (note -device usb-host), pick proper product/vendor IDs:
<pre>
sudo qemu-system-x86_64 -hda \
/ext4/leste/maemo-leste-1.0-amd64-virtual-20181102.qcow2 \
-vga virtio -enable-kvm -cpu host -smp cores=2 -m 4096 \
-nic user,hostfwd=tcp:127.0.0.1:7722-:22 -display gtk \
-usb \
-device usb-host,vendorid=0x2c7c,productid=0x0125 \
-device usb-host,vendorid=0x13d3,productid=0x3346 \
-monitor stdio
</pre>
Modems from Pine64 Devkits work with ofono:
* http://wiki.pine64.org/index.php/Project_Anakin
* http://wiki.pine64.org/index.php/Project_Don't_be_evil
32d6a3f68fd116f781157702cd68d2b3bd7b02c0
391
390
2019-08-12T22:40:50Z
Wizzup
4
wikitext
text/x-wiki
Relevant tickets:
* https://github.com/maemo-leste/bugtracker/issues/76
* https://github.com/maemo-leste/bugtracker/issues/151
* https://github.com/maemo-leste/bugtracker/issues/195
* https://github.com/maemo-leste/bugtracker/issues/196
We will need the following:
* <s>RE of the current data icd2 plugin from Fremantle (as starting base)</s>
* <s>Code to interface with ofono, resulting in libicd-network-ofono</s> (WIP)
* <s>Connui UI plugins for gprs and port it to ofono https://github.com/maemo-leste/connui-cellular</s> (WIP)
* <s>Database of various mobile operations and their default APN information</s> in connui-cellular and ofono
* <s>Hardware/driver support</s> (working for various devices)
Useful resources/hw/links:
* https://wiki.maemo.org/User:Jebba/Ofono#Using_oFono_in_Pass_thru_mode (pass through n900 modem with ofono, works for non-data only)
* An USB modem for testing (like Option modems)
* ofono: https://01.org/ofono
Olimex 3g modem (should also do voice calls), should work with ofono:
* https://www.olimex.com/Products/USB-Modules/MOD-USB3G/
* https://aleksander.es/data/Qualcomm%20Gobi%20devices%20on%20Linux.pdf
USB passthrough on QEMU can work like this (note -device usb-host), pick proper product/vendor IDs:
<pre>
sudo qemu-system-x86_64 -hda \
/ext4/leste/maemo-leste-1.0-amd64-virtual-20181102.qcow2 \
-vga virtio -enable-kvm -cpu host -smp cores=2 -m 4096 \
-nic user,hostfwd=tcp:127.0.0.1:7722-:22 -display gtk \
-usb \
-device usb-host,vendorid=0x2c7c,productid=0x0125 \
-device usb-host,vendorid=0x13d3,productid=0x3346 \
-monitor stdio
</pre>
Modems from Pine64 Devkits work with ofono:
* http://wiki.pine64.org/index.php/Project_Anakin
* http://wiki.pine64.org/index.php/Project_Don't_be_evil
95773ac6024df3e3618677d6ec41ab99851b275a
Pine64 DontBeEvil Devkit
0
79
358
2019-05-11T14:51:32Z
Wizzup
4
Created page with "{{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb..."
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
PinePhone devkit, codenamed "Don't Be Evil".
== Notes ==
WIP. We are working on images. A lot of things already work, though.
http://wiki.pine64.org/index.php/Project_Don't_be_evil
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.1-rc7 || https://gitlab.com/pine64-org/linux/tree/pinephone-dontbeevil-5.1-rc7
|-
| Serial || Yes ||
|-
| Charging || Yes ||
|-
| Wireless || Yes || 8723bs
|-
| Ethernet || Yes ||
|-
| Bluetooth || ?? ||
|-
| USB C || Yes || Host and OTG
|-
| Keyboard || N/A ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes/WIP || Mali/Lima
|-
| Touchscreen || Yes ||
|-
| Audio || Yes || Headphones and speaker work
|-
| 2G/3G/LTE data || ?? || Quectel EC25 LTE Module; unable to test due to SIM routing problem: https://wiki.pine64.org/index.php/Project_Don't_be_evil#Errata_for_ver1.1_and_ver1.2_board
|-
| SMS || WIP ||
|-
| Phone calls || WIP ||
|-
| HDMI-out || Yes ||
|-
| GPS || WIP ||
|}
== Installation ==
[[Category:Device]]
28a8e2f6a06b89b6e7e3b7d4fe9e2e991805e47d
359
358
2019-05-11T14:52:24Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
PinePhone devkit, codenamed "Don't Be Evil".
== Notes ==
WIP. We are working on images. A lot of things already work, though.
http://wiki.pine64.org/index.php/Project_Don't_be_evil
See this page for some screenshots: https://talk.maemo.org/showpost.php?p=1556424&postcount=227
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.1-rc7 || https://gitlab.com/pine64-org/linux/tree/pinephone-dontbeevil-5.1-rc7
|-
| Serial || Yes ||
|-
| Charging || Yes ||
|-
| Wireless || Yes || 8723bs
|-
| Ethernet || Yes ||
|-
| Bluetooth || ?? ||
|-
| USB C || Yes || Host and OTG
|-
| Keyboard || N/A ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes/WIP || Mali/Lima
|-
| Touchscreen || Yes ||
|-
| Audio || Yes || Headphones and speaker work
|-
| 2G/3G/LTE data || ?? || Quectel EC25 LTE Module; unable to test due to SIM routing problem: https://wiki.pine64.org/index.php/Project_Don't_be_evil#Errata_for_ver1.1_and_ver1.2_board
|-
| SMS || WIP ||
|-
| Phone calls || WIP ||
|-
| HDMI-out || Yes ||
|-
| GPS || WIP ||
|}
== Installation ==
[[Category:Device]]
8b52c5ee36b5dcb93c0d7bcc88ca2a6e92b9b9ff
360
359
2019-05-11T14:55:39Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
PinePhone devkit, codenamed "Don't Be Evil".
== Notes ==
WIP. We are working on images. A lot of things already work, though.
http://wiki.pine64.org/index.php/Project_Don't_be_evil
See this page for some screenshots: https://talk.maemo.org/showpost.php?p=1556424&postcount=227
Lima-enabled mesa is available in the 'lima' component: https://phoenix.maemo.org/job/mesa-repos/ / https://maedevu.maemo.org/leste/dists/leste/lima/
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.1-rc7 || https://gitlab.com/pine64-org/linux/tree/pinephone-dontbeevil-5.1-rc7
|-
| Serial || Yes ||
|-
| Charging || Yes ||
|-
| Wireless || Yes || 8723bs
|-
| Ethernet || Yes ||
|-
| Bluetooth || ?? ||
|-
| USB C || Yes || Host and OTG
|-
| Keyboard || N/A ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes/WIP || Mali/Lima
|-
| Touchscreen || Yes ||
|-
| Audio || Yes || Headphones and speaker work
|-
| 2G/3G/LTE data || ?? || Quectel EC25 LTE Module; unable to test due to SIM routing problem: https://wiki.pine64.org/index.php/Project_Don't_be_evil#Errata_for_ver1.1_and_ver1.2_board
|-
| SMS || WIP ||
|-
| Phone calls || WIP ||
|-
| HDMI-out || Yes ||
|-
| GPS || WIP ||
|}
== Installation ==
[[Category:Device]]
f5217dca4378a86413836c4ff9976b5ea077988d
361
360
2019-05-11T14:59:21Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
PinePhone devkit, codenamed "Don't Be Evil".
== Notes ==
WIP. We are working on images. A lot of things already work, though.
http://wiki.pine64.org/index.php/Project_Don't_be_evil
See this page for some screenshots: https://talk.maemo.org/showpost.php?p=1556424&postcount=227
Lima-enabled mesa is available in the 'lima' component: https://phoenix.maemo.org/job/mesa-repos/ / https://maedevu.maemo.org/leste/dists/leste/lima/
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.1-rc7 || https://gitlab.com/pine64-org/linux/tree/pinephone-dontbeevil-5.1-rc7
|-
| Serial || Yes ||
|-
| Charging || Yes ||
|-
| Wireless || Yes || 8723bs
|-
| Ethernet || Yes ||
|-
| Bluetooth || ?? ||
|-
| USB C || Yes || Host and OTG
|-
| Keyboard || N/A ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes/WIP || Mali/Lima
|-
| Touchscreen || Yes ||
|-
| Audio || Yes || Headphones and speaker work
|-
| 2G/3G/LTE data || WIP || Quectel EC25 LTE Module; unable to test due to SIM routing problem: https://wiki.pine64.org/index.php/Project_Don't_be_evil#Errata_for_ver1.1_and_ver1.2_board
|-
| SMS || WIP ||
|-
| Phone calls || WIP ||
|-
| HDMI-out || Yes ||
|-
| GPS || WIP ||
|-
| Front Camera || ??? || Either front or back camera already works
|-
| Back Camera || ??? || Either front or back camera already works
|}
== Installation ==
[[Category:Device]]
daf9e63fc53c37ae2ee515c73d45dea5ac1b1969
Main Page
0
1
365
317
2019-06-14T14:45:34Z
Sicelo
5
wikitext
text/x-wiki
= Description =
Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more.
You can find us on '''freenode''', channel '''#maemo-leste'''.
For an overview of the current status, you might want to check out: [[Status]]
Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels.
The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers.
For some devices, we have development images available, such as the N900. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software.
Also see our [[Leste_FAQ|FAQ]].
= Supported Devices =
See [[:Category:Device]]
= Development =
See [[Development]]
= Roadmap =
== Project milestones ==
https://github.com/maemo-leste/bugtracker/milestones
= Links =
<div>
*Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io]
*Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues]
*Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/]
*Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/]
The central point of meeting and talking is IRC and this thread: https://talk.maemo.org/showthread.php?t=100192.
</div>
*[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)]
1367df0e6a6168efb1067b2e434eb9347cc5ef18
367
365
2019-06-14T15:09:55Z
Sicelo
5
Adding mailing list info
wikitext
text/x-wiki
= Description =
Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more.
You can find us on '''freenode''', channel '''#maemo-leste'''.
For an overview of the current status, you might want to check out: [[Status]]
Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels.
The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers.
For some devices, we have development images available, such as the N900. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software.
Also see our [[Leste_FAQ|FAQ]].
= Supported Devices =
See [[:Category:Device]]
= Development =
See [[Development]]
= Roadmap =
== Project milestones ==
https://github.com/maemo-leste/bugtracker/milestones
= Links =
<div>
*Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io]
*Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues]
*Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/]
*Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/]
*Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
The central point of meeting and talking is IRC and this thread: https://talk.maemo.org/showthread.php?t=100192.
</div>
*[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)]
43d0e2c67b61a31ac9f3527bc88f13b56aa05b61
Development/Building Packages
0
80
380
2019-07-27T22:56:46Z
Wizzup
4
Initial version.
wikitext
text/x-wiki
= How you can build package =
Building a packages is easier than one might think, it requires roughly the following steps:
#. Access to a Devuan/Debian system (you can use a [[Virtual_Machine|VM running Maemo Leste]] or a [[:Category:Device|Device running Maemo Leste]].
#. Source code of a package, obtain either via '''git''' or '''apt source <packagename>'''.
#. Build a package using '''dpkg-buildpackage -uc -b''' (run from source directory)
#. Optionally install build dependencies with '''apt''' (dpkg-buildpackage will tell you)
You can now install the package you have just built with '''dpkg -i somename.deb'''.
Also see: https://wiki.debian.org/HowToPackageForDebian
== Submitting changes ==
If you make changes to a package, please submit a pull request for the repository of that package, likely: https://github.com/maemo-leste/PACKAGENAME
For now, we will take care of updating tags and branches.
= How packages end up in the repository =
There are currently two repositories:
* The main repository: https://maedevu.maemo.org/leste/
* The testing/development repository: https://maedevu.maemo.org/leste-devel
Packages in this repository get build by Jenkins, to which a select group of people has access. (Parazyd, Wizzup, Spinal84)
== How packages are built using Jenkins ==
Read only access to the http frontend: http://phoenix.maemo.org/ (write-access can be granted)
All packages are hosted on https://github.com/maemo-leste and a current list of all the packages in Jenkins can be found here:
https://github.com/maemo-leste/jenkins-integration/blob/master/config.py
Every repository has a branch for each release, for example:
# maemo/ascii - main branch for Devuan Ascii target
# maemo/ascii-devel - main branch for Devuan Ascii, but possibly with unstable version
# maemo/beowulf - main branch for Devuan Beowulf version of the package
See [[Development/Branches]] for more information on the usual branches flow.
f6e9c21294872b9885102b473cde1df7ad1d2645
383
380
2019-07-27T23:04:19Z
Wizzup
4
wikitext
text/x-wiki
= How you can build package =
Building a packages is easier than one might think, it requires roughly the following steps:
#. Access to a Devuan/Debian system (you can use a [[Virtual_Machine|VM running Maemo Leste]] or a [[:Category:Device|Device running Maemo Leste]].
#. Source code of a package, obtain either via '''git''' or '''apt source <packagename>'''.
#. Build a package using '''dpkg-buildpackage -uc -b''' (run from source directory)
#. Optionally install build dependencies with '''apt''' (dpkg-buildpackage will tell you)
You can now install the package you have just built with '''dpkg -i somename.deb'''.
Also see: https://wiki.debian.org/HowToPackageForDebian
== Submitting changes ==
If you make changes to a package, please submit a pull request for the repository of that package, likely: https://github.com/maemo-leste/PACKAGENAME
For now, we will take care of updating tags and branches.
= How packages end up in the repository =
There are currently two repositories:
* The main repository: https://maedevu.maemo.org/leste/
* The testing/development repository: https://maedevu.maemo.org/leste-devel
We will in the near future have a repository with "extra" packages, which are not core, but useful applications nonetheless.
There is also the (currently incomplete) Maemo Bayamo repository for Devuan Beowulf (aka Debian Buster) compatibility.
Packages in this repository get build by Jenkins, to which a select group of people has access. (Parazyd, Wizzup, Spinal84)
== How packages are built using Jenkins ==
Read only access to the http frontend: http://phoenix.maemo.org/ (write-access can be granted)
All packages are hosted on https://github.com/maemo-leste and a current list of all the packages in Jenkins can be found here:
https://github.com/maemo-leste/jenkins-integration/blob/master/config.py
Every repository has a branch for each release, for example:
# maemo/ascii - main branch for Devuan Ascii target
# maemo/ascii-devel - main branch for Devuan Ascii, but possibly with unstable version
# maemo/beowulf - main branch for Devuan Beowulf version of the package
See [[Development/Branches]] for more information on the usual branches flow.
dfaf39331b4f16ee2671a3805e1d08ffd9f4f294
Development/Modified Software
0
81
382
2019-07-27T23:02:49Z
Wizzup
4
Created page with "TODO, expand on this, why they are patched, etc: * gtk2 * SDL * qt5 (?) * gtk3 (?) * ..."
wikitext
text/x-wiki
TODO, expand on this, why they are patched, etc:
* gtk2
* SDL
* qt5 (?)
* gtk3 (?)
* ...
d9c77232e9e25d4c383241396db97e5304e9fed9
386
382
2019-07-27T23:13:24Z
Wizzup
4
wikitext
text/x-wiki
TODO, expand on this, why they are patched, etc:
* gtk2: extra widgets are added, menu patches, integration with virtual keyboard for (any) text field, theming
* SDL: full screen patches, other window manager patches
* qt5 (?): TBD
* gtk3 (?): Same as gtk2, currently not patched, though.
77dd28be19942ade00c86fbe3275f5c7a43de70b
388
386
2019-07-30T21:40:27Z
Derby
3
Add xorg-server
wikitext
text/x-wiki
TODO, expand on this, why they are patched, etc:
* gtk2: extra widgets are added, menu patches, integration with virtual keyboard for (any) text field, theming
* SDL: full screen patches, other window manager patches
* qt5 (?): TBD
* gtk3 (?): Same as gtk2, currently not patched, though.
* xorg-server: Patched modesetting for rotation.
56781b5bb5a50c27fba085a8d7b36e5f4eaa0b7d
Development/Porting Packages
0
82
384
2019-07-27T23:06:26Z
Wizzup
4
Created page with " = Porting / Creating packages = If you're looking at creating your own package, or porting software, the first things to do are: # Check if there already are Debian packagi..."
wikitext
text/x-wiki
= Porting / Creating packages =
If you're looking at creating your own package, or porting software, the first things to do are:
# Check if there already are Debian packaging scripts/files. Debian packages a LOT of software, so it's likely that the software is already in the Maemo repository, or someone at least has build scripts for it.
# (TODO)
= Porting existing Maemo Fremantle packages =
Maemo Fremantle ("Nokia Maemo for the N900") contains a lot of packages that are open source. Most of them should run with very few changes on Maemo Leste, the main changes you will need to make will be:
# Updating of the Debian packaging files/scripts.
# Porting to newer libraries if old libraries are used (OpenSSL 0.9.8 -> OpenSSL 1.1.x, Qt4 -> Qt5, etc)
# Fixing any compile errors/warnings due to more strict compile flags
Source of the packages can be found at one of these places:
* http://maemo.org/packages/
* https://garage.maemo.org/
If you import a package, please try to preserve history if possible (converting from svn -> git is not too hard)
ae9bec1acf9c44bc283dcac0050a45212894b292
385
384
2019-07-27T23:08:02Z
Wizzup
4
wikitext
text/x-wiki
= Porting / Creating packages =
If you're looking at creating your own package, or porting software, the first things to do are:
# Check if someone already ported the package (if it in the repository? Is there an issue for it?)
# Check if there already are Debian packaging scripts/files. Debian packages a LOT of software, so it's likely that the software is already in the Maemo repository, or someone at least has build scripts for it.
# (TODO)
= Porting existing Maemo Fremantle packages =
Maemo Fremantle ("Nokia Maemo for the N900") contains a lot of packages that are open source. Most of them should run with very few changes on Maemo Leste, the main changes you will need to make will be:
# Check if someone already ported the package (if it in the repository? Is there an issue for it?)
# Updating of the Debian packaging files/scripts.
# Porting to newer libraries if old libraries are used (OpenSSL 0.9.8 -> OpenSSL 1.1.x, Qt4 -> Qt5, etc)
# Fixing any compile errors/warnings due to more strict compile flags
Source of the packages can be found at one of these places:
* http://maemo.org/packages/
* https://garage.maemo.org/
If you import a package, please try to preserve history if possible (converting from svn -> git is not too hard)
3d1cf2c19d1054d3ff51089022e522154f0c864a
Raspberry Pi 2
0
57
387
265
2019-07-27T23:20:50Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Raspberry Pi Foundation
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
32-bit armv7 build for the Raspberry Pi 2, also compatible with the Raspberry Pi 3.
== Notes ==
Make sure that HDMI is connected on boot, otherwise dsme will reboot the device.
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 4.15 (or 4.16?) || Mainline, no patches
|-
| Serial || Unknown ||
|-
| Charging || N/A ||
|-
| Wireless || Yes ||
|-
| Ethernet || Yes ||
|-
| USB || Yes || Host
|-
| Keyboard || N/A || (USB attached works fine)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || Free driver
|-
| Touchscreen || Yes (external) ||
|-
| Audio || Yes ||
|-
| 2G/3G data || N/A ||
|-
| SMS || N/A ||
|-
| Phone calls || N/A ||
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || N/A ||
|-
| Accelerometer || N/A ||
|-
| Proximity sensor || N/A ||
|-
| HDMI-out || Yes ||
|-
| TV-out || Not yet ||
|}
== Installation ==
Images: http://maedevu.maemo.org/images/raspi2/
dd the image to an sd card. Then boot from the sd card. Have a monitor connected to HDMI.
[[Category:Device]]
fa833fcedb3e9d9ed7402d88f1a2dfbb18a52fcf
Status/Mobile Data/Dev
0
83
392
2019-08-14T22:05:44Z
Wizzup
4
Initial page
wikitext
text/x-wiki
This page contains various dbus calls to Nokia N900 Fremantle cellular daemons, often beyond what is covered here: https://wiki.maemo.org/Phone_control
(Modem online or not)
<pre>
Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.SSC /com/nokia/phone/SSC com.nokia.phone.SSC.get_modem_state
method return sender=:1.18 -> dest=:1.1112 reply_serial=2
string "online"
</pre>
(Registered to network, network operation mode - normal or GAN only, the int is unknown)
<pre>
Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_cs_state
method return sender=:1.19 -> dest=:1.1150 reply_serial=2
byte 1
byte 0
int32 0
</pre>
ce6fa0b5851f837e62b7a53d41cadf336632de2f
393
392
2019-08-14T22:06:51Z
Wizzup
4
wikitext
text/x-wiki
This page contains various dbus calls to Nokia N900 Fremantle cellular daemons, often beyond what is covered here: https://wiki.maemo.org/Phone_control
(Modem online or not)
<pre>
Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.SSC /com/nokia/phone/SSC com.nokia.phone.SSC.get_modem_state
method return sender=:1.18 -> dest=:1.1112 reply_serial=2
string "online"
</pre>
(Registered to network, network operation mode - normal or GAN only, the int is unknown)
<pre>
Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_cs_state
method return sender=:1.19 -> dest=:1.1150 reply_serial=2
byte 1
byte 0
int32 0
</pre>
Radio access technology
<pre>
Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_radio_access_technology
method return sender=:1.19 -> dest=:1.1247 reply_serial=2
byte 2
int32 0
</pre>
4e72311597e403133151822907915499def2b6ab
394
393
2019-08-14T22:10:05Z
Wizzup
4
wikitext
text/x-wiki
This page contains various dbus calls to Nokia N900 Fremantle cellular daemons, often beyond what is covered here: https://wiki.maemo.org/Phone_control
(Modem online or not)
<pre>
Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.SSC /com/nokia/phone/SSC com.nokia.phone.SSC.get_modem_state
method return sender=:1.18 -> dest=:1.1112 reply_serial=2
string "online"
</pre>
(Registered to network, network operation mode - normal or GAN only, the int is unknown - probably err val)
<pre>
Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_cs_state
method return sender=:1.19 -> dest=:1.1150 reply_serial=2
byte 1
byte 0
int32 0
</pre>
Radio access technology
<pre>
Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_radio_access_technology
method return sender=:1.19 -> dest=:1.1247 reply_serial=2
byte 2
int32 0
</pre>
Registration status (
<pre>
Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_registration_status
method return sender=:1.19 -> dest=:1.1271 reply_serial=2
byte 0
uint16 1521
uint32 13377698
uint32 16
uint32 204
byte 0
byte 27
int32 0
dbus_g_proxy_end_call(proxy, call_id, &error,
G_TYPE_UCHAR, &network_reg_status,
G_TYPE_UINT, &network_current_lac,
G_TYPE_UINT, &network_current_cell_id,
G_TYPE_UINT, &network_operator_code,
G_TYPE_UINT, &network_country_code,
G_TYPE_UCHAR, &network_type,
G_TYPE_UCHAR, &network_supported_services,
G_TYPE_INT, &error_value,
G_TYPE_INVALID);
</pre>
Network selection mode (mode, errr val)
<pre>
Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_network_selection_mode
method return sender=:1.19 -> dest=:1.1319 reply_serial=2
byte 2
int32 0
</pre>
bf03a6706cdcf6bd25b3ed75a904accc75025b6c
395
394
2019-08-14T22:12:44Z
Wizzup
4
wikitext
text/x-wiki
This page contains various dbus calls to Nokia N900 Fremantle cellular daemons, often beyond what is covered here: https://wiki.maemo.org/Phone_control
(Modem online or not)
<pre>
Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.SSC /com/nokia/phone/SSC com.nokia.phone.SSC.get_modem_state
method return sender=:1.18 -> dest=:1.1112 reply_serial=2
string "online"
</pre>
(Registered to network, network operation mode - normal or GAN only, the int is unknown - probably err val)
<pre>
Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_cs_state
method return sender=:1.19 -> dest=:1.1150 reply_serial=2
byte 1
byte 0
int32 0
</pre>
Radio access technology
<pre>
Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_radio_access_technology
method return sender=:1.19 -> dest=:1.1247 reply_serial=2
byte 2
int32 0
</pre>
Registration status (
<pre>
Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_registration_status
method return sender=:1.19 -> dest=:1.1271 reply_serial=2
byte 0
uint16 1521
uint32 13377698
uint32 16
uint32 204
byte 0
byte 27
int32 0
dbus_g_proxy_end_call(proxy, call_id, &error,
G_TYPE_UCHAR, &network_reg_status,
G_TYPE_UINT, &network_current_lac,
G_TYPE_UINT, &network_current_cell_id,
G_TYPE_UINT, &network_operator_code,
G_TYPE_UINT, &network_country_code,
G_TYPE_UCHAR, &network_type,
G_TYPE_UCHAR, &network_supported_services,
G_TYPE_INT, &error_value,
G_TYPE_INVALID);
</pre>
Network selection mode (mode, errr val)
<pre>
Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_network_selection_mode
method return sender=:1.19 -> dest=:1.1319 reply_serial=2
byte 2
int32 0
</pre>
Scan for available networks:
<pre>
Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_available_network
method return sender=:1.19 -> dest=:1.1438 reply_serial=2
array [
byte 2
byte 3
byte 3
]
array [
string "16"
string "04"
string "08"
]
array [
string "204"
string "204"
string "204"
]
array [
string "T-Mobile NL"
string "vodafone NL"
string "NL KPN"
]
array [
byte 0
byte 2
byte 2
]
array [
byte 1
byte 1
byte 1
]
int32 0
</pre>
ade70028dbb26c76ef27d4636dfce5ad6215db17
Status/Mobile Data/Dev
0
83
396
395
2019-08-14T22:13:14Z
Wizzup
4
wikitext
text/x-wiki
This page contains various dbus calls to Nokia N900 Fremantle cellular daemons, often beyond what is covered here: https://wiki.maemo.org/Phone_control
(Modem online or not)
<pre>
Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.SSC /com/nokia/phone/SSC com.nokia.phone.SSC.get_modem_state
method return sender=:1.18 -> dest=:1.1112 reply_serial=2
string "online"
</pre>
(Registered to network, network operation mode - normal or GAN only, the int is unknown - probably err val)
<pre>
Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_cs_state
method return sender=:1.19 -> dest=:1.1150 reply_serial=2
byte 1
byte 0
int32 0
</pre>
Radio access technology
<pre>
Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_radio_access_technology
method return sender=:1.19 -> dest=:1.1247 reply_serial=2
byte 2
int32 0
</pre>
Registration status
<pre>
Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_registration_status
method return sender=:1.19 -> dest=:1.1271 reply_serial=2
byte 0
uint16 1521
uint32 13377698
uint32 16
uint32 204
byte 0
byte 27
int32 0
dbus_g_proxy_end_call(proxy, call_id, &error,
G_TYPE_UCHAR, &network_reg_status,
G_TYPE_UINT, &network_current_lac,
G_TYPE_UINT, &network_current_cell_id,
G_TYPE_UINT, &network_operator_code,
G_TYPE_UINT, &network_country_code,
G_TYPE_UCHAR, &network_type,
G_TYPE_UCHAR, &network_supported_services,
G_TYPE_INT, &error_value,
G_TYPE_INVALID);
</pre>
Network selection mode (mode, err val)
<pre>
Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_network_selection_mode
method return sender=:1.19 -> dest=:1.1319 reply_serial=2
byte 2
int32 0
</pre>
Scan for available networks:
<pre>
Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_available_network
method return sender=:1.19 -> dest=:1.1438 reply_serial=2
array [
byte 2
byte 3
byte 3
]
array [
string "16"
string "04"
string "08"
]
array [
string "204"
string "204"
string "204"
]
array [
string "T-Mobile NL"
string "vodafone NL"
string "NL KPN"
]
array [
byte 0
byte 2
byte 2
]
array [
byte 1
byte 1
byte 1
]
int32 0
</pre>
3cad075ff41c285240f56d8bdfa9129294d68ab0
397
396
2019-08-14T22:20:51Z
Wizzup
4
wikitext
text/x-wiki
This page contains various dbus calls to Nokia N900 Fremantle cellular daemons, often beyond what is covered here: https://wiki.maemo.org/Phone_control
TODO:
* cancel_select_network
* select_network
* select_network_mode
* set_selected_radio_access_technology
* get_operator_name
(Modem online or not)
<pre>
Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.SSC /com/nokia/phone/SSC com.nokia.phone.SSC.get_modem_state
method return sender=:1.18 -> dest=:1.1112 reply_serial=2
string "online"
</pre>
(Registered to network, network operation mode - normal or GAN only, the int is unknown - probably err val)
<pre>
Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_cs_state
method return sender=:1.19 -> dest=:1.1150 reply_serial=2
byte 1
byte 0
int32 0
</pre>
Radio access technology
<pre>
Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_radio_access_technology
method return sender=:1.19 -> dest=:1.1247 reply_serial=2
byte 2
int32 0
</pre>
Registration status
<pre>
Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_registration_status
method return sender=:1.19 -> dest=:1.1271 reply_serial=2
byte 0
uint16 1521
uint32 13377698
uint32 16
uint32 204
byte 0
byte 27
int32 0
dbus_g_proxy_end_call(proxy, call_id, &error,
G_TYPE_UCHAR, &network_reg_status,
G_TYPE_UINT, &network_current_lac,
G_TYPE_UINT, &network_current_cell_id,
G_TYPE_UINT, &network_operator_code,
G_TYPE_UINT, &network_country_code,
G_TYPE_UCHAR, &network_type,
G_TYPE_UCHAR, &network_supported_services,
G_TYPE_INT, &error_value,
G_TYPE_INVALID);
</pre>
Network selection mode (mode, err val)
<pre>
Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_network_selection_mode
method return sender=:1.19 -> dest=:1.1319 reply_serial=2
byte 2
int32 0
</pre>
Scan for available networks:
<pre>
Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_available_network
method return sender=:1.19 -> dest=:1.1438 reply_serial=2
array [
byte 2
byte 3
byte 3
]
array [
string "16"
string "04"
string "08"
]
array [
string "204"
string "204"
string "204"
]
array [
string "T-Mobile NL"
string "vodafone NL"
string "NL KPN"
]
array [
byte 0
byte 2
byte 2
]
array [
byte 1
byte 1
byte 1
]
int32 0
</pre>
8ee563650f8b80e36156373c631b550fc30edb3d
408
397
2019-08-25T18:10:33Z
Wizzup
4
wikitext
text/x-wiki
This page contains various dbus calls to Nokia N900 Fremantle cellular daemons, often beyond what is covered here: https://wiki.maemo.org/Phone_control
TODO:
* cancel_select_network
* select_network
* select_network_mode
* set_selected_radio_access_technology
* get_operator_name
(Modem online or not)
<pre>
Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.SSC /com/nokia/phone/SSC com.nokia.phone.SSC.get_modem_state
method return sender=:1.18 -> dest=:1.1112 reply_serial=2
string "online"
</pre>
(Registered to network, network operation mode - normal or GAN only, the int is unknown - probably err val)
<pre>
Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_cs_state
method return sender=:1.19 -> dest=:1.1150 reply_serial=2
byte 1
byte 0
int32 0
</pre>
Radio access technology
<pre>
Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_radio_access_technology
method return sender=:1.19 -> dest=:1.1247 reply_serial=2
byte 2
int32 0
</pre>
Registration status
<pre>
Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_registration_status
method return sender=:1.19 -> dest=:1.1271 reply_serial=2
byte 0
uint16 1521
uint32 13377698
uint32 16
uint32 204
byte 0
byte 27
int32 0
dbus_g_proxy_end_call(proxy, call_id, &error,
G_TYPE_UCHAR, &network_reg_status,
G_TYPE_UINT, &network_current_lac,
G_TYPE_UINT, &network_current_cell_id,
G_TYPE_UINT, &network_operator_code,
G_TYPE_UINT, &network_country_code,
G_TYPE_UCHAR, &network_type,
G_TYPE_UCHAR, &network_supported_services,
G_TYPE_INT, &error_value,
G_TYPE_INVALID);
</pre>
Network selection mode (mode, err val)
<pre>
Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_network_selection_mode
method return sender=:1.19 -> dest=:1.1319 reply_serial=2
byte 2
int32 0
</pre>
Scan for available networks:
<pre>
Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_available_network
method return sender=:1.19 -> dest=:1.1438 reply_serial=2
array [
byte 2
byte 3
byte 3
]
array [
string "16"
string "04"
string "08"
]
array [
string "204"
string "204"
string "204"
]
array [
string "T-Mobile NL"
string "vodafone NL"
string "NL KPN"
]
array [
byte 0
byte 2
byte 2
]
array [
byte 1
byte 1
byte 1
]
int32 0
</pre>
Modem state from SSC:
<pre>
Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.SSC /com/nokia/phone/SSC com.nokia.phone.SSC.get_modem_state
method return sender=:1.19 -> dest=:1.1731 reply_serial=2
string "sim_ready"
</pre>
6060d9ad643bfc0587bd0e769afc5365ab6f077b
409
408
2019-08-25T18:48:53Z
Wizzup
4
wikitext
text/x-wiki
This page contains various dbus calls to Nokia N900 Fremantle cellular daemons, often beyond what is covered here: https://wiki.maemo.org/Phone_control
TODO:
* cancel_select_network
* select_network
* select_network_mode
* set_selected_radio_access_technology
* get_operator_name
(Modem online or not)
<pre>
Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.SSC /com/nokia/phone/SSC com.nokia.phone.SSC.get_modem_state
method return sender=:1.18 -> dest=:1.1112 reply_serial=2
string "online"
</pre>
Other modem states
<pre>
Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.SSC /com/nokia/phone/SSC com.nokia.phone.SSC.get_modem_state
method return sender=:1.19 -> dest=:1.1731 reply_serial=2
string "sim_ready"
</pre>
(Registered to network, network operation mode - normal or GAN only, the int is unknown - probably err val)
<pre>
Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_cs_state
method return sender=:1.19 -> dest=:1.1150 reply_serial=2
byte 1
byte 0
int32 0
</pre>
Radio access technology
<pre>
Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_radio_access_technology
method return sender=:1.19 -> dest=:1.1247 reply_serial=2
byte 2
int32 0
</pre>
Registration status
<pre>
Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_registration_status
method return sender=:1.19 -> dest=:1.1271 reply_serial=2
byte 0
uint16 1521
uint32 13377698
uint32 16
uint32 204
byte 0
byte 27
int32 0
dbus_g_proxy_end_call(proxy, call_id, &error,
G_TYPE_UCHAR, &network_reg_status,
G_TYPE_UINT, &network_current_lac,
G_TYPE_UINT, &network_current_cell_id,
G_TYPE_UINT, &network_operator_code,
G_TYPE_UINT, &network_country_code,
G_TYPE_UCHAR, &network_type,
G_TYPE_UCHAR, &network_supported_services,
G_TYPE_INT, &error_value,
G_TYPE_INVALID);
</pre>
Network selection mode (mode, err val)
<pre>
Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_network_selection_mode
method return sender=:1.19 -> dest=:1.1319 reply_serial=2
byte 2
int32 0
</pre>
Scan for available networks:
<pre>
Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_available_network
method return sender=:1.19 -> dest=:1.1438 reply_serial=2
array [
byte 2
byte 3
byte 3
]
array [
string "16"
string "04"
string "08"
]
array [
string "204"
string "204"
string "204"
]
array [
string "T-Mobile NL"
string "vodafone NL"
string "NL KPN"
]
array [
byte 0
byte 2
byte 2
]
array [
byte 1
byte 1
byte 1
]
int32 0
</pre>
79bf4de8805506ccc41dec037cf00824c924b187
410
409
2019-08-25T18:51:06Z
Wizzup
4
wikitext
text/x-wiki
This page contains various dbus calls to Nokia N900 Fremantle cellular daemons, often beyond what is covered here: https://wiki.maemo.org/Phone_control
TODO:
* cancel_select_network
* select_network
* select_network_mode
* set_selected_radio_access_technology
* get_operator_name
(Modem online or not)
<pre>
Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.SSC /com/nokia/phone/SSC com.nokia.phone.SSC.get_modem_state
method return sender=:1.18 -> dest=:1.1112 reply_serial=2
string "online"
</pre>
Other modem states
<pre>
Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.SSC /com/nokia/phone/SSC com.nokia.phone.SSC.get_modem_state
method return sender=:1.19 -> dest=:1.1731 reply_serial=2
string "sim_ready"
</pre>
I guess there are at least a couple more, see https://github.com/maemo-leste/connui-cellular/blob/aec1443964ec08f4575dcbe4a1ef1083a966fca4/lib/code-ui.c#L679
(Registered to network, network operation mode - normal or GAN only, the int is unknown - probably err val)
<pre>
Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_cs_state
method return sender=:1.19 -> dest=:1.1150 reply_serial=2
byte 1
byte 0
int32 0
</pre>
Radio access technology
<pre>
Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_radio_access_technology
method return sender=:1.19 -> dest=:1.1247 reply_serial=2
byte 2
int32 0
</pre>
Registration status
<pre>
Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_registration_status
method return sender=:1.19 -> dest=:1.1271 reply_serial=2
byte 0
uint16 1521
uint32 13377698
uint32 16
uint32 204
byte 0
byte 27
int32 0
dbus_g_proxy_end_call(proxy, call_id, &error,
G_TYPE_UCHAR, &network_reg_status,
G_TYPE_UINT, &network_current_lac,
G_TYPE_UINT, &network_current_cell_id,
G_TYPE_UINT, &network_operator_code,
G_TYPE_UINT, &network_country_code,
G_TYPE_UCHAR, &network_type,
G_TYPE_UCHAR, &network_supported_services,
G_TYPE_INT, &error_value,
G_TYPE_INVALID);
</pre>
Network selection mode (mode, err val)
<pre>
Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_network_selection_mode
method return sender=:1.19 -> dest=:1.1319 reply_serial=2
byte 2
int32 0
</pre>
Scan for available networks:
<pre>
Nokia-N900:~# dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_available_network
method return sender=:1.19 -> dest=:1.1438 reply_serial=2
array [
byte 2
byte 3
byte 3
]
array [
string "16"
string "04"
string "08"
]
array [
string "204"
string "204"
string "204"
]
array [
string "T-Mobile NL"
string "vodafone NL"
string "NL KPN"
]
array [
byte 0
byte 2
byte 2
]
array [
byte 1
byte 1
byte 1
]
int32 0
</pre>
94e2d21917024ad0cfedc91d1884891efa9bd66c
Status
0
64
398
389
2019-08-23T07:32:59Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
For Device specific status pages, see See [[:Category:Device]]
The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device
{| class="wikitable"
! Feature
! Status
! Leste software
! Notes
|-
| Desktop environment || OK || hildon || hildon home, hildon desktop, .
|-
| Terminal || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] ||
|-
| [[Status/VirtualKeyboard|Virtual keyboard]] || OK || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work fine for all devices
|-
| [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Works out of the box. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7
|-
| Bluetooth || No(t yet) || ? ||
|-
| [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily
|-
| Audio || WIP || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio ; will need to import alsa-policy-enforcement, port OHM
|-
| Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] ||
|-
| [[Status/USB Peripheral|USB Peripheral]] || OK || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv
|-
| LED control || OK || mce || Works on the N900 - make sure the notifications are enabled in settings.
|-
| [[Status/Mobile Data|Mobile Data]] || WIP || [https://github.com/maemo-leste/connui-cellular connui-cellular] [https://github.com/maemo-leste/libicd-network-ofono libicd-network-ofono] || There is basic libicd-network-ofono, connui-cellular is being ported to ofono
|-
| [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed
|-
| [[Status/SMS|SMS]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue]
|-
| [[Status/Phone Calls|Phone Calls]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue]
|-
| [[Status/Application Manager|Application Manager]] || No(t yet) || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue]
|-
| [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue]
|-
| [[Status/Games|Games & Entertainment]] || No(t yet) || SDL, existing games ||
|}
1b71b18845241b417cda0afddc88669485aa98aa
402
398
2019-08-24T12:36:56Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
For Device specific status pages, see See [[:Category:Device]]
The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device
{| class="wikitable"
! Feature
! Status
! Leste software
! Notes
|-
| Desktop environment || OK || hildon || hildon home, hildon desktop, .
|-
| Terminal || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] ||
|-
| [[Status/VirtualKeyboard|Virtual keyboard]] || OK || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work fine for all devices
|-
| [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Works out of the box. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7
|-
| Bluetooth || No(t yet) || ? ||
|-
| [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily
|-
| Audio || WIP || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio ; will need to import alsa-policy-enforcement, port OHM
|-
| Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] ||
|-
| [[Status/USB Peripheral|USB Peripheral]] || OK || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv
|-
| LED control || OK || mce || Works on the N900 - make sure the notifications are enabled in settings.
|-
| [[Status/Mobile Data|Mobile Data]] || WIP || [https://github.com/maemo-leste/connui-cellular connui-cellular] [https://github.com/maemo-leste/libicd-network-ofono libicd-network-ofono] || There is basic libicd-network-ofono, connui-cellular is being ported to ofono
|-
| [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed
|-
| [[Status/SMS|SMS]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue]
|-
| [[Status/Phone Calls|Phone Calls]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue]
|-
| [[Status/Application Manager|Application Manager]] || No(t yet) || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue]
|-
| [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue]
|-
| [[Status/Games|Games & Entertainment]] || WIP || SDL, existing games || [https://github.com/maemo-leste/bugtracker/issues/18 sdl fullscreen] [https://github.com/maemo-leste/bugtracker/issues/238 game importing]
|}
91783ec83207e6056fc33cc818085562fc3f6509
404
402
2019-08-24T13:02:44Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
For Device specific status pages, see See [[:Category:Device]]
The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device
{| class="wikitable"
! Feature
! Status
! Leste software
! Notes
|-
| Desktop environment || OK || hildon || hildon home, hildon desktop, .
|-
| Terminal || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] ||
|-
| [[Status/VirtualKeyboard|Virtual keyboard]] || OK || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work fine for all devices
|-
| [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Works out of the box. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7
|-
| Bluetooth || No(t yet) || ? ||
|-
| [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily. Some also use netsurf-gtk.
|-
| Audio || WIP || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio ; will need to import alsa-policy-enforcement, port OHM
|-
| Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] ||
|-
| [[Status/USB Peripheral|USB Peripheral]] || OK || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv
|-
| LED control || OK || mce || Works on the N900 - make sure the notifications are enabled in settings.
|-
| [[Status/Mobile Data|Mobile Data]] || WIP || [https://github.com/maemo-leste/connui-cellular connui-cellular] [https://github.com/maemo-leste/libicd-network-ofono libicd-network-ofono] || There is basic libicd-network-ofono, connui-cellular is being ported to ofono
|-
| [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed
|-
| [[Status/SMS|SMS]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue]
|-
| [[Status/Phone Calls|Phone Calls]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue]
|-
| [[Status/Application Manager|Application Manager]] || No(t yet) || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue]
|-
| [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue]
|-
| [[Status/Games|Games & Entertainment]] || WIP || SDL, existing games || [https://github.com/maemo-leste/bugtracker/issues/18 sdl fullscreen] [https://github.com/maemo-leste/bugtracker/issues/238 game importing]
|}
1ae694fcf8d2d2aea257a309dbc8e3b9f95288a9
Status/Games
0
84
399
2019-08-23T07:36:25Z
Wizzup
4
Created page with "= Status = * Need to add/import osso-games: https://github.com/maemo-leste/bugtracker/issues/238 * Need to test out some SDL fixes, possibly fix bugs: https://github.com/maem..."
wikitext
text/x-wiki
= Status =
* Need to add/import osso-games: https://github.com/maemo-leste/bugtracker/issues/238
* Need to test out some SDL fixes, possibly fix bugs: https://github.com/maemo-leste/bugtracker/issues/18
= Wishlist =
* drnoksnes - [[User:Wizzup]]
* latest scummvm [[User:Wizzup]]
* (...)
= Resources =
https://wiki.maemo.org/Games
0d778c0518c33ed539a837ffed5bc39fdfe01012
403
399
2019-08-24T12:40:48Z
Wizzup
4
wikitext
text/x-wiki
= Status =
* Need to add/import osso-games: https://github.com/maemo-leste/bugtracker/issues/238
* Need to test out some SDL fixes, possibly fix bugs: https://github.com/maemo-leste/bugtracker/issues/18
= Working =
* Mahjong is reported to work (not yet in repos)
* Marbles is getting there
= Wishlist =
* drnoksnes - [[User:Wizzup]]
* latest scummvm [[User:Wizzup]]
* (...)
= Resources =
https://wiki.maemo.org/Games
c47950300a576ac50ca97b7223996fd31a265f3c
405
403
2019-08-25T13:10:37Z
Tyusha
23
/* Wishlist */
wikitext
text/x-wiki
= Status =
* Need to add/import osso-games: https://github.com/maemo-leste/bugtracker/issues/238
* Need to test out some SDL fixes, possibly fix bugs: https://github.com/maemo-leste/bugtracker/issues/18
= Working =
* Mahjong is reported to work (not yet in repos)
* Marbles is getting there
= Wishlist =
* drnoksnes - [[User:Wizzup]]
* latest scummvm [[User:Wizzup]]
* latest solarus [[User:tyusha]]
* (...)
= Resources =
https://wiki.maemo.org/Games
e1ec2d2e3d72a14ec7034c10b494a8f6bc60847f
Nokia N900
0
48
400
376
2019-08-23T09:01:31Z
Wizzup
4
/* Status */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The original Nokia N900.
== Notes ==
* Screen will be black for a few minutes while starting X - this is a known PowerVR issue. Just wait it out - it might freeze once more for a few minutes, but then will function OKayish
* If your battery is not calibrated, the battery applet will not give you any data. Charge the battery fully, and then let it discharge (almost) completely.
* Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful.
Also see: https://elinux.org/N900
Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.0 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip-5.0.y
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing non-free firmware
|-
| Ethernet || N/A ||
|-
| Bluetooth || Not yet || Driver problems in mainline
|-
| Infrared || Yes || TX only (hardware limitation).
|-
| (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || Yes || Works fast(!)
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters)
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on Bluetooth
|-
| Accelerometer || Not yet || Available as input device, needs MCE work
|-
| Proximity sensor || Not yet ||
|-
| Vibration Motor || Yes || No integration yet
|-
| TV-out || Not yet || Should work in kernel, didn't get it to work yet
|-
| GPS || WIP || Works using gps3 and gpsd, needs integration still
|}
== Installation ==
Images: http://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to use/install Fremantle, or want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste.
To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
[[Category:Device]]
2c01f8d44310c0570c6815e0dab77c456c81ac02
416
400
2019-10-04T15:25:33Z
Derby
3
/* Status */ radio-bcm2048 was removed from staging
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The original Nokia N900.
== Notes ==
* Screen will be black for a few minutes while starting X - this is a known PowerVR issue. Just wait it out - it might freeze once more for a few minutes, but then will function OKayish
* If your battery is not calibrated, the battery applet will not give you any data. Charge the battery fully, and then let it discharge (almost) completely.
* Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful.
Also see: https://elinux.org/N900
Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.0 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip-5.0.y
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing non-free firmware
|-
| Ethernet || N/A ||
|-
| Bluetooth || Not yet || Driver problems in mainline
|-
| Infrared || Yes || TX only (hardware limitation).
|-
| (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || Yes || Works fast(!)
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters)
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on Bluetooth. [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/staging?id=757c2bf597a8e9f859f8efceda9c5108607fd98d Removed in Linux 5.4-rc1.]
|-
| Accelerometer || Not yet || Available as input device, needs MCE work
|-
| Proximity sensor || Not yet ||
|-
| Vibration Motor || Yes || No integration yet
|-
| TV-out || Not yet || Should work in kernel, didn't get it to work yet
|-
| GPS || WIP || Works using gps3 and gpsd, needs integration still
|}
== Installation ==
Images: http://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to use/install Fremantle, or want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste.
To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
[[Category:Device]]
ea6762fcb1ee89913deeae3dce438415a6ebc9e0
435
416
2019-12-06T00:03:12Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The original Nokia N900.
== Notes ==
* Screen will be black for a few minutes while starting X - this is a known PowerVR issue. Just wait it out - it might freeze once more for a few minutes, but then will function OKayish
* If your battery is not calibrated, the battery applet will not give you any data. Charge the battery fully, and then let it discharge (almost) completely.
* Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful.
Also see: https://elinux.org/N900
Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.0 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip-5.0.y
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing non-free firmware
|-
| Ethernet || N/A ||
|-
| Bluetooth || Not yet || Driver problems in mainline
|-
| Infrared || Yes || TX only (hardware limitation).
|-
| (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || Yes || Works fast(!)
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters)
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on Bluetooth. [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/staging?id=757c2bf597a8e9f859f8efceda9c5108607fd98d Removed in Linux 5.4-rc1.]
|-
| Accelerometer || Not yet || Available as input device, needs MCE work
|-
| Proximity sensor || Not yet ||
|-
| Vibration Motor || Yes || No integration yet
|-
| TV-out || Not yet || Should work in kernel, didn't get it to work yet
|-
| GPS || WIP || Works using gps3 and gpsd, needs integration still
|}
== Installation ==
Images: http://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to use/install Fremantle, or want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste.
To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Power Management ==
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
[[Category:Device]]
5d4b7d5683308d5df1790f1d34dd5d2526af84c6
441
435
2019-12-22T20:23:58Z
Wizzup
4
/* If you don't want to use/install Fremantle, or want to install quickly */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The original Nokia N900.
== Notes ==
* Screen will be black for a few minutes while starting X - this is a known PowerVR issue. Just wait it out - it might freeze once more for a few minutes, but then will function OKayish
* If your battery is not calibrated, the battery applet will not give you any data. Charge the battery fully, and then let it discharge (almost) completely.
* Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful.
Also see: https://elinux.org/N900
Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.0 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip-5.0.y
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing non-free firmware
|-
| Ethernet || N/A ||
|-
| Bluetooth || Not yet || Driver problems in mainline
|-
| Infrared || Yes || TX only (hardware limitation).
|-
| (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || Yes || Works fast(!)
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters)
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on Bluetooth. [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/staging?id=757c2bf597a8e9f859f8efceda9c5108607fd98d Removed in Linux 5.4-rc1.]
|-
| Accelerometer || Not yet || Available as input device, needs MCE work
|-
| Proximity sensor || Not yet ||
|-
| Vibration Motor || Yes || No integration yet
|-
| TV-out || Not yet || Should work in kernel, didn't get it to work yet
|-
| GPS || WIP || Works using gps3 and gpsd, needs integration still
|}
== Installation ==
Images: http://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to use/install Fremantle, or want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''.
To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Power Management ==
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
[[Category:Device]]
0fb7381bf4b6738673f0e6ddb882dd75eb2cd9bf
Pine64 Anakin Devkit
0
77
401
296
2019-08-23T09:37:07Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
PineTablet / PinePhone first devkit, codenamed "Anakin".
== Notes ==
Images: https://maedevu.maemo.org/images/pinephone-dontbeevil/
http://wiki.pine64.org/index.php/Project_Anakin
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.1+ ||
|-
| Serial || Yes ||
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || Yes ||
|-
| Bluetooth || ?? ||
|-
| USB-C || Yes ||
|-
| Keyboard || N/A ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes/WIP || Mali/Lima
|-
| Touchscreen || Yes ||
|-
| Audio || Yes ||
|-
| 2G/3G/LTE data || Yes || Quectel EC20 R2.1 LTE Module
|-
| SMS || Yes, no UI ||
|-
| Phone calls || Yes, audio routing wip ||
|-
| HDMI-out || Untested ||
|-
| GPS || Probably (part of the modem) ||
|}
== Installation ==
dd the image to an sd card.
[[Category:Device]]
9581df67b5e7344c3c710b17857387bccd5c4c31
406
401
2019-08-25T17:40:31Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
PineTablet / PinePhone first devkit, codenamed "Anakin".
== Notes ==
http://wiki.pine64.org/index.php/Project_Anakin
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.1+ ||
|-
| Serial || Yes ||
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || Yes ||
|-
| Bluetooth || ?? ||
|-
| USB-C || Yes ||
|-
| Keyboard || N/A ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes/WIP || Mali/Lima
|-
| Touchscreen || Yes ||
|-
| Audio || Yes ||
|-
| 2G/3G/LTE data || Yes || Quectel EC20 R2.1 LTE Module
|-
| SMS || Yes, no UI ||
|-
| Phone calls || Yes, audio routing wip ||
|-
| HDMI-out || Untested ||
|-
| GPS || Probably (part of the modem) ||
|}
== Installation ==
dd the image to an sd card.
[[Category:Device]]
ad69b3c329b850e6e911bd74d5410583974f6ee6
Pine64 DontBeEvil Devkit
0
79
407
361
2019-08-25T17:40:43Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
PinePhone devkit, codenamed "Don't Be Evil".
== Notes ==
WIP. We are working on images. A lot of things already work, though.
http://wiki.pine64.org/index.php/Project_Don't_be_evil
See this page for some screenshots: https://talk.maemo.org/showpost.php?p=1556424&postcount=227
Lima-enabled mesa is available in the 'lima' component: https://phoenix.maemo.org/job/mesa-repos/ / https://maedevu.maemo.org/leste/dists/leste/lima/
Images: https://maedevu.maemo.org/images/pinephone-dontbeevil/
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.1-rc7 || https://gitlab.com/pine64-org/linux/tree/pinephone-dontbeevil-5.1-rc7
|-
| Serial || Yes ||
|-
| Charging || Yes ||
|-
| Wireless || Yes || 8723bs
|-
| Ethernet || Yes ||
|-
| Bluetooth || ?? ||
|-
| USB C || Yes || Host and OTG
|-
| Keyboard || N/A ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes/WIP || Mali/Lima
|-
| Touchscreen || Yes ||
|-
| Audio || Yes || Headphones and speaker work
|-
| 2G/3G/LTE data || WIP || Quectel EC25 LTE Module; unable to test due to SIM routing problem: https://wiki.pine64.org/index.php/Project_Don't_be_evil#Errata_for_ver1.1_and_ver1.2_board
|-
| SMS || WIP ||
|-
| Phone calls || WIP ||
|-
| HDMI-out || Yes ||
|-
| GPS || WIP ||
|-
| Front Camera || ??? || Either front or back camera already works
|-
| Back Camera || ??? || Either front or back camera already works
|}
== Installation ==
[[Category:Device]]
76f5bed3def0af76f4e91a7427f41965c2ce2689
Motorola Droid 4
0
50
411
378
2019-08-26T19:28:44Z
Sicelo
5
Add info about keymap and bluetooth
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
...
== Notes ==
Also see: http://elektranox.org/droid4/
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.0 || Mainline + some patches not yet in mainline
|-
| Serial || Yes || On MicroUSB port, requires special cable
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]]
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Reported to work, no UI yet
|-
| Phone calls || WIP || Reported to work, no UI yet
|-
| Bluetooth || No || Needs firmware, https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts Still does not work even when fw is provided
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|}
== Installation using kexecboot ==
This procedure will erase existing android and/or safestrap.
Requirements:
* MicroSD card, MicroUSB cable and Droid4
* Charged Droid4
* Android Tools (fastboot and adb), git (optional), and flashing tools (xzcat and dd on Linux '''OR''' Etcher[https://github.com/balena-io/etcher] on Windows)
* Host Linux or Windows system
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh (Linux) or flash-droid-4-fs.bat (Windows)
# Latest '''maemo-leste-1.0-armhf-droid4-*.img.xz'''
And clone (or download the zip for):
* https://github.com/tmlind/droid4-kexecboot.git
Installation:
# Power off Droid4
# Create a working directory with above mentioned files in it
# unzip '''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip'''
#* If you have safestrap on the device, turn on the droid4, go to safestrap, reboot, reboot to bootloader
#* If you do not have safestrap, turn on the device, and issue on the host: '''adb reboot bootloader'''
# Run the '''flash-droid-4-fw''' script from the extracted android directory ('''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml'''), run as admin/root if it does not find the device
# If you get errors while writing the image files, try a better MicroUSB cable.
# Wait for the flashing script to complete. This can take a few minutes. The droid will reboot a couple of times to the bootloader.
Then go to the '''droid4-kexecboot''' directory and run (possibly as sudo):
# fastboot flash mbm path/to/android/zip/allow-mbmloader-flashing-mbm.bin
# fastboot reboot-bootloader
# fastboot flash bpsw current/droid4-kexecboot.img
# fastboot flash utags utags-mmcblk1p13.bin
Then reboot the device (hold the power button for one or two seconds) and '''wait for it to get through the first boot'''. It will show a green android with something moving in it's stomach, as well as a progress bar. Then the device should show kexecboot for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
# '''xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE'''
# '''sync'''
On Windows: Use Etcher
Wait for the sync to complete and and insert the SD card into the Droid 4. Reboot the device and select Maemo Leste from the kexecboot menu.
You will now have see Maemo Leste boot up, and show you an unaccelerated hildon-desktop after about one minute.
== Safestrap+ddroid Installation (no longer recommended and outdated) ==
''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card '''
PostmarketOS has some information how to install safestrap: [https://wiki.postmarketos.org/wiki/Motorola_Droid_4_(motorola-maserati) in wiki]
Flashing the zip file is quite confusing / tricky:
Boot options, select slot with Leste, Activate.
In main menu: Install, scroll down to select ddroid-....zip file, swipe to confirm flash. You will get error, including "ApplyParsePerms, set_metadata_recursive, Error executing updater binary, Unable to mount." Red "failed" will appear. These are normal. Proceed by selecting "Reboot System", you'll get one more warning that system is not installed, swipe to confirm reboot.
Red motorola logo will appear, press search button to continue boot, phone vibrates, then vibrates again, then green led comes on. After about a minute, console appears, then disappears and X comes to life.
== Kernel development (old and outdated) ==
Linux 4.14 plus patches
Status: http://elektranox.org/droid4/
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]
[[Category:Device]]
b8fbbf08549931e3e1649a73a70cc3e846697040
412
411
2019-08-26T19:45:18Z
Sicelo
5
/* Status */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
...
== Notes ==
Also see: http://elektranox.org/droid4/
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.0 || Mainline + some patches not yet in mainline
|-
| Serial || Yes || On MicroUSB port, requires special cable
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]]
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Reported to work, no UI yet
|-
| Phone calls || WIP || Reported to work, no UI yet
|-
| Bluetooth || Not yet || Needs firmware, https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts Still does not work even when fw is provided
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|}
== Installation using kexecboot ==
This procedure will erase existing android and/or safestrap.
Requirements:
* MicroSD card, MicroUSB cable and Droid4
* Charged Droid4
* Android Tools (fastboot and adb), git (optional), and flashing tools (xzcat and dd on Linux '''OR''' Etcher[https://github.com/balena-io/etcher] on Windows)
* Host Linux or Windows system
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh (Linux) or flash-droid-4-fs.bat (Windows)
# Latest '''maemo-leste-1.0-armhf-droid4-*.img.xz'''
And clone (or download the zip for):
* https://github.com/tmlind/droid4-kexecboot.git
Installation:
# Power off Droid4
# Create a working directory with above mentioned files in it
# unzip '''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip'''
#* If you have safestrap on the device, turn on the droid4, go to safestrap, reboot, reboot to bootloader
#* If you do not have safestrap, turn on the device, and issue on the host: '''adb reboot bootloader'''
# Run the '''flash-droid-4-fw''' script from the extracted android directory ('''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml'''), run as admin/root if it does not find the device
# If you get errors while writing the image files, try a better MicroUSB cable.
# Wait for the flashing script to complete. This can take a few minutes. The droid will reboot a couple of times to the bootloader.
Then go to the '''droid4-kexecboot''' directory and run (possibly as sudo):
# fastboot flash mbm path/to/android/zip/allow-mbmloader-flashing-mbm.bin
# fastboot reboot-bootloader
# fastboot flash bpsw current/droid4-kexecboot.img
# fastboot flash utags utags-mmcblk1p13.bin
Then reboot the device (hold the power button for one or two seconds) and '''wait for it to get through the first boot'''. It will show a green android with something moving in it's stomach, as well as a progress bar. Then the device should show kexecboot for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
# '''xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE'''
# '''sync'''
On Windows: Use Etcher
Wait for the sync to complete and and insert the SD card into the Droid 4. Reboot the device and select Maemo Leste from the kexecboot menu.
You will now have see Maemo Leste boot up, and show you an unaccelerated hildon-desktop after about one minute.
== Safestrap+ddroid Installation (no longer recommended and outdated) ==
''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card '''
PostmarketOS has some information how to install safestrap: [https://wiki.postmarketos.org/wiki/Motorola_Droid_4_(motorola-maserati) in wiki]
Flashing the zip file is quite confusing / tricky:
Boot options, select slot with Leste, Activate.
In main menu: Install, scroll down to select ddroid-....zip file, swipe to confirm flash. You will get error, including "ApplyParsePerms, set_metadata_recursive, Error executing updater binary, Unable to mount." Red "failed" will appear. These are normal. Proceed by selecting "Reboot System", you'll get one more warning that system is not installed, swipe to confirm reboot.
Red motorola logo will appear, press search button to continue boot, phone vibrates, then vibrates again, then green led comes on. After about a minute, console appears, then disappears and X comes to life.
== Kernel development (old and outdated) ==
Linux 4.14 plus patches
Status: http://elektranox.org/droid4/
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]
[[Category:Device]]
691aa64cde51bd5ef44ce8790e61945c470ed541
417
412
2019-10-04T17:00:28Z
Sicelo
5
/* Notes */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
...
== Notes ==
Also see: http://elektranox.org/droid4/
While using a serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.0 || Mainline + some patches not yet in mainline
|-
| Serial || Yes || On MicroUSB port, requires special cable
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]]
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Reported to work, no UI yet
|-
| Phone calls || WIP || Reported to work, no UI yet
|-
| Bluetooth || Not yet || Needs firmware, https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts Still does not work even when fw is provided
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|}
== Installation using kexecboot ==
This procedure will erase existing android and/or safestrap.
Requirements:
* MicroSD card, MicroUSB cable and Droid4
* Charged Droid4
* Android Tools (fastboot and adb), git (optional), and flashing tools (xzcat and dd on Linux '''OR''' Etcher[https://github.com/balena-io/etcher] on Windows)
* Host Linux or Windows system
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh (Linux) or flash-droid-4-fs.bat (Windows)
# Latest '''maemo-leste-1.0-armhf-droid4-*.img.xz'''
And clone (or download the zip for):
* https://github.com/tmlind/droid4-kexecboot.git
Installation:
# Power off Droid4
# Create a working directory with above mentioned files in it
# unzip '''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip'''
#* If you have safestrap on the device, turn on the droid4, go to safestrap, reboot, reboot to bootloader
#* If you do not have safestrap, turn on the device, and issue on the host: '''adb reboot bootloader'''
# Run the '''flash-droid-4-fw''' script from the extracted android directory ('''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml'''), run as admin/root if it does not find the device
# If you get errors while writing the image files, try a better MicroUSB cable.
# Wait for the flashing script to complete. This can take a few minutes. The droid will reboot a couple of times to the bootloader.
Then go to the '''droid4-kexecboot''' directory and run (possibly as sudo):
# fastboot flash mbm path/to/android/zip/allow-mbmloader-flashing-mbm.bin
# fastboot reboot-bootloader
# fastboot flash bpsw current/droid4-kexecboot.img
# fastboot flash utags utags-mmcblk1p13.bin
Then reboot the device (hold the power button for one or two seconds) and '''wait for it to get through the first boot'''. It will show a green android with something moving in it's stomach, as well as a progress bar. Then the device should show kexecboot for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
# '''xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE'''
# '''sync'''
On Windows: Use Etcher
Wait for the sync to complete and and insert the SD card into the Droid 4. Reboot the device and select Maemo Leste from the kexecboot menu.
You will now have see Maemo Leste boot up, and show you an unaccelerated hildon-desktop after about one minute.
== Safestrap+ddroid Installation (no longer recommended and outdated) ==
''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card '''
PostmarketOS has some information how to install safestrap: [https://wiki.postmarketos.org/wiki/Motorola_Droid_4_(motorola-maserati) in wiki]
Flashing the zip file is quite confusing / tricky:
Boot options, select slot with Leste, Activate.
In main menu: Install, scroll down to select ddroid-....zip file, swipe to confirm flash. You will get error, including "ApplyParsePerms, set_metadata_recursive, Error executing updater binary, Unable to mount." Red "failed" will appear. These are normal. Proceed by selecting "Reboot System", you'll get one more warning that system is not installed, swipe to confirm reboot.
Red motorola logo will appear, press search button to continue boot, phone vibrates, then vibrates again, then green led comes on. After about a minute, console appears, then disappears and X comes to life.
== Kernel development (old and outdated) ==
Linux 4.14 plus patches
Status: http://elektranox.org/droid4/
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]
[[Category:Device]]
c29d15f7ba6ebb8203027d69ad13e148caa997ab
418
417
2019-10-19T22:24:49Z
Wizzup
4
Add instructions to make 'adb reboot bootloader' work.
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
...
== Notes ==
Also see: http://elektranox.org/droid4/
While using a serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.0 || Mainline + some patches not yet in mainline
|-
| Serial || Yes || On MicroUSB port, requires special cable
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]]
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Reported to work, no UI yet
|-
| Phone calls || WIP || Reported to work, no UI yet
|-
| Bluetooth || Not yet || Needs firmware, https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts Still does not work even when fw is provided
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|}
== Installation using kexecboot ==
This procedure will erase existing android and/or safestrap.
Requirements:
* MicroSD card, MicroUSB cable and Droid4
* Charged Droid4
* Android Tools (fastboot and adb), git (optional), and flashing tools (xzcat and dd on Linux '''OR''' Etcher[https://github.com/balena-io/etcher] on Windows)
* Host Linux or Windows system
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh (Linux) or flash-droid-4-fs.bat (Windows)
# Latest '''maemo-leste-1.0-armhf-droid4-*.img.xz'''
And clone (or download the zip for):
* https://github.com/tmlind/droid4-kexecboot.git
Installation:
# With the Droid4 booted into Android, go to "Developer Options" in Settings, and enable debugging over USB.
# Power off Droid4
# Create a working directory with above mentioned files in it
# unzip '''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip'''
#* If you have safestrap on the device, turn on the droid4, go to safestrap, reboot, reboot to bootloader
#* If you do not have safestrap, turn on the device, and issue on the host: '''adb reboot bootloader'''
# Run the '''flash-droid-4-fw''' script from the extracted android directory ('''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml'''), run as admin/root if it does not find the device
# If you get errors while writing the image files, try a better MicroUSB cable.
# Wait for the flashing script to complete. This can take a few minutes. The droid will reboot a couple of times to the bootloader.
Then go to the '''droid4-kexecboot''' directory and run (possibly as sudo):
# fastboot flash mbm path/to/android/zip/allow-mbmloader-flashing-mbm.bin
# fastboot reboot-bootloader
# fastboot flash bpsw current/droid4-kexecboot.img
# fastboot flash utags utags-mmcblk1p13.bin
Then reboot the device (hold the power button for one or two seconds) and '''wait for it to get through the first boot'''. It will show a green android with something moving in it's stomach, as well as a progress bar. Then the device should show kexecboot for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
# '''xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE'''
# '''sync'''
On Windows: Use Etcher
Wait for the sync to complete and and insert the SD card into the Droid 4. Reboot the device and select Maemo Leste from the kexecboot menu.
You will now have see Maemo Leste boot up, and show you an unaccelerated hildon-desktop after about one minute.
== Safestrap+ddroid Installation (no longer recommended and outdated) ==
''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card '''
PostmarketOS has some information how to install safestrap: [https://wiki.postmarketos.org/wiki/Motorola_Droid_4_(motorola-maserati) in wiki]
Flashing the zip file is quite confusing / tricky:
Boot options, select slot with Leste, Activate.
In main menu: Install, scroll down to select ddroid-....zip file, swipe to confirm flash. You will get error, including "ApplyParsePerms, set_metadata_recursive, Error executing updater binary, Unable to mount." Red "failed" will appear. These are normal. Proceed by selecting "Reboot System", you'll get one more warning that system is not installed, swipe to confirm reboot.
Red motorola logo will appear, press search button to continue boot, phone vibrates, then vibrates again, then green led comes on. After about a minute, console appears, then disappears and X comes to life.
== Kernel development (old and outdated) ==
Linux 4.14 plus patches
Status: http://elektranox.org/droid4/
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]
[[Category:Device]]
2e4e29071248a1fbbe7efa27ab729a7db0fc983b
420
418
2019-11-08T11:19:14Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Notes ==
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/
While using a serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.0 || Mainline + some patches not yet in mainline
|-
| Serial || Yes || On MicroUSB port, requires special cable
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]]
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Reported to work, no UI yet
|-
| Phone calls || WIP || Reported to work, no UI yet
|-
| Bluetooth || Not yet || Needs firmware, https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts Still does not work even when fw is provided
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|}
== Installation using kexecboot ==
This procedure will erase existing android and/or safestrap.
Requirements:
* MicroSD card, MicroUSB cable and Droid4
* Charged Droid4
* Android Tools (fastboot and adb), git (optional), and flashing tools (xzcat and dd on Linux '''OR''' Etcher[https://github.com/balena-io/etcher] on Windows)
* Host Linux or Windows system
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh (Linux) or flash-droid-4-fs.bat (Windows)
# Latest '''maemo-leste-1.0-armhf-droid4-*.img.xz'''
And clone (or download the zip for):
* https://github.com/tmlind/droid4-kexecboot.git
Installation:
# With the Droid4 booted into Android, go to "Developer Options" in Settings, and enable debugging over USB.
# Power off Droid4
# Create a working directory with above mentioned files in it
# unzip '''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip'''
#* If you have safestrap on the device, turn on the droid4, go to safestrap, reboot, reboot to bootloader
#* If you do not have safestrap, turn on the device, and issue on the host: '''adb reboot bootloader'''
# Run the '''flash-droid-4-fw''' script from the extracted android directory ('''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml'''), run as admin/root if it does not find the device
# If you get errors while writing the image files, try a better MicroUSB cable.
# Wait for the flashing script to complete. This can take a few minutes. The droid will reboot a couple of times to the bootloader.
Then go to the '''droid4-kexecboot''' directory and run (possibly as sudo):
# fastboot flash mbm path/to/android/zip/allow-mbmloader-flashing-mbm.bin
# fastboot reboot-bootloader
# fastboot flash bpsw current/droid4-kexecboot.img
# fastboot flash utags utags-mmcblk1p13.bin
Then reboot the device (hold the power button for one or two seconds) and '''wait for it to get through the first boot'''. It will show a green android with something moving in it's stomach, as well as a progress bar. Then the device should show kexecboot for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
# '''xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE'''
# '''sync'''
On Windows: Use Etcher
Wait for the sync to complete and and insert the SD card into the Droid 4. Reboot the device and select Maemo Leste from the kexecboot menu.
You will now have see Maemo Leste boot up, and show you an unaccelerated hildon-desktop after about one minute.
== Safestrap+ddroid Installation (no longer recommended and outdated) ==
''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card '''
PostmarketOS has some information how to install safestrap: [https://wiki.postmarketos.org/wiki/Motorola_Droid_4_(motorola-maserati) in wiki]
Flashing the zip file is quite confusing / tricky:
Boot options, select slot with Leste, Activate.
In main menu: Install, scroll down to select ddroid-....zip file, swipe to confirm flash. You will get error, including "ApplyParsePerms, set_metadata_recursive, Error executing updater binary, Unable to mount." Red "failed" will appear. These are normal. Proceed by selecting "Reboot System", you'll get one more warning that system is not installed, swipe to confirm reboot.
Red motorola logo will appear, press search button to continue boot, phone vibrates, then vibrates again, then green led comes on. After about a minute, console appears, then disappears and X comes to life.
== Kernel development (old and outdated) ==
Linux 4.14 plus patches
Status: http://elektranox.org/droid4/
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]
[[Category:Device]]
f7fd5d89af705bd1c46b541099f68c45c9e99529
Status/USB Peripheral
0
73
413
295
2019-09-20T21:41:28Z
Minicom
21
add default password
wikitext
text/x-wiki
Currently, devices that are supported by Maemo Leste will automatically set up USB networking if you plug them into a PC.
Mass Storage may show as an option, but doesn't do anything useful yet.
== Share PC network with Leste device ==
To also have the devices use your PC network, log into the devices:
<pre>
ifconfig usb0 up 192.168.42.1
ssh root@192.168.42.2
</pre>
The default password is <code>toor</code>.
And then add the following route on the device:
<pre>
ip route add default via 192.168.42.1
# if this fails, first run ip route del default
</pre>
On your PC, issue:
<pre>
# (Maybe only one of these two echos is necessary)
echo 1 > /proc/sys/net/ipv4/conf/usb0/forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -A POSTROUTING -t nat -s 192.168.42.2/32 -j MASQUERADE
</pre>
Now your Leste device should be able to use your PC network
63237524ab7d35b52f3381d908f9e43a115eebb8
414
413
2019-09-20T23:47:08Z
Minicom
21
add default config file
wikitext
text/x-wiki
Currently, devices that are supported by Maemo Leste will automatically set up USB networking if you plug them into a PC.
Mass Storage may show as an option, but doesn't do anything useful yet.
== Share PC network with Leste device ==
To also have the devices use your PC network, log into the devices:
<pre>
ifconfig usb0 up 192.168.42.1
ssh root@192.168.42.2
</pre>
The default password is <code>toor</code>.
And then add the following route on the device:
<pre>
ip route add default via 192.168.42.1
# if this fails, first run ip route del default
</pre>
On your PC, issue:
<pre>
# (Maybe only one of these two echos is necessary)
echo 1 > /proc/sys/net/ipv4/conf/usb0/forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -A POSTROUTING -t nat -s 192.168.42.2/32 -j MASQUERADE
</pre>
Now your Leste device should be able to use your PC network
== Notes ==
* The default IP address is configured in <code>/usr/sbin/pcsuite-enable.sh</code>
53ac925d5f78c48636957c2934129f25207e23d0
415
414
2019-09-21T11:58:49Z
Minicom
21
enable iptables note
wikitext
text/x-wiki
Currently, devices that are supported by Maemo Leste will automatically set up USB networking if you plug them into a PC.
Mass Storage may show as an option, but doesn't do anything useful yet.
== Share PC network with Leste device ==
To also have the devices use your PC network, log into the devices:
<pre>
ifconfig usb0 up 192.168.42.1
ssh root@192.168.42.2
</pre>
The default password is <code>toor</code>.
And then add the following route on the device:
<pre>
ip route add default via 192.168.42.1
# if this fails, first run ip route del default
</pre>
On your PC, issue:
<pre>
# (Maybe only one of these two echos is necessary)
echo 1 > /proc/sys/net/ipv4/conf/usb0/forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -A POSTROUTING -t nat -s 192.168.42.2/32 -j MASQUERADE
</pre>
Make sure that forwarding is also allowed within iptables itself, enable it with <code>iptables --policy FORWARD ACCEPT</code>
Now your Leste device should be able to use your PC network
== Notes ==
* The default IP address is configured in <code>/usr/sbin/pcsuite-enable.sh</code>
d4c7630e813905c0db1cab96182f107d47723641
Motorola Droid 4/Modem
0
85
419
2019-11-08T11:18:29Z
Wizzup
4
Add notes about how to use/start the modem for voice calls
wikitext
text/x-wiki
Modem modules & integration with latest kernel + patches:
<pre>
01:17 < tmlind_> you need to modprobe snd-soc-cpcap, snd-soc-motmdm, and then snd-soc-audio-graph-card
01:17 < tmlind_> try this led backlight series:
01:17 < tmlind_> https://lists.freedesktop.org/archives/dri-devel/2019-October/238988.html
01:17 < tmlind_> you may need to add something to the dts file too, not sure
01:18 < tmlind_> something to tell whichc led is the backlight, the binding patch should have info about it
01:18 < Wizzup> mhm, ok.
01:19 < tmlind_> for modem, you want phy-mapphone-mdm6600 and ohci-platform loaded, then the snd-soc drivers above
01:19 < tmlind_> oh and motorola-mdm too
01:20 < tmlind_> and for idling ohci when not in use, you want to configure /etc/udev/rules.d/ file with:
01:20 < tmlind_> ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="22b8", ATTRS{idProduct}=="2a70", TEST=="power/control"
ATTR{power/control}="auto"
01:21 < tmlind_> and you probably also need some entry for the /dev/motmdm* file permissions there too
</pre>
e7422e5610907a7f471366733bd84b5142b503f3
Virtual Machine
0
60
421
320
2019-11-09T06:18:50Z
Arvl
25
/* Real hardware */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Generic
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
Generic virtual machine target. This is particularly useful when doing development and testing.
== Installation ==
https://maedevu.maemo.org/images/virtual-machines/
There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration.
Converting the qcow2 image to raw allows it to be used on real hardware.
=== VirtualBox ===
Download latest .vdi.xz image, unpack it with "xz -d" command.
Create new Virtual Machine, select "Debian (64-bit)" and 1024MB RAM. Use the downloaded file as virtual hard disk.
You are done!
=== QEMU ===
In general something like
qemu-system-x86_64 -hda maemo-leste-1.0-amd64.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024
should work. But there seem to be issues with some QEMU versions, for more details see [https://github.com/maemo-leste/bugtracker/issues/198 issue#198].
=== Real hardware ===
The contents of the `qcow2` file can be extracted and copied into hard drives for bare metal BIOS/Legacy CSM booting.
To extract the contents of the `qcow2` file, decompress it first and convert it into `raw` format.
$ xz -d maemo-leste-1.0-amd64-virtual-20180425.qcow2.xz
$ qemu-img convert -f qcow2 -O raw maemo-leste-1.0-amd64-virtual-20180425.qcow2 maemo-leste-1.0-amd64-virtual-20180425.raw
The raw image that it yields, can then be setup as a loopback device, and its partitions mounted.
# losetup --partscan -f maemo-leste-1.0-amd64-virtual-20180425.raw
# mkdir /mnt/maemo-virt
# mount /dev/loop0p1 /mnt/maemo-virt
Setup one `Linux` partition on the device to be used for booting, format it with a GRUB-compatible filesystem (ext4, for example), then mount it as well.
# cfdisk /dev/sdb
# ...
# mkfs.ext4 /dev/sdb1
# mkdir /mnt/maemo-bare
# mount /dev/sdb1 /mnt/maemo-bare
Change directory to the loop partition, the copy over its contents into the bare metal partition.
# cd /mnt/maemo-virt
# rsync -aAHXv * /mnt/maemo-bare
Once finished copying, bind mount special filesystems into the bare metal Maemo partition, then change root.
# mount --bind /dev /mnt/maemo-bare/dev
# mount --bind /proc /mnt/maemo-bare/proc
# mount --bind /sys /mnt/maemo-bare/sys
# chroot /mnt/maemo-bare /bin/bash
Load the new root's shell profile, install GRUB to the bare metal boot device (/dev/sdb, in this example), then regenerate the GRUB configuration file.
# . /etc/profile
# grub-install /dev/sdb
# grub-mkconfig -o /boot/grub/grub.cfg
After that, you may exit the chroot environment (Ctrl+D), unmount all the filesystems, then reboot the system into your new bare metal Maemo Leste installation.
# umount /mnt/maemo-virt
# umount -AR /mnt/maemo-bare
# reboot
== Initial configuration ==
On the first run you may want to generate ssh host keys and set the timezone. To do so open the "X Terminal" application and run:
sudo su -
dpkg-reconfigure openssh-server
dpkg-reconfigure tzdata
Make the system up-to-date:
apt update
apt upgrade
apt install linux-image-amd64
reboot
To get networking to work (at least in virtualbox), launch a shell and do
sudo ifconfig eth0 up
sudo dhclient eth0
[[Category:Device]]
4bc35179a57f425cb873d10ecf1ee0a1f8453317
422
421
2019-11-09T06:22:53Z
Arvl
25
/* Real hardware */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Generic
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
Generic virtual machine target. This is particularly useful when doing development and testing.
== Installation ==
https://maedevu.maemo.org/images/virtual-machines/
There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration.
Converting the qcow2 image to raw allows it to be used on real hardware.
=== VirtualBox ===
Download latest .vdi.xz image, unpack it with "xz -d" command.
Create new Virtual Machine, select "Debian (64-bit)" and 1024MB RAM. Use the downloaded file as virtual hard disk.
You are done!
=== QEMU ===
In general something like
qemu-system-x86_64 -hda maemo-leste-1.0-amd64.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024
should work. But there seem to be issues with some QEMU versions, for more details see [https://github.com/maemo-leste/bugtracker/issues/198 issue#198].
=== Real hardware ===
The contents of the <code>qcow2</code> file can be extracted and copied into hard drives for bare metal BIOS/Legacy CSM booting.
To extract the contents of the <code>qcow2</code> file, decompress it first and convert it into <code>raw</code> format.
$ xz -d maemo-leste-1.0-amd64-virtual-20180425.qcow2.xz
$ qemu-img convert -f qcow2 -O raw maemo-leste-1.0-amd64-virtual-20180425.qcow2 maemo-leste-1.0-amd64-virtual-20180425.raw
The raw image that it yields, can then be setup as a loopback device, and its partitions mounted.
# losetup --partscan -f maemo-leste-1.0-amd64-virtual-20180425.raw
# mkdir /mnt/maemo-virt
# mount /dev/loop0p1 /mnt/maemo-virt
Setup one <code>Linux</code> partition on the device to be used for booting, format it with a GRUB-compatible filesystem ("ext4", for example), then mount it as well.
# cfdisk /dev/sdb
# ...
# mkfs.ext4 /dev/sdb1
# mkdir /mnt/maemo-bare
# mount /dev/sdb1 /mnt/maemo-bare
Change directory to the loop partition, the copy over its contents into the bare metal partition.
# cd /mnt/maemo-virt
# rsync -aAHXv * /mnt/maemo-bare
Once finished copying, bind mount special filesystems into the bare metal Maemo partition, then change root.
# mount --bind /dev /mnt/maemo-bare/dev
# mount --bind /proc /mnt/maemo-bare/proc
# mount --bind /sys /mnt/maemo-bare/sys
# chroot /mnt/maemo-bare /bin/bash
Load the new root's shell profile, install GRUB to the bare metal boot device ("/dev/sdb", in this example), then regenerate the GRUB configuration file.
# . /etc/profile
# grub-install /dev/sdb
# grub-mkconfig -o /boot/grub/grub.cfg
After that, you may exit the chroot environment (Ctrl+D), unmount all the filesystems, then reboot the system into your new bare metal Maemo Leste installation.
# umount /mnt/maemo-virt
# umount -AR /mnt/maemo-bare
# reboot
== Initial configuration ==
On the first run you may want to generate ssh host keys and set the timezone. To do so open the "X Terminal" application and run:
sudo su -
dpkg-reconfigure openssh-server
dpkg-reconfigure tzdata
Make the system up-to-date:
apt update
apt upgrade
apt install linux-image-amd64
reboot
To get networking to work (at least in virtualbox), launch a shell and do
sudo ifconfig eth0 up
sudo dhclient eth0
[[Category:Device]]
39ce7867aae56f5b6bc715cb813f4e359d5c7151
423
422
2019-11-09T06:29:44Z
Arvl
25
/* Real hardware */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Generic
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
Generic virtual machine target. This is particularly useful when doing development and testing.
== Installation ==
https://maedevu.maemo.org/images/virtual-machines/
There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration.
Converting the qcow2 image to raw allows it to be used on real hardware.
=== VirtualBox ===
Download latest .vdi.xz image, unpack it with "xz -d" command.
Create new Virtual Machine, select "Debian (64-bit)" and 1024MB RAM. Use the downloaded file as virtual hard disk.
You are done!
=== QEMU ===
In general something like
qemu-system-x86_64 -hda maemo-leste-1.0-amd64.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024
should work. But there seem to be issues with some QEMU versions, for more details see [https://github.com/maemo-leste/bugtracker/issues/198 issue#198].
=== Real hardware ===
The contents of the <code>qcow2</code> file can be extracted and copied into hard drives for bare metal BIOS/Legacy CSM booting.
To extract the contents of the <code>qcow2</code> file, decompress it first and convert it into <code>raw</code> format.
$ xz -d maemo-leste-1.0-amd64-virtual-20180425.qcow2.xz
$ qemu-img convert -f qcow2 -O raw maemo-leste-1.0-amd64-virtual-20180425.qcow2 maemo-leste-1.0-amd64-virtual-20180425.raw
The raw image that it yields, can then be setup as a loopback device, and its partitions mounted.
# losetup --partscan -f maemo-leste-1.0-amd64-virtual-20180425.raw
# mkdir /mnt/maemo-virt
# mount /dev/loop0p1 /mnt/maemo-virt
Setup one <code>Linux</code> partition on the device to be used for booting, format it with a GRUB-compatible filesystem (<i>ext4</i>, for example), then mount it as well.
# cfdisk /dev/sdb
# ...
# mkfs.ext4 /dev/sdb1
# mkdir /mnt/maemo-bare
# mount /dev/sdb1 /mnt/maemo-bare
Change directory to the loop partition, the copy over its contents into the bare metal partition.
# cd /mnt/maemo-virt
# rsync -aAHXv * /mnt/maemo-bare
Once finished copying, bind mount special filesystems into the bare metal Maemo partition, then change root.
# mount --bind /dev /mnt/maemo-bare/dev
# mount --bind /proc /mnt/maemo-bare/proc
# mount --bind /sys /mnt/maemo-bare/sys
# chroot /mnt/maemo-bare /bin/bash
Load the new root's shell profile, install GRUB to the bare metal boot device (<i>/dev/sdb</i>, in this example), then regenerate the GRUB configuration file.
# . /etc/profile
# grub-install /dev/sdb
# grub-mkconfig -o /boot/grub/grub.cfg
After that, you may exit the chroot environment (Ctrl+D), unmount all the filesystems, then reboot the system into your new bare metal Maemo Leste installation.
# umount /mnt/maemo-virt
# umount -AR /mnt/maemo-bare
# reboot
== Initial configuration ==
On the first run you may want to generate ssh host keys and set the timezone. To do so open the "X Terminal" application and run:
sudo su -
dpkg-reconfigure openssh-server
dpkg-reconfigure tzdata
Make the system up-to-date:
apt update
apt upgrade
apt install linux-image-amd64
reboot
To get networking to work (at least in virtualbox), launch a shell and do
sudo ifconfig eth0 up
sudo dhclient eth0
[[Category:Device]]
fc72af7260775deae8d3a4e09a79889bbb1bc1e3
IRC channel
0
54
424
134
2019-11-17T20:20:18Z
Sicelo
5
wikitext
text/x-wiki
We are on '''irc.freenode.net''' ; channel '''#maemo-leste'''
You can connect from your browser using the [https://webchat.freenode.net/ webchat]. However, a dedicated IRC client is recommended for long-term use.
8f6ca503b5f967ae376096849ec86f9623acc651
User:Sicelo
2
86
425
2019-11-17T21:38:22Z
Sicelo
5
Created page with "Eswatini ..."
wikitext
text/x-wiki
Eswatini ...
bdc942d9d81c30b124f697f9de356441a0456067
426
425
2019-11-17T21:47:53Z
Sicelo
5
wikitext
text/x-wiki
[[User:Sicelo/Wiki Tests]]
ef949778dc4551e3874b666207e64a8a6622770a
User:Sicelo/Wiki Tests
2
87
427
2019-11-17T22:24:43Z
Sicelo
5
Created page with "__NOTOC__ <div> <h1 style="text-align: center;">Welcome to the Maemo Leste Wiki!</h1> </div>"
wikitext
text/x-wiki
__NOTOC__
<div>
<h1 style="text-align: center;">Welcome to the Maemo Leste Wiki!</h1>
</div>
f9e7299c655787d362492f8ca8802fb6bf828ac7
428
427
2019-11-17T22:51:16Z
Sicelo
5
wikitext
text/x-wiki
__NOTOC__
<h1 style="text-align: center;">Welcome to the Maemo Leste Wiki!</h1>
<p>[https://en.wikipedia.org/wiki/Leste Names of winds]</p>
c8ff6f85f5c3725578614bc74db370a1cab2e78f
431
428
2019-11-18T20:59:52Z
Sicelo
5
wikitext
text/x-wiki
__NOTOC__
<div style="margin:auto;">[[File:Leste-logo.png|x250px]]</div>
<h1 style="text-align: center;">Welcome to the Maemo Leste Wiki!</h1>
<p>[https://en.wikipedia.org/wiki/Leste Names of winds]</p>
09c0777cb8805636e4d309665e82f95212d63637
432
431
2019-11-18T21:54:26Z
Sicelo
5
wikitext
text/x-wiki
__NOTOC__
[[File:Leste-logo.png|250px|frameless|center|bottom|Maemo Leste Logo]]
<h1 style="font-size: 36px; text-align: center; padding: 1.5em; background: #dedede">Welcome to the Maemo Leste Wiki!</h1>
Introduction
*Project Description
- Status (general status)
- Roadmap
*Name -[https://en.wikipedia.org/wiki/Leste Names of winds]
*FAQ
Devices
!Target mainlined devices (limited support for others)
- images
* N900 (status)
* Droid 4 (status)
* etc.
Communications:
*Blog
*IRC
*TMO
*ML
*GH
Contribute
*Development
*Issue Tracker
*Other tasks, e.g. wiki
0bb2542127f3f2936aaa3a091ec4683d605b5ea1
433
432
2019-11-18T21:58:53Z
Sicelo
5
wikitext
text/x-wiki
__NOTOC__
[[File:Leste-logo.png|250px|frameless|center|bottom|Maemo Leste Logo]]
<h1 style="font-size: 36px; text-align: center; padding: 1.5em; background: #dedede">Welcome to the Maemo Leste Wiki!</h1>
Introduction
*Project Description
- Status (general status)
- Roadmap
*Name -[https://en.wikipedia.org/wiki/Leste Names of winds], https://wiki.maemo.org/Codenames
*FAQ
Devices
!Target mainlined devices (limited support for others)
- images
* N900 (status)
* Droid 4 (status)
* etc.
Communications:
*Blog
*IRC
*TMO
*ML
*GH
Contribute
*Development
*Issue Tracker
*Other tasks, e.g. wiki
20f8aa3bb910bb392432b489eb0ce3b86cb66347
434
433
2019-11-18T22:00:21Z
Sicelo
5
wikitext
text/x-wiki
__NOTOC__
[[File:Leste-logo.png|250px|frameless|center|bottom|Maemo Leste Logo]]
<h1 style="font-size: 36px; text-align: center; padding: 1.5em; background: #dedede">Welcome to the Maemo Leste Wiki!</h1>
Introduction
*Project Description
- Status (general status)
- Roadmap
*Name -[https://en.wikipedia.org/wiki/Leste Names of winds], https://wiki.maemo.org/Codenames, https://ggweather.com/winds.html
*FAQ
Devices
!Target mainlined devices (limited support for others)
- images
* N900 (status)
* Droid 4 (status)
* etc.
Communications:
*Blog
*IRC
*TMO
*ML
*GH
Contribute
*Development
*Issue Tracker
*Other tasks, e.g. wiki
a7408b1399279be57ddb820cde1ab95010c64b1e
File:Leste-logo.png
6
88
429
2019-11-18T08:06:07Z
Sicelo
5
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
430
429
2019-11-18T08:09:54Z
Sicelo
5
Sicelo uploaded a new version of [[File:Leste-logo.png]]
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Main Page
0
1
436
367
2019-12-15T16:07:16Z
Sicelo
5
/* Roadmap */
wikitext
text/x-wiki
= Description =
Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more.
You can find us on '''freenode''', channel '''#maemo-leste'''.
For an overview of the current status, you might want to check out: [[Status]]
Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels.
The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers.
For some devices, we have development images available, such as the N900. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software.
Also see our [[Leste_FAQ|FAQ]].
= Supported Devices =
See [[:Category:Device]]
= Development =
See [[Development]]
= Roadmap =
== Project milestones ==
https://leste.maemo.org/index.php?title=Wishlist&action=edit&redlink=1
https://github.com/maemo-leste/bugtracker/milestones
== Wishlist ==
You have an application you want to see in Leste? Please let us know [[Wishlist|here]].
= Links =
<div>
*Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io]
*Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues]
*Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/]
*Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/]
*Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
The central point of meeting and talking is IRC and this thread: https://talk.maemo.org/showthread.php?t=100192.
</div>
*[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)]
0bebaa8ff758f939b250e18c37fff437158b0479
Wishlist
0
89
437
2019-12-15T16:12:54Z
Sicelo
5
Created page with "If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page. We do not promise..."
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
4453bc53be4b21853a7c645b9516d8105193e6f8
438
437
2019-12-21T17:23:40Z
Wizzup
4
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
* osso-notes: a notes application ([[User:Wizzup]])
3fe2a49f4d0830fbf601f3e03335f288abc5d15a
439
438
2019-12-21T21:20:55Z
Sicelo
5
/* Applications */
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
* osso-notes: a notes application ([[User:Wizzup]])
* pinball: any implementation. perhaps https://packages.debian.org/buster/pinball
abc629935ee72da923a2cd57b426bc7b5121f14c
440
439
2019-12-21T21:22:58Z
Sicelo
5
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
* osso-notes: a notes application ([[User:Wizzup]])
* pinball: any implementation. perhaps https://packages.debian.org/buster/pinball or
http://linball.sourceforge.net/
6d888dd57f6f2277e653584bb71ce60ccfc28361
442
440
2019-12-24T18:28:05Z
Wizzup
4
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
* osso-notes: a notes application ([[User:Wizzup]])
* pinball: any implementation. perhaps https://packages.debian.org/buster/pinball or
http://linball.sourceforge.net/
* scummvm: for fun ([[User:Wizzup]]) - http://maemo.org/packages/view/scummvm/
1333efa7d2caef2e312175ab9bce4f29ce9e177b
443
442
2019-12-24T18:46:41Z
Wizzup
4
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
* osso-notes: a notes application ([[User:Wizzup]])
* pinball: any implementation. perhaps https://packages.debian.org/buster/pinball or
http://linball.sourceforge.net/
* scummvm: for fun ([[User:Wizzup]]) - http://maemo.org/packages/view/scummvm/
* brainparty: for fun ([[User:Wizzup]]) - http://maemo.org/downloads/product/Maemo5/brainparty/
02385c37177fadd1b95279aa81bd03f329a02e3e
Games/Brainparty
0
90
444
2019-12-25T08:44:21Z
Wizzup
4
Created page with "http://maemo.org/packages/view/brainparty/ Requires sdlgles from http://git.maemo.org/git/?p=sdlhildon;a=summary Requires brainparty-data from http://maemo.org/packages/view/..."
wikitext
text/x-wiki
http://maemo.org/packages/view/brainparty/
Requires sdlgles from http://git.maemo.org/git/?p=sdlhildon;a=summary
Requires brainparty-data from http://maemo.org/packages/view/brainparty-data
Someone did a harmattan port: https://github.com/harmattan/brainparty/commits/master
This patch will make it at least start, but it might make more sense to look at the harmattan port.
<pre>
From cfd0f4da38f1db8f73114990f206b7585e4af54d Mon Sep 17 00:00:00 2001
From: Merlijn Wajer <merlijn@wizzup.org>
Date: Wed, 25 Dec 2019 09:44:04 +0100
Subject: [PATCH] initial fixes
---
BPList.h | 4 ++--
Makefile | 2 +-
WordList.h | 2 +-
debian/control | 2 +-
4 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/BPList.h b/BPList.h
index 5c986cb..7c47044 100644
--- a/BPList.h
+++ b/BPList.h
@@ -138,7 +138,7 @@ public:
~BPPList();
void Add(T item);
bool Contains(T item);
- void Clear(bool safe_delete);
+ void Clear(bool safe_delete = true);
int IndexOf(T item);
void Insert(int pos, T item);
void Remove(T item);
@@ -171,7 +171,7 @@ bool BPPList<T>::Contains(T item) {
}
template <class T>
-void BPPList<T>::Clear(bool safe_delete = true) {
+void BPPList<T>::Clear(bool safe_delete) {
if (safe_delete) {
for (int i = data.size() - 1; i >= 0; --i) {
T item = data[i];
diff --git a/Makefile b/Makefile
index ae75393..aaaa42e 100644
--- a/Makefile
+++ b/Makefile
@@ -12,7 +12,7 @@ ifeq ($(MACHINE),Darwin)
OSXCOMPAT = SDLMain.m
else
INCLUDES = `sdl-config --cflags` -I/usr/X11R6/include
- LIBS = `sdl-config --libs` -lGLES_CM -lSDL_gles -lSDL_mixer -lSDL_ttf -lSDL_gfx -lSDL_image
+ LIBS = `sdl-config --libs` -lGLESv1_CM -lSDL_gles -lSDL_mixer -lSDL_ttf -lSDL_gfx -lSDL_image
CXXFLAGS = -O2 -c -Wno-deprecated
OSXCOMPAT =
endif
diff --git a/WordList.h b/WordList.h
index 972764f..6b7bbab 100644
--- a/WordList.h
+++ b/WordList.h
@@ -35,7 +35,7 @@ namespace __gnu_cxx
};
}
-typedef hash_set<string, hash<string> > string_hash_set;
+typedef hash_set<string> string_hash_set;
class WordList {
private:
diff --git a/debian/control b/debian/control
index 7d33aed..6e094be 100644
--- a/debian/control
+++ b/debian/control
@@ -2,7 +2,7 @@ Source: brainparty
Section: user/games
Priority: extra
Maintainer: Thomas Perl <thp@thpinfo.com>
-Build-Depends: debhelper (>= 5), libsdl-gles1.2-dev, libsdl-ttf2.0-dev, libsdl-mixeroggwav1.2-dev, libsdl-image1.2-dev, libsdl-gfx1.2-dev, libsdl1.2-dev, libgles1-sgx-img-dev
+Build-Depends: debhelper (>= 5), libsdl-ttf2.0-dev, libsdl-mixeroggwav1.2-dev, libsdl-image1.2-dev, libsdl-gfx1.2-dev, libsdl1.2-dev, libgles1-mesa-dev, libsdl-mixer1.2-dev, libsdl-ttf2.0-dev, libsdl-gfx1.2-dev
Standards-Version: 3.7.2
XSB-Homepage: http://tuxradar.com/brainparty
XSBC-Bugtracker: mailto:thp@thpinfo.com
--
2.23.0
</pre>
956649615ae79b7cb1169f531fe7f025991c3d35
445
444
2019-12-25T08:44:43Z
Wizzup
4
wikitext
text/x-wiki
http://maemo.org/packages/view/brainparty/
Requires sdlgles from http://git.maemo.org/git/?p=sdlhildon;a=summary
Requires brainparty-data from http://maemo.org/packages/view/brainparty-data
Someone did a harmattan port: https://github.com/harmattan/brainparty/commits/master
This patch will make it at least start, but it might make more sense to look at the harmattan port.
https://wizzup.org/leste-brainparty.png
<pre>
From cfd0f4da38f1db8f73114990f206b7585e4af54d Mon Sep 17 00:00:00 2001
From: Merlijn Wajer <merlijn@wizzup.org>
Date: Wed, 25 Dec 2019 09:44:04 +0100
Subject: [PATCH] initial fixes
---
BPList.h | 4 ++--
Makefile | 2 +-
WordList.h | 2 +-
debian/control | 2 +-
4 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/BPList.h b/BPList.h
index 5c986cb..7c47044 100644
--- a/BPList.h
+++ b/BPList.h
@@ -138,7 +138,7 @@ public:
~BPPList();
void Add(T item);
bool Contains(T item);
- void Clear(bool safe_delete);
+ void Clear(bool safe_delete = true);
int IndexOf(T item);
void Insert(int pos, T item);
void Remove(T item);
@@ -171,7 +171,7 @@ bool BPPList<T>::Contains(T item) {
}
template <class T>
-void BPPList<T>::Clear(bool safe_delete = true) {
+void BPPList<T>::Clear(bool safe_delete) {
if (safe_delete) {
for (int i = data.size() - 1; i >= 0; --i) {
T item = data[i];
diff --git a/Makefile b/Makefile
index ae75393..aaaa42e 100644
--- a/Makefile
+++ b/Makefile
@@ -12,7 +12,7 @@ ifeq ($(MACHINE),Darwin)
OSXCOMPAT = SDLMain.m
else
INCLUDES = `sdl-config --cflags` -I/usr/X11R6/include
- LIBS = `sdl-config --libs` -lGLES_CM -lSDL_gles -lSDL_mixer -lSDL_ttf -lSDL_gfx -lSDL_image
+ LIBS = `sdl-config --libs` -lGLESv1_CM -lSDL_gles -lSDL_mixer -lSDL_ttf -lSDL_gfx -lSDL_image
CXXFLAGS = -O2 -c -Wno-deprecated
OSXCOMPAT =
endif
diff --git a/WordList.h b/WordList.h
index 972764f..6b7bbab 100644
--- a/WordList.h
+++ b/WordList.h
@@ -35,7 +35,7 @@ namespace __gnu_cxx
};
}
-typedef hash_set<string, hash<string> > string_hash_set;
+typedef hash_set<string> string_hash_set;
class WordList {
private:
diff --git a/debian/control b/debian/control
index 7d33aed..6e094be 100644
--- a/debian/control
+++ b/debian/control
@@ -2,7 +2,7 @@ Source: brainparty
Section: user/games
Priority: extra
Maintainer: Thomas Perl <thp@thpinfo.com>
-Build-Depends: debhelper (>= 5), libsdl-gles1.2-dev, libsdl-ttf2.0-dev, libsdl-mixeroggwav1.2-dev, libsdl-image1.2-dev, libsdl-gfx1.2-dev, libsdl1.2-dev, libgles1-sgx-img-dev
+Build-Depends: debhelper (>= 5), libsdl-ttf2.0-dev, libsdl-mixeroggwav1.2-dev, libsdl-image1.2-dev, libsdl-gfx1.2-dev, libsdl1.2-dev, libgles1-mesa-dev, libsdl-mixer1.2-dev, libsdl-ttf2.0-dev, libsdl-gfx1.2-dev
Standards-Version: 3.7.2
XSB-Homepage: http://tuxradar.com/brainparty
XSBC-Bugtracker: mailto:thp@thpinfo.com
--
2.23.0
</pre>
1c84c7e57e7556bac81cf3df79a829c8aaf73f65
Wishlist
0
89
446
443
2019-12-25T08:45:19Z
Wizzup
4
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
* osso-notes: a notes application ([[User:Wizzup]])
* pinball: any implementation. perhaps https://packages.debian.org/buster/pinball or
http://linball.sourceforge.net/
* scummvm: for fun ([[User:Wizzup]]) - http://maemo.org/packages/view/scummvm/
* [[Games/Brainparty|brainparty]]: for fun ([[User:Wizzup]]) - http://maemo.org/downloads/product/Maemo5/brainparty/
57ba62cf00f97fafb633b7118add3bb4ea35c7c1
449
446
2019-12-28T12:43:30Z
Maemish
26
/* Applications */
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
* osso-notes: a notes application ([[User:Wizzup]])
* pinball: any implementation. perhaps https://packages.debian.org/buster/pinball or
http://linball.sourceforge.net/
* scummvm: for fun ([[User:Wizzup]]) - http://maemo.org/packages/view/scummvm/
* [[Games/Brainparty|brainparty]]: for fun ([[User:Wizzup]]) - http://maemo.org/downloads/product/Maemo5/brainparty/
* Picodrive: Sega emulator (has also Psycho Pinball installable) (User: Maemish)
* mSoma or Streamtuner internet radio. (User: Maemish)
* PDF reader:
* Calendar app: Fremantle default. (User: Maemish)
* Alarm clock: Fremantle default. (User: Maemish)
* Word processor: Abiword (if LibreOffice Writer is too heavy). (User: Maemish)
* Camera App: BlessN900 (or some other). (User: Maemish)
* Image editor:
* Mail with imap support:
* RSS Feed Reader:
* Browser: Dooble? (User: Maemish)
* Mediaplayer:
5addae81bb76b7dfa65c4021c8987147b1d2100d
450
449
2019-12-28T17:25:42Z
Wasmachineman NL
27
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
* osso-notes: a notes application ([[User:Wizzup]])
* pinball: any implementation. perhaps https://packages.debian.org/buster/pinball or
http://linball.sourceforge.net/
* scummvm: for fun ([[User:Wizzup]]) - http://maemo.org/packages/view/scummvm/
* [[Games/Brainparty|brainparty]]: for fun ([[User:Wizzup]]) - http://maemo.org/downloads/product/Maemo5/brainparty/
* Picodrive: Sega emulator (has also Psycho Pinball installable) (User: Maemish)
* mSoma or Streamtuner internet radio. (User: Maemish)
* PDF reader:
* Calendar app: Fremantle default. (User: Maemish)
* Alarm clock: Fremantle default. (User: Maemish)
* Word processor: Abiword (if LibreOffice Writer is too heavy). (User: Maemish)
* Camera App: BlessN900 (or some other). (User: Maemish)
* Image editor:
* Mail with imap support:
* RSS Feed Reader:
* Browser: Dooble? (User: Maemish)
* Media Player: Rockbox (User:Wasmachineman NL)
1bebd0881ad91a125d1981ecdeee7ad4834ee3d3
451
450
2019-12-28T18:24:51Z
Maemish
26
/* Applications */
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
* osso-notes: a notes application ([[User:Wizzup]])
* pinball: any implementation. perhaps https://packages.debian.org/buster/pinball or
http://linball.sourceforge.net/
* scummvm: for fun ([[User:Wizzup]]) - http://maemo.org/packages/view/scummvm/
* [[Games/Brainparty|brainparty]]: for fun ([[User:Wizzup]]) - http://maemo.org/downloads/product/Maemo5/brainparty/
* Picodrive: Sega emulator (has also Psycho Pinball installable) http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ (User: Maemish)
* Internet radio: mSoma http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ (User: Maemish)
* Cutetube2: http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ (User: Maemish)
* PDF reader:
* Calendar app: Fremantle default. (User: Maemish)
* Alarm clock: Fremantle default. (User: Maemish)
* Word processor: Abiword (if LibreOffice Writer is too heavy). http://maemo.org
/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ (User: Maemish)
* Camera App: BlessN900 http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ (User: Maemish)
* Image editor: Fremantle default image wiever. And something with more tools and options. (User: Maemish)
* Mail with imap support: (User: Maemish)
* RSS Feed Reader: (User: Maemish)
* Simple Brightness Applet: (This is not latest build from extras-devel) http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ (User: Maemish)
* Browser: Dooble? New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ (User: Maemish)
* Mediaplayer: Openmediaplayer http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer
Or SMplayer? http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net/ (User: Maemish)
* Unzip addon for filemanager http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ (User: Maemish)
* D-Theme Simple BlackGreen (One and only.) http://repository.maemo.org/extras
/pool/fremantle/free/d/d-theme-simple-blackgreen/ (User: Maemish)
* Bootscreen: Don't Panic! (Matches with the D-Theme SimpleBlackGreen and helps when a sudden reboot occurs) http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ (User: Maemish)
* MMS: fMMS https://garage.maemo.org/projects/fmms (User: Maemish)
* Dock: http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ (User: Maemish)
* Status bar: Load Applet - CPU and RAM usage, screenshot and screen record. http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ (User: Maemish)
* Hotspot: Either this or something else. This has only wep encryption which should be changed. MobileHotspot http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ (User: Maemish)
84f1e71c20fe3d355b73c93af705bdcfb375c661
452
451
2019-12-28T19:08:37Z
Maemish
26
/* Applications */
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
* osso-notes: a notes application ([[User:Wizzup]])
* pinball: any implementation. perhaps https://packages.debian.org/buster/pinball or
http://linball.sourceforge.net/
* scummvm: for fun ([[User:Wizzup]]) - http://maemo.org/packages/view/scummvm/
* [[Games/Brainparty|brainparty]]: for fun ([[User:Wizzup]]) - http://maemo.org/downloads/product/Maemo5/brainparty/
* Picodrive: Sega emulator (has also Psycho Pinball installable) http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ (User: Maemish)
* Internet radio: mSoma http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ (User: Maemish)
* Cutetube2: http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ (User: Maemish)
* PDF reader:
* Calendar app: Fremantle default. (User: Maemish)
* Alarm clock: Fremantle default. (User: Maemish)
* Word processor: Abiword (if LibreOffice Writer is too heavy). http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ (User: Maemish)
* Camera App: BlessN900 http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ (User: Maemish)
* Image editor: Fremantle default image wiever. And something with more tools and options. (User: Maemish)
* Mail with imap support: (User: Maemish)
* RSS Feed Reader: (User: Maemish)
* Simple Brightness Applet: (This is not latest build from extras-devel) http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ (User: Maemish)
* Browser: Dooble? New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ (User: Maemish)
* Mediaplayer: Openmediaplayer http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer
Or SMplayer? http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net/ (User: Maemish)
* Unzip addon for filemanager http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ (User: Maemish)
* D-Theme Simple BlackGreen (One and only.) http://repository.maemo.org/extras
/pool/fremantle/free/d/d-theme-simple-blackgreen/ (User: Maemish)
* Bootscreen: Don't Panic! (Matches with the D-Theme SimpleBlackGreen and helps when a sudden reboot occurs) http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ (User: Maemish)
* MMS: fMMS https://garage.maemo.org/projects/fmms (User: Maemish)
* Dock: http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ (User: Maemish)
* Status bar: Load Applet - CPU and RAM usage, screenshot and screen record. http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ (User: Maemish)
* Hotspot: Either this or something else. This has only wep encryption which should be changed. MobileHotspot http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ (User: Maemish)
f7fa1f76b18eb7b91b111c01bf7117192a3df9b8
455
452
2019-12-30T07:58:24Z
Wizzup
4
Change some to table layout
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
{| class="wikitable"
! Package name
| Done
! Reason
! User
! URL
! Notes
|-
| osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote
|-
| pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation.
|-
| scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please
|-
| [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ ||
|}
* Picodrive: Sega emulator (has also Psycho Pinball installable) http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ (User: Maemish)
* Internet radio: mSoma http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ (User: Maemish)
* Cutetube2: http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ (User: Maemish)
* PDF reader:
* Calendar app: Fremantle default. (User: Maemish)
* Alarm clock: Fremantle default. (User: Maemish)
* Word processor: Abiword (if LibreOffice Writer is too heavy). http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ (User: Maemish)
* Camera App: BlessN900 http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ (User: Maemish)
* Image editor: Fremantle default image wiever. And something with more tools and options. (User: Maemish)
* Mail with imap support: (User: Maemish)
* RSS Feed Reader: (User: Maemish)
* Simple Brightness Applet: (This is not latest build from extras-devel) http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ (User: Maemish)
* Browser: Dooble? New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ (User: Maemish)
* Mediaplayer: Openmediaplayer http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer
Or SMplayer? http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net/ (User: Maemish)
* Unzip addon for filemanager http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ (User: Maemish)
* D-Theme Simple BlackGreen (One and only.) http://repository.maemo.org/extras
/pool/fremantle/free/d/d-theme-simple-blackgreen/ (User: Maemish)
* Bootscreen: Don't Panic! (Matches with the D-Theme SimpleBlackGreen and helps when a sudden reboot occurs) http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ (User: Maemish)
* MMS: fMMS https://garage.maemo.org/projects/fmms (User: Maemish)
* Dock: http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ (User: Maemish)
* Status bar: Load Applet - CPU and RAM usage, screenshot and screen record. http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ (User: Maemish)
* Hotspot: Either this or something else. This has only wep encryption which should be changed. MobileHotspot http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ (User: Maemish)
e6914d2ec118cd4b949332425b235661ad3e70ec
456
455
2019-12-30T07:59:37Z
Wizzup
4
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
{| class="wikitable"
! Package name
| Done
! Reason
! User
! URL
! Notes
|-
| osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote
|-
| pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation.
|-
| scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please
|-
| [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ ||
|-
| Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || (has also Psycho Pinball installable)
|-
| Internet radio: mSoma || No || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||
|}
* Cutetube2: http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ (User: Maemish)
* PDF reader:
* Calendar app: Fremantle default. (User: Maemish)
* Alarm clock: Fremantle default. (User: Maemish)
* Word processor: Abiword (if LibreOffice Writer is too heavy). http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ (User: Maemish)
* Camera App: BlessN900 http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ (User: Maemish)
* Image editor: Fremantle default image wiever. And something with more tools and options. (User: Maemish)
* Mail with imap support: (User: Maemish)
* RSS Feed Reader: (User: Maemish)
* Simple Brightness Applet: (This is not latest build from extras-devel) http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ (User: Maemish)
* Browser: Dooble? New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ (User: Maemish)
* Mediaplayer: Openmediaplayer http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer
Or SMplayer? http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net/ (User: Maemish)
* Unzip addon for filemanager http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ (User: Maemish)
* D-Theme Simple BlackGreen (One and only.) http://repository.maemo.org/extras
/pool/fremantle/free/d/d-theme-simple-blackgreen/ (User: Maemish)
* Bootscreen: Don't Panic! (Matches with the D-Theme SimpleBlackGreen and helps when a sudden reboot occurs) http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ (User: Maemish)
* MMS: fMMS https://garage.maemo.org/projects/fmms (User: Maemish)
* Dock: http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ (User: Maemish)
* Status bar: Load Applet - CPU and RAM usage, screenshot and screen record. http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ (User: Maemish)
* Hotspot: Either this or something else. This has only wep encryption which should be changed. MobileHotspot http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ (User: Maemish)
e0fc4572337bfcc312f0f3047143bef3a8ca9fcd
457
456
2019-12-30T08:01:34Z
Wizzup
4
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
{| class="wikitable"
! Package name
| Done
! Reason
! User
! URL
! Notes
|-
| osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote
|-
| pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation.
|-
| scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please
|-
| [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ ||
|-
| Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || (has also Psycho Pinball installable)
|-
| Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||
|-
| Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ ||
|-
| PDF reader || No || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || Should not be too hard
|}
* Calendar app: Fremantle default. (User: Maemish)
* Alarm clock: Fremantle default. (User: Maemish)
* Word processor: Abiword (if LibreOffice Writer is too heavy). http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ (User: Maemish)
* Camera App: BlessN900 http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ (User: Maemish)
* Image editor: Fremantle default image wiever. And something with more tools and options. (User: Maemish)
* Mail with imap support: (User: Maemish)
* RSS Feed Reader: (User: Maemish)
* Simple Brightness Applet: (This is not latest build from extras-devel) http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ (User: Maemish)
* Browser: Dooble? New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ (User: Maemish)
* Mediaplayer: Openmediaplayer http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer
Or SMplayer? http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net/ (User: Maemish)
* Unzip addon for filemanager http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ (User: Maemish)
* D-Theme Simple BlackGreen (One and only.) http://repository.maemo.org/extras
/pool/fremantle/free/d/d-theme-simple-blackgreen/ (User: Maemish)
* Bootscreen: Don't Panic! (Matches with the D-Theme SimpleBlackGreen and helps when a sudden reboot occurs) http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ (User: Maemish)
* MMS: fMMS https://garage.maemo.org/projects/fmms (User: Maemish)
* Dock: http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ (User: Maemish)
* Status bar: Load Applet - CPU and RAM usage, screenshot and screen record. http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ (User: Maemish)
* Hotspot: Either this or something else. This has only wep encryption which should be changed. MobileHotspot http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ (User: Maemish)
aa778c942a8c61ed5c0caf507b9bc7a07b05c905
458
457
2019-12-30T08:20:49Z
Wizzup
4
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
{| class="wikitable"
! Package name
| Done
! Reason
! User
! URL
! Notes
|-
| osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote
|-
| pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation.
|-
| scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please
|-
| [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ ||
|-
| Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || (has also Psycho Pinball installable)
|-
| Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||
|-
| Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ ||
|-
| PDF reader || No || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || Should not be too hard
|-
| Calendar app || No || orga || [[User:Maemish]] || wiki.maemo.org/Qalendar || Probably Qalender and not fremantle closed
|}
* Alarm clock: Fremantle default. (User: Maemish)
* Word processor: Abiword (if LibreOffice Writer is too heavy). http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ (User: Maemish)
* Camera App: BlessN900 http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ (User: Maemish)
* Image editor: Fremantle default image wiever. And something with more tools and options. (User: Maemish)
* Mail with imap support: (User: Maemish)
* RSS Feed Reader: (User: Maemish)
* Simple Brightness Applet: (This is not latest build from extras-devel) http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ (User: Maemish)
* Browser: Dooble? New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ (User: Maemish)
* Mediaplayer: Openmediaplayer http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer
Or SMplayer? http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net/ (User: Maemish)
* Unzip addon for filemanager http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ (User: Maemish)
* D-Theme Simple BlackGreen (One and only.) http://repository.maemo.org/extras
/pool/fremantle/free/d/d-theme-simple-blackgreen/ (User: Maemish)
* Bootscreen: Don't Panic! (Matches with the D-Theme SimpleBlackGreen and helps when a sudden reboot occurs) http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ (User: Maemish)
* MMS: fMMS https://garage.maemo.org/projects/fmms (User: Maemish)
* Dock: http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ (User: Maemish)
* Status bar: Load Applet - CPU and RAM usage, screenshot and screen record. http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ (User: Maemish)
* Hotspot: Either this or something else. This has only wep encryption which should be changed. MobileHotspot http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ (User: Maemish)
b9f521ab1ef33a692ebd220530355f1f2ae334bf
459
458
2019-12-30T08:21:08Z
Wizzup
4
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
{| class="wikitable"
! Package name
| Done
! Reason
! User
! URL
! Notes
|-
| osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote
|-
| pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation.
|-
| scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please
|-
| [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ ||
|-
| Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || (has also Psycho Pinball installable)
|-
| Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||
|-
| Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ ||
|-
| PDF reader || No || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || Should not be too hard
|-
| Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalender and not fremantle closed
|}
* Alarm clock: Fremantle default. (User: Maemish)
* Word processor: Abiword (if LibreOffice Writer is too heavy). http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ (User: Maemish)
* Camera App: BlessN900 http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ (User: Maemish)
* Image editor: Fremantle default image wiever. And something with more tools and options. (User: Maemish)
* Mail with imap support: (User: Maemish)
* RSS Feed Reader: (User: Maemish)
* Simple Brightness Applet: (This is not latest build from extras-devel) http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ (User: Maemish)
* Browser: Dooble? New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ (User: Maemish)
* Mediaplayer: Openmediaplayer http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer
Or SMplayer? http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net/ (User: Maemish)
* Unzip addon for filemanager http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ (User: Maemish)
* D-Theme Simple BlackGreen (One and only.) http://repository.maemo.org/extras
/pool/fremantle/free/d/d-theme-simple-blackgreen/ (User: Maemish)
* Bootscreen: Don't Panic! (Matches with the D-Theme SimpleBlackGreen and helps when a sudden reboot occurs) http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ (User: Maemish)
* MMS: fMMS https://garage.maemo.org/projects/fmms (User: Maemish)
* Dock: http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ (User: Maemish)
* Status bar: Load Applet - CPU and RAM usage, screenshot and screen record. http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ (User: Maemish)
* Hotspot: Either this or something else. This has only wep encryption which should be changed. MobileHotspot http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ (User: Maemish)
b5917d2b6ab95f2e32391af3e248a30382bd441e
460
459
2019-12-30T08:21:23Z
Wizzup
4
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
{| class="wikitable"
! Package name
| Done
! Reason
! User
! URL
! Notes
|-
| osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote
|-
| pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation.
|-
| scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please
|-
| [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ ||
|-
| Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || (has also Psycho Pinball installable)
|-
| Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||
|-
| Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ ||
|-
| PDF reader || No || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || Should not be too hard
|-
| Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed
|}
* Alarm clock: Fremantle default. (User: Maemish)
* Word processor: Abiword (if LibreOffice Writer is too heavy). http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ (User: Maemish)
* Camera App: BlessN900 http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ (User: Maemish)
* Image editor: Fremantle default image wiever. And something with more tools and options. (User: Maemish)
* Mail with imap support: (User: Maemish)
* RSS Feed Reader: (User: Maemish)
* Simple Brightness Applet: (This is not latest build from extras-devel) http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ (User: Maemish)
* Browser: Dooble? New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ (User: Maemish)
* Mediaplayer: Openmediaplayer http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer
Or SMplayer? http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net/ (User: Maemish)
* Unzip addon for filemanager http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ (User: Maemish)
* D-Theme Simple BlackGreen (One and only.) http://repository.maemo.org/extras
/pool/fremantle/free/d/d-theme-simple-blackgreen/ (User: Maemish)
* Bootscreen: Don't Panic! (Matches with the D-Theme SimpleBlackGreen and helps when a sudden reboot occurs) http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ (User: Maemish)
* MMS: fMMS https://garage.maemo.org/projects/fmms (User: Maemish)
* Dock: http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ (User: Maemish)
* Status bar: Load Applet - CPU and RAM usage, screenshot and screen record. http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ (User: Maemish)
* Hotspot: Either this or something else. This has only wep encryption which should be changed. MobileHotspot http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ (User: Maemish)
6654fa6b1c23206cf8abc5bedc8f349954fd1221
461
460
2019-12-30T08:21:45Z
Wizzup
4
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
{| class="wikitable"
! Package name
| Done
! Reason
! User
! URL
! Notes
|-
| osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote
|-
| pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation.
|-
| scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please
|-
| [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ ||
|-
| Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || (has also Psycho Pinball installable)
|-
| Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||
|-
| Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ ||
|-
| PDF reader || No || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || Should not be too hard
|-
| Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port.
|}
* Alarm clock: Fremantle default. (User: Maemish)
* Word processor: Abiword (if LibreOffice Writer is too heavy). http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ (User: Maemish)
* Camera App: BlessN900 http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ (User: Maemish)
* Image editor: Fremantle default image wiever. And something with more tools and options. (User: Maemish)
* Mail with imap support: (User: Maemish)
* RSS Feed Reader: (User: Maemish)
* Simple Brightness Applet: (This is not latest build from extras-devel) http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ (User: Maemish)
* Browser: Dooble? New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ (User: Maemish)
* Mediaplayer: Openmediaplayer http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer
Or SMplayer? http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net/ (User: Maemish)
* Unzip addon for filemanager http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ (User: Maemish)
* D-Theme Simple BlackGreen (One and only.) http://repository.maemo.org/extras
/pool/fremantle/free/d/d-theme-simple-blackgreen/ (User: Maemish)
* Bootscreen: Don't Panic! (Matches with the D-Theme SimpleBlackGreen and helps when a sudden reboot occurs) http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ (User: Maemish)
* MMS: fMMS https://garage.maemo.org/projects/fmms (User: Maemish)
* Dock: http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ (User: Maemish)
* Status bar: Load Applet - CPU and RAM usage, screenshot and screen record. http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ (User: Maemish)
* Hotspot: Either this or something else. This has only wep encryption which should be changed. MobileHotspot http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ (User: Maemish)
a56c992f037da21fc26114a6ae9ee8997c9edefd
462
461
2019-12-30T08:26:09Z
Wizzup
4
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
{| class="wikitable"
! Package name
| Done
! Reason
! User
! URL
! Notes
|-
| osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote
|-
| pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation.
|-
| scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please
|-
| [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ ||
|-
| Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || (has also Psycho Pinball installable)
|-
| Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||
|-
| Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ ||
|-
| PDF reader || No || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || Should not be too hard
|-
| Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port.
|-
| Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI
|-
|Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/
|}
* Camera App: BlessN900 http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ (User: Maemish)
* Image editor: Fremantle default image wiever. And something with more tools and options. (User: Maemish)
* Mail with imap support: (User: Maemish)
* RSS Feed Reader: (User: Maemish)
* Simple Brightness Applet: (This is not latest build from extras-devel) http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ (User: Maemish)
* Browser: Dooble? New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ (User: Maemish)
* Mediaplayer: Openmediaplayer http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer
Or SMplayer? http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net/ (User: Maemish)
* Unzip addon for filemanager http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ (User: Maemish)
* D-Theme Simple BlackGreen (One and only.) http://repository.maemo.org/extras
/pool/fremantle/free/d/d-theme-simple-blackgreen/ (User: Maemish)
* Bootscreen: Don't Panic! (Matches with the D-Theme SimpleBlackGreen and helps when a sudden reboot occurs) http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ (User: Maemish)
* MMS: fMMS https://garage.maemo.org/projects/fmms (User: Maemish)
* Dock: http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ (User: Maemish)
* Status bar: Load Applet - CPU and RAM usage, screenshot and screen record. http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ (User: Maemish)
* Hotspot: Either this or something else. This has only wep encryption which should be changed. MobileHotspot http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ (User: Maemish)
de89c0af93f7ffa2dc527a05b59a77ec9464fe1c
463
462
2019-12-30T08:38:38Z
Wizzup
4
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
{| class="wikitable"
! Package name
| Done
! Reason
! User
! URL
! Notes
|-
| osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote
|-
| pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation.
|-
| scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please
|-
| [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ ||
|-
| Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || (has also Psycho Pinball installable)
|-
| Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||
|-
| Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ ||
|-
| PDF reader || No || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || Should not be too hard
|-
| Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port.
|-
| Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI
|-
|Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/
|-
| Simple Brightness Applet || ? || ? || (User: Maemish) http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel
|}
* Camera App: BlessN900 http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ (User: Maemish)
* Image editor: Fremantle default image wiever. And something with more tools and options. (User: Maemish)
* Mail with imap support: (User: Maemish)
* RSS Feed Reader: (User: Maemish)
* Browser: Dooble? New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ (User: Maemish)
* Mediaplayer: Openmediaplayer http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer
Or SMplayer? http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net/ (User: Maemish)
* Unzip addon for filemanager http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ (User: Maemish)
* D-Theme Simple BlackGreen (One and only.) http://repository.maemo.org/extras
/pool/fremantle/free/d/d-theme-simple-blackgreen/ (User: Maemish)
* Bootscreen: Don't Panic! (Matches with the D-Theme SimpleBlackGreen and helps when a sudden reboot occurs) http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ (User: Maemish)
* MMS: fMMS https://garage.maemo.org/projects/fmms (User: Maemish)
* Dock: http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ (User: Maemish)
* Status bar: Load Applet - CPU and RAM usage, screenshot and screen record. http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ (User: Maemish)
* Hotspot: Either this or something else. This has only wep encryption which should be changed. MobileHotspot http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ (User: Maemish)
8c0f3f7c8de6aad0a846a711b83dfde65eadb799
464
463
2019-12-30T08:38:54Z
Wizzup
4
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
{| class="wikitable"
! Package name
| Done
! Reason
! User
! URL
! Notes
|-
| osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote
|-
| pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation.
|-
| scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please
|-
| [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ ||
|-
| Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || (has also Psycho Pinball installable)
|-
| Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||
|-
| Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ ||
|-
| PDF reader || No || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || Should not be too hard
|-
| Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port.
|-
| Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI
|-
|Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/
|-
| Simple Brightness Applet || ? || ? || (User: Maemish) || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel
|}
* Camera App: BlessN900 http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ (User: Maemish)
* Image editor: Fremantle default image wiever. And something with more tools and options. (User: Maemish)
* Mail with imap support: (User: Maemish)
* RSS Feed Reader: (User: Maemish)
* Browser: Dooble? New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ (User: Maemish)
* Mediaplayer: Openmediaplayer http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer
Or SMplayer? http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net/ (User: Maemish)
* Unzip addon for filemanager http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ (User: Maemish)
* D-Theme Simple BlackGreen (One and only.) http://repository.maemo.org/extras
/pool/fremantle/free/d/d-theme-simple-blackgreen/ (User: Maemish)
* Bootscreen: Don't Panic! (Matches with the D-Theme SimpleBlackGreen and helps when a sudden reboot occurs) http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ (User: Maemish)
* MMS: fMMS https://garage.maemo.org/projects/fmms (User: Maemish)
* Dock: http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ (User: Maemish)
* Status bar: Load Applet - CPU and RAM usage, screenshot and screen record. http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ (User: Maemish)
* Hotspot: Either this or something else. This has only wep encryption which should be changed. MobileHotspot http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ (User: Maemish)
b1baf870e894ab7c45b551ddc10d70094f9a2e68
465
464
2019-12-30T08:39:45Z
Wizzup
4
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
{| class="wikitable"
! Package name
| Done
! Reason
! User
! URL
! Notes
|-
| osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote
|-
| pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation.
|-
| scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please
|-
| [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ ||
|-
| Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || (has also Psycho Pinball installable)
|-
| Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||
|-
| Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ ||
|-
| PDF reader || No || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || Should not be too hard
|-
| Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port.
|-
| Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI
|-
|Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/
|-
| Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || (User: Maemish) || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel
|}
* Camera App: BlessN900 http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ (User: Maemish)
* Image editor: Fremantle default image wiever. And something with more tools and options. (User: Maemish)
* Mail with imap support: (User: Maemish)
* RSS Feed Reader: (User: Maemish)
* Browser: Dooble? New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ (User: Maemish)
* Mediaplayer: Openmediaplayer http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer
Or SMplayer? http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net/ (User: Maemish)
* Unzip addon for filemanager http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ (User: Maemish)
* D-Theme Simple BlackGreen (One and only.) http://repository.maemo.org/extras
/pool/fremantle/free/d/d-theme-simple-blackgreen/ (User: Maemish)
* Bootscreen: Don't Panic! (Matches with the D-Theme SimpleBlackGreen and helps when a sudden reboot occurs) http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ (User: Maemish)
* MMS: fMMS https://garage.maemo.org/projects/fmms (User: Maemish)
* Dock: http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ (User: Maemish)
* Status bar: Load Applet - CPU and RAM usage, screenshot and screen record. http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ (User: Maemish)
* Hotspot: Either this or something else. This has only wep encryption which should be changed. MobileHotspot http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ (User: Maemish)
82fd6a9aaede0aaa815366c01e807f79ade9e843
466
465
2019-12-30T08:51:40Z
Wizzup
4
/* Applications */
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
{| class="wikitable"
! Package name
! Done
! Reason
! User
! URL
! Notes
|-
| osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote
|-
| pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation.
|-
| scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please
|-
| [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ ||
|-
| Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || (has also Psycho Pinball installable)
|-
| Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||
|-
| Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ ||
|-
| PDF reader || No || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || Should not be too hard
|-
| Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port.
|-
| Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI
|-
|Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/
|-
| Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || (User: Maemish) || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel
|}
* Camera App: BlessN900 http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ (User: Maemish)
* Image editor: Fremantle default image wiever. And something with more tools and options. (User: Maemish)
* Mail with imap support: (User: Maemish)
* RSS Feed Reader: (User: Maemish)
* Browser: Dooble? New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ (User: Maemish)
* Mediaplayer: Openmediaplayer http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer
Or SMplayer? http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net/ (User: Maemish)
* Unzip addon for filemanager http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ (User: Maemish)
* D-Theme Simple BlackGreen (One and only.) http://repository.maemo.org/extras
/pool/fremantle/free/d/d-theme-simple-blackgreen/ (User: Maemish)
* Bootscreen: Don't Panic! (Matches with the D-Theme SimpleBlackGreen and helps when a sudden reboot occurs) http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ (User: Maemish)
* MMS: fMMS https://garage.maemo.org/projects/fmms (User: Maemish)
* Dock: http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ (User: Maemish)
* Status bar: Load Applet - CPU and RAM usage, screenshot and screen record. http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ (User: Maemish)
* Hotspot: Either this or something else. This has only wep encryption which should be changed. MobileHotspot http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ (User: Maemish)
f14b8088d902e0ae9028f09d2daad1d4e113e531
467
466
2019-12-30T08:55:42Z
Wizzup
4
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
{| class="wikitable"
! Package name
! Done
! Reason
! User
! URL
! Notes
|-
| osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote
|-
| pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation.
|-
| scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please
|-
| [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ ||
|-
| Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || (has also Psycho Pinball installable)
|-
| Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||
|-
| Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ ||
|-
| PDF reader || No || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || Should not be too hard
|-
| Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port.
|-
| Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI
|-
|Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/
|-
| Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel
|-
|Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0
|}
* Camera App: BlessN900 http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ (User: Maemish)
* Image editor: Fremantle default image wiever. And something with more tools and options. (User: Maemish)
* Mail with imap support: (User: Maemish)
* RSS Feed Reader: (User: Maemish)
* Browser: Dooble? New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ (User: Maemish)
* Mediaplayer: Openmediaplayer http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer
Or SMplayer? http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net/ (User: Maemish)
* Unzip addon for filemanager http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ (User: Maemish)
* D-Theme Simple BlackGreen (One and only.) http://repository.maemo.org/extras
/pool/fremantle/free/d/d-theme-simple-blackgreen/ (User: Maemish)
* Bootscreen: Don't Panic! (Matches with the D-Theme SimpleBlackGreen and helps when a sudden reboot occurs) http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ (User: Maemish)
* MMS: fMMS https://garage.maemo.org/projects/fmms (User: Maemish)
* Dock: http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ (User: Maemish)
* Hotspot: Either this or something else. This has only wep encryption which should be changed. MobileHotspot http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ (User: Maemish)
2ddf802b96198c262eb2b8b32c107de6db60143c
468
467
2019-12-30T11:39:38Z
Maemish
26
/* Applications */
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
{| class="wikitable"
! Package name
! Done
! Reason
! User
! URL
! Notes
|-
| osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote
|-
| pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation.
|-
| scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please
|-
| [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ ||
|-
| Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || (has also Psycho Pinball installable)
|-
| Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||
|-
| Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ ||
|-
| PDF reader || No || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || Should not be too hard
|-
| Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port.
|-
| Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI
|-
|Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/
|-
| Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel
|-
|Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0
|-
| Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ || Needs to be ported to gst1.0
|}
* Image editor: Fremantle default image wiever. And something with more tools and options. (User: Maemish)
* Mail with imap support: (User: Maemish)
* RSS Feed Reader: (User: Maemish)
* Browser: Dooble? New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ (User: Maemish)
* Mediaplayer: Openmediaplayer http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer
Or SMplayer? http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net/ (User: Maemish)
* Unzip addon for filemanager http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ (User: Maemish)
* D-Theme Simple BlackGreen (One and only.) http://repository.maemo.org/extras
/pool/fremantle/free/d/d-theme-simple-blackgreen/ (User: Maemish)
* Bootscreen: Don't Panic! (Matches with the D-Theme SimpleBlackGreen and helps when a sudden reboot occurs) http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ (User: Maemish)
* MMS: fMMS https://garage.maemo.org/projects/fmms (User: Maemish)
* Dock: http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ (User: Maemish)
* Hotspot: Either this or something else. This has only wep encryption which should be changed. MobileHotspot http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ (User: Maemish)
89b53fd6a0745cc8dd7f8ebcb205ab5cbddb31e6
469
468
2019-12-30T12:09:06Z
Maemish
26
/* Applications */
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
{| class="wikitable"
! Package name
! Done
! Reason
! User
! URL
! Notes
|-
| osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote
|-
| pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation.
|-
| scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please
|-
| [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ ||
|-
| Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || (has also Psycho Pinball installable)
|-
| Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||
|-
| Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ ||
|-
| PDF reader || No || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || Should not be too hard
|-
| Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port.
|-
| Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI
|-
|Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/
|-
| Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel
|-
|Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0
|-
| Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ ||
|-
| Image wiever/editor: || No || || [[User:Maemish]] || ||
|-
| Mail with imap support || No || || [[User:Maemish]] || ||
|-
| RSS Feed Reader: Who knows a good one? || No || || [[User:Maemish]] || ||
|-
| Browser:Dooble? || No || || [[User:Maemish]] New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ || ||
|-
| Mediaplayer: Openmediaplayer || ? || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer || [[User:Maemish]] || ||
|-
| Mediaplayer: SMPlayer || No || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.nethttp://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net/|| [[User:Maemish]] || ||
|-
| Unzip addon for filemanager || No || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ || [[User:Maemish]] || ||
|-
| D-Theme SimpleBlackGreen || No || http://repository.maemo.org/extras
/pool/fremantle/free/d/d-theme-simple-blackgreen/ || [[User:Maemish]] || ||
|-
| Bootscreen: Don't Panic! || No || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ || [[User:Maemish]] || ||
|-
| MMS: fMMS || No || https://garage.maemo.org/projects/fmms || [[User:Maemish]] || ||
|-
| Homescreen Dockbar Widget|| No || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ || [[User:Maemish]] || ||
|-
| Hotspot: MobileHotspot || No. || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || [[User:Maemish]] || Either this or something else. This has only wep encryption which should be changed. ||
|-
| || No || || [[User:]] || ||
|-
| || No || || [[User:]] || ||
|)
2a0a9dfb2fcd0074ed52bc975f1705083a1f1146
470
469
2019-12-30T12:22:24Z
Maemish
26
/* Applications */
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
{| class="wikitable"
! Package name
! Done
! Reason
! User
! URL
! Notes
|-
| osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote
|-
| pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation.
|-
| scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please
|-
| [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ ||
|-
| Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || (has also Psycho Pinball installable)
|-
| Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||
|-
| Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ ||
|-
| PDF reader || No || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || Should not be too hard
|-
| Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port.
|-
| Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI
|-
|Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/
|-
| Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel
|-
|Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0
|-
| Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ ||
|-
| Image wiever/editor: || No || || [[User:Maemish]] || ||
|-
| Mail with imap support || No || || [[User:Maemish]] || ||
|-
| RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || ||
|-
| Dooble || No ||Browser || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ ||
|-
| OMP Openmediaplayer || ? || Media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer ||
|-
| SMPlayer || No || Media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.nethttp://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net/ ||
|-
| Unzip addon for filemanager || No || Utility || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ ||
|-
| D-Theme SimpleBlackGreen || No || Fashion || [[User:Maemish]] || http://repository.maemo.org/extras
/pool/fremantle/free/d/d-theme-simple-blackgreen/ ||
|-
| Bootscreen: Don't Panic! || No || Fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ ||
|-
| MMS: fMMS || No || Media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms ||
|-
| Homescreen Dockbar Widget|| No || Fashion/Utility || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ ||
|-
| Hotspot: MobileHotspot || No. || Utility || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed.
|-
| || No || || [[User:]] || ||
|-
| || No || || [[User:]] || ||
|)
b2f956419b6cf2dda51cee9c9f06e1de86830fa7
471
470
2019-12-30T12:28:27Z
Maemish
26
/* Applications */
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
{| class="wikitable"
! Package name
! Done
! Reason
! User
! URL
! Notes
|-
| osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote
|-
| pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation.
|-
| scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please
|-
| [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ ||
|-
| Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || (has also Psycho Pinball installable)
|-
| Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||
|-
| Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ ||
|-
| PDF reader || No || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || Should not be too hard
|-
| Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port.
|-
| Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI
|-
|Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/
|-
| Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel
|-
|Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0
|-
| Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ ||
|-
| Image wiever/editor || No || || [[User:Maemish]] || ||
|-
| Mail with imap support || No || || [[User:Maemish]] || ||
|-
| RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || ||
|-
| Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ ||
|-
| OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer ||
|-
| SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net ||
|-
| Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ ||
|-
| D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras
/pool/fremantle/free/d/d-theme-simple-blackgreen/ ||
|-
| Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ ||
|-
| MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms ||
|-
| Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ ||
|-
| Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed.
|-
| || No || || [[User:]] || ||
|-
| || No || || [[User:]] || ||
|)
a5bac63f52e37b95b4109aa2701f6256165e9582
472
471
2019-12-30T12:42:43Z
Maemish
26
/* Applications */
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
{| class="wikitable"
! Package name
! Done
! Reason
! User
! URL
! Notes
|-
| osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote
|-
| pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation.
|-
| scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please
|-
| [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ ||
|-
| Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || (has also Psycho Pinball installable)
|-
| Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||
|-
| Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ ||
|-
| PDF reader || No || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || Should not be too hard
|-
| Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port.
|-
| Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI
|-
| Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/
|-
| Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel
|-
|Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0
|-
| Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ ||
|-
| Image wiever/editor || No || || [[User:Maemish]] || ||
|-
| Mail with imap support || No || || [[User:Maemish]] || ||
|-
| RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || ||
|-
| Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ ||
|-
| OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer ||
|-
| SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net ||
|-
| Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ ||
|-
| D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ ||
|-
| Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ ||
|-
| MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms ||
|-
| Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ ||
|-
| Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed.
|-
| || No || || [[User:]] || ||
|-
| || No || || [[User:]] || ||
|)
2677835085b9d5bf7ab24d4b5812db0c43fd57ec
473
472
2019-12-30T18:53:21Z
Maemish
26
/* Applications */
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
{| class="wikitable"
! Package name
! Done
! Reason
! User
! URL
! Notes
|-
| osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote
|-
| pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation.
|-
| scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please
|-
| [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ ||
|-
| Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || (has also Psycho Pinball installable)
|-
| Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||
|-
| Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ ||
|-
| PDF reader || No || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || Should not be too hard
|-
| Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port.
|-
| Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI
|-
| Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/
|-
| Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel
|-
|Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0
|-
| Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ ||
|-
| Image wiever/editor || No || || [[User:Maemish]] || ||
|-
| Mail with imap support || No || || [[User:Maemish]] || ||
|-
| RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || ||
|-
| Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ ||
|-
| OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer ||
|-
| SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net ||
|-
| Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ ||
|-
| D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ ||
|-
| Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ ||
|-
| MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms ||
|-
| Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ ||
|-
| Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed.
|-
| Firewall || No || || [[User:Maemish]] || || Something with easy configuration.
|-
| Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ ||
|-
| || No || || [[User:]] || ||
|-
| || No || || [[User:]] || ||
|)
2c03076211944fa769dfb4dc061e15dde76a317b
474
473
2019-12-30T18:55:17Z
Sicelo
5
/* Applications */
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
{| class="wikitable"
! Package name
! Done
! Reason
! User
! URL
! Notes
|-
| osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote
|-
| pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation.
|-
| scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please
|-
| [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ ||
|-
| Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || (has also Psycho Pinball installable)
|-
| Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||
|-
| Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend
|-
| PDF reader || No || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || Should not be too hard
|-
| Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port.
|-
| Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI
|-
| Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/
|-
| Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel
|-
|Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0
|-
| Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ ||
|-
| Image viewer/editor || No || || [[User:Maemish]] || ||
|-
| Mail with imap support || No || || [[User:Maemish]] || ||
|-
| RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || ||
|-
| Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ ||
|-
| OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer ||
|-
| SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net ||
|-
| Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ ||
|-
| D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ ||
|-
| Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ ||
|-
| MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms ||
|-
| Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ ||
|-
| Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed.
|-
| Firewall || No || || [[User:Maemish]] || || Something with easy configuration.
|-
| Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ ||
|-
| || No || || [[User:]] || ||
|-
| || No || || [[User:]] || ||
|)
cc7cd5caede028b0402e10841c0cc3db09878e85
475
474
2019-12-31T08:24:03Z
Maemish
26
/* Applications */
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
{| class="wikitable"
! Package name
! Done
! Reason
! User
! URL
! Notes
|-
| osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote
|-
| pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation.
|-
| scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please
|-
| [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ ||
|-
| Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || (has also Psycho Pinball installable)
|-
| Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||
|-
| Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend
|-
| PDF reader || No || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || Should not be too hard
|-
| Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port.
|-
| Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI
|-
| Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/
|-
| Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel
|-
|Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0
|-
| Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ ||
|-
| Image viewer/editor || No || || [[User:Maemish]] || ||
|-
| Mail with imap support || No || || [[User:Maemish]] || ||
|-
| RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || ||
|-
| Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ ||
|-
| OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer ||
|-
| SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net ||
|-
| Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ ||
|-
| D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ ||
|-
| Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ ||
|-
| MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms ||
|-
| Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ ||
|-
| Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed.
|-
| Firewall || No || || [[User:Maemish]] || || Something with easy configuration.
|-
| Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ ||
|-
|bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ ||
|-
| || No || || [[User:]] || ||
|-|-
| || No || || [[User:]] || ||
|-|-
| || No || || [[User:]] || ||
|-
| || No || || [[User:]] || ||
|)
d03537d868649304cd9aea681f8cce05e7c914e2
476
475
2019-12-31T08:27:00Z
Maemish
26
/* Applications */
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
{| class="wikitable"
! Package name
! Done
! Reason
! User
! URL
! Notes
|-
| osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote
|-
| pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation.
|-
| scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please
|-
| [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ ||
|-
| Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || (has also Psycho Pinball installable)
|-
| Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||
|-
| Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend
|-
| PDF reader || No || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || Should not be too hard
|-
| Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port.
|-
| Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI
|-
| Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/
|-
| Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel
|-
|Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0
|-
| Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ ||
|-
| Image viewer/editor || No || || [[User:Maemish]] || ||
|-
| Mail with imap support || No || || [[User:Maemish]] || ||
|-
| RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || ||
|-
| Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ ||
|-
| OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer ||
|-
| SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net ||
|-
| Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ ||
|-
| D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ ||
|-
| Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ ||
|-
| MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms ||
|-
| Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ ||
|-
| Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed.
|-
| Firewall || No || || [[User:Maemish]] || || Something with easy configuration.
|-
| Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ ||
|-
|bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ ||
|-
| cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ ||
|-|-
| || No || || [[User:]] || ||
|-|-
| || No || || [[User:]] || ||
|-
| || No || || [[User:]] || ||
|)
10394dd927f379feba69a55d3fdbc2f5160b5c37
477
476
2019-12-31T20:08:32Z
Ric9k
28
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
{| class="wikitable"
! Package name
! Done
! Reason
! User
! URL
! Notes
|-
| osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote
|-
| pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation.
|-
| scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please
|-
| [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ ||
|-
| Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || (has also Psycho Pinball installable)
|-
| Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||
|-
| Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend
|-
| PDF reader || No || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || Should not be too hard
|-
| Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port.
|-
| Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI
|-
| Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/
|-
| Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel
|-
|Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0
|-
| Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ ||
|-
| Image viewer/editor || No || || [[User:Maemish]] || ||
|-
| Mail with imap support || No || || [[User:Maemish]] || ||
|-
| RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || ||
|-
| Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ ||
|-
| OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer ||
|-
| SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net ||
|-
| Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ ||
|-
| D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ ||
|-
| Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ ||
|-
| MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms ||
|-
| Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ ||
|-
| Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed.
|-
| Firewall || No || || [[User:Maemish]] || || Something with easy configuration.
|-
| Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ ||
|-
|bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ ||
|-
| cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ ||
|-
| gnumeric || No || || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ ||
|-|-
| || No || || [[User:]] || ||
|-|-
| || No || || [[User:]] || ||
|-
| || No || || [[User:]] || ||
|)
746545525957cea19054c4533b25c7d6ac0678e0
478
477
2019-12-31T20:09:01Z
Ric9k
28
/* Applications */
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
{| class="wikitable"
! Package name
! Done
! Reason
! User
! URL
! Notes
|-
| osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote
|-
| pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation.
|-
| scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please
|-
| [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ ||
|-
| Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || (has also Psycho Pinball installable)
|-
| Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||
|-
| Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend
|-
| PDF reader || No || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || Should not be too hard
|-
| Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port.
|-
| Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI
|-
| Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/
|-
| Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel
|-
|Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0
|-
| Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ ||
|-
| Image viewer/editor || No || || [[User:Maemish]] || ||
|-
| Mail with imap support || No || || [[User:Maemish]] || ||
|-
| RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || ||
|-
| Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ ||
|-
| OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer ||
|-
| SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net ||
|-
| Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ ||
|-
| D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ ||
|-
| Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ ||
|-
| MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms ||
|-
| Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ ||
|-
| Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed.
|-
| Firewall || No || || [[User:Maemish]] || || Something with easy configuration.
|-
| Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ ||
|-
|bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ ||
|-
| cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ ||
|-
| gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ ||
|-|-
| || No || || [[User:]] || ||
|-|-
| || No || || [[User:]] || ||
|-
| || No || || [[User:]] || ||
|)
719374ff0051a1ff9cad214f1f4cac7cd97fff4c
479
478
2019-12-31T20:18:31Z
Ric9k
28
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
{| class="wikitable"
! Package name
! Done
! Reason
! User
! URL
! Notes
|-
| osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote
|-
| pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation.
|-
| scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please
|-
| [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ ||
|-
| Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || (has also Psycho Pinball installable)
|-
| Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||
|-
| Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend
|-
| PDF reader || No || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || Should not be too hard
|-
| Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port.
|-
| Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI
|-
| Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/
|-
| Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel
|-
|Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0
|-
| Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ ||
|-
| Image viewer/editor || No || || [[User:Maemish]] || ||
|-
| Mail with imap support || No || || [[User:Maemish]] || ||
|-
| RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || ||
|-
| Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ ||
|-
| OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer ||
|-
| SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net ||
|-
| Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ ||
|-
| D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ ||
|-
| Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ ||
|-
| MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms ||
|-
| Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ ||
|-
| Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed.
|-
| Firewall || No || || [[User:Maemish]] || || Something with easy configuration.
|-
| Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ ||
|-
|bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ ||
|-
| cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ ||
|-
| gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ ||
|-|-
| hamsterfiler || No || utilities/files || [[User:ric9k]] || http://maemo.org/packages/view/hamsterfiler/ ||
|-|-
| alarmed (or cron?) || No || utilities || [[User:ric9k]] || http://maemo.org/packages/view/alarmed/ ||
|-|-
| user friendly tracker || No || utilities? || [[User:ric9k]] || n/a :-) ||
|-|-
| || No || || [[User:]] || ||
|-
| || No || || [[User:]] || ||
|)
378286769c35ebe6fcff23befa64030bfef4d021
480
479
2020-01-01T12:07:41Z
Sicelo
5
/* Applications */
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
{| class="wikitable"
! Package name
! Done
! Reason
! User
! URL
! Notes
|-
| osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote
|-
| pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation.
|-
| scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please
|-
| [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ ||
|-
| Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || (has also Psycho Pinball installable)
|-
| Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||
|-
| Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend
|-
| PDF reader || No || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || Should not be too hard
|-
| Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port.
|-
| Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI
|-
| Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/
|-
| Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel
|-
|Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0
|-
| Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ ||
|-
| Image viewer/editor || No || || [[User:Maemish]] || ||
|-
| Mail with imap support || No || || [[User:Maemish]] || ||
|-
| RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || ||
|-
| Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ ||
|-
| OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer ||
|-
| SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net ||
|-
| Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ ||
|-
| D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ ||
|-
| Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ ||
|-
| MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms ||
|-
| Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ ||
|-
| Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed.
|-
| Firewall || No || || [[User:Maemish]] || || Something with easy configuration.
|-
| Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ ||
|-
|bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ ||
|-
| cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ ||
|-
| gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ ||
|-|-
| hamsterfiler || No || utilities/files || [[User:ric9k]] || http://maemo.org/packages/view/hamsterfiler/ ||
|-|-
| alarmed (or cron?) || No || utilities || [[User:ric9k]] || http://maemo.org/packages/view/alarmed/ ||
|-|-
| user friendly tracker || No || utilities? || [[User:ric9k]] || n/a :-) ||
|-|-
| Maps (offline) || No || Navigation || [[User:Sicelo]] || || Ideally something like https://f-droid.org/en/packages/com.github.axet.maps/ from Android, but Modrana, https://github.com/M4rtinK/modrana may be easier as a start
|-
| || No || || [[User:]] || ||
|-
| || No || || [[User:]] || ||
|)
5991711893d0accacbf6b780df4eb51b41b5e95d
Games
0
91
447
2019-12-25T10:42:12Z
Wizzup
4
Created page with "List of games: * [[Games/Brainparty|Brainparty]]"
wikitext
text/x-wiki
List of games:
* [[Games/Brainparty|Brainparty]]
01c308f317116b93f23af03eaa87061c2be0038b
Games/Brainparty
0
90
448
445
2019-12-25T13:55:24Z
Wizzup
4
wikitext
text/x-wiki
https://www.youtube.com/watch?v=IlweegA2ORQ
http://maemo.org/packages/view/brainparty/
Requires sdlgles from http://git.maemo.org/git/?p=sdlhildon;a=summary
Requires brainparty-data from http://maemo.org/packages/view/brainparty-data
Someone did a harmattan port: https://github.com/harmattan/brainparty/commits/master
This patch will make it at least start, but it might make more sense to look at the harmattan port.
https://wizzup.org/leste-brainparty.png
<pre>
From cfd0f4da38f1db8f73114990f206b7585e4af54d Mon Sep 17 00:00:00 2001
From: Merlijn Wajer <merlijn@wizzup.org>
Date: Wed, 25 Dec 2019 09:44:04 +0100
Subject: [PATCH] initial fixes
---
BPList.h | 4 ++--
Makefile | 2 +-
WordList.h | 2 +-
debian/control | 2 +-
4 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/BPList.h b/BPList.h
index 5c986cb..7c47044 100644
--- a/BPList.h
+++ b/BPList.h
@@ -138,7 +138,7 @@ public:
~BPPList();
void Add(T item);
bool Contains(T item);
- void Clear(bool safe_delete);
+ void Clear(bool safe_delete = true);
int IndexOf(T item);
void Insert(int pos, T item);
void Remove(T item);
@@ -171,7 +171,7 @@ bool BPPList<T>::Contains(T item) {
}
template <class T>
-void BPPList<T>::Clear(bool safe_delete = true) {
+void BPPList<T>::Clear(bool safe_delete) {
if (safe_delete) {
for (int i = data.size() - 1; i >= 0; --i) {
T item = data[i];
diff --git a/Makefile b/Makefile
index ae75393..aaaa42e 100644
--- a/Makefile
+++ b/Makefile
@@ -12,7 +12,7 @@ ifeq ($(MACHINE),Darwin)
OSXCOMPAT = SDLMain.m
else
INCLUDES = `sdl-config --cflags` -I/usr/X11R6/include
- LIBS = `sdl-config --libs` -lGLES_CM -lSDL_gles -lSDL_mixer -lSDL_ttf -lSDL_gfx -lSDL_image
+ LIBS = `sdl-config --libs` -lGLESv1_CM -lSDL_gles -lSDL_mixer -lSDL_ttf -lSDL_gfx -lSDL_image
CXXFLAGS = -O2 -c -Wno-deprecated
OSXCOMPAT =
endif
diff --git a/WordList.h b/WordList.h
index 972764f..6b7bbab 100644
--- a/WordList.h
+++ b/WordList.h
@@ -35,7 +35,7 @@ namespace __gnu_cxx
};
}
-typedef hash_set<string, hash<string> > string_hash_set;
+typedef hash_set<string> string_hash_set;
class WordList {
private:
diff --git a/debian/control b/debian/control
index 7d33aed..6e094be 100644
--- a/debian/control
+++ b/debian/control
@@ -2,7 +2,7 @@ Source: brainparty
Section: user/games
Priority: extra
Maintainer: Thomas Perl <thp@thpinfo.com>
-Build-Depends: debhelper (>= 5), libsdl-gles1.2-dev, libsdl-ttf2.0-dev, libsdl-mixeroggwav1.2-dev, libsdl-image1.2-dev, libsdl-gfx1.2-dev, libsdl1.2-dev, libgles1-sgx-img-dev
+Build-Depends: debhelper (>= 5), libsdl-ttf2.0-dev, libsdl-mixeroggwav1.2-dev, libsdl-image1.2-dev, libsdl-gfx1.2-dev, libsdl1.2-dev, libgles1-mesa-dev, libsdl-mixer1.2-dev, libsdl-ttf2.0-dev, libsdl-gfx1.2-dev
Standards-Version: 3.7.2
XSB-Homepage: http://tuxradar.com/brainparty
XSBC-Bugtracker: mailto:thp@thpinfo.com
--
2.23.0
</pre>
afe129ce7256bdb05d2723712b6ba7d731ae91d2
Development
0
61
453
381
2019-12-30T07:50:48Z
Wizzup
4
wikitext
text/x-wiki
Maemo Leste development is split up in a few different places.
== Communication and organising ==
* Our https://maemo-leste.github.io website is where we post (news) updates, as well as on talk.maemo.org (see this subforum https://talk.maemo.org/forumdisplay.php?f=66 and this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192)
* There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker
* The day-to-day development and user chatter mostly takes place in the [[IRC channel]]
* We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
* This wiki: for documenting the status of various long-running projects, status per device, etc.
== Codename ==
* Maemo Leste is currently based on Devuan Ascii, which is based on Debian Stretch.
* Maemo Leste will be rebased (in the near future) to Devuan Beowulf, which is based on Debian Buster.
== Guides ==
* [[Development/Porting Packages]]
* [[Development/Building Packages]]
* [[Development/Modified Software]]
* [[Development/Device Bringup]]
== Technical ==
All our git repositories can be found here: https://github.com/maemo-leste
=== Jenkins ===
To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/
=== Developing on a device ===
Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM)
The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]].
=== Multiarch ===
Multiarch is an ability present on modern Debian systems that allows you to develop for Maemo Leste using your PC/Mac/Notebook etc.
Here we show how you can easily setup a multiarch environment and build some packages on a Debian system.
This can be adapted to develop on other systems as well. If you have such experience, please feel free to expand this section to help more people be involved in Maemo Leste development.
# Make a container for our development system
DIR=/var/lib/container/stretch
sudo apt-get install qemu-user-static debootstrap &&
sudo debootstrap stretch $DIR http://deb.debian.org/debian &&
echo "strech_cross" | sudo tee $DIR/etc/debian_chroot &&
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR
# Setup build environment inside the container
cat >> ~/.bashrc << EOF &&
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
export CC=arm-linux-gnueabihf-gcc
EOF
dpkg --add-architecture armhf &&
apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates &&
cat >> /etc/apt/sources.list << "EOF" &&
deb http://maedevu.maemo.org/leste leste main contrib non-free n900
deb http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900
deb-src http://deb.debian.org/debian stretch main
deb-src http://maedevu.maemo.org/leste leste main contrib non-free n900
deb-src http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900
EOF
wget https://maedevu.maemo.org/testing-key.asc &&
apt-key add testing-key.asc &&
rm -f testing-key.asc &&
rm -f /var/cache/apt/archives/*.deb &&
apt-get update &&
exec bash
# Build Xorg for Nokia N900
apt-get source xserver-xorg-core &&
cd xorg-server-1.19.2 &&
wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch &&
mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches &&
echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series &&
apt-get -y build-dep -a armhf . &&
time dpkg-buildpackage -aarmhf -j4 -b &&
echo OK || echo FAIL
To login the container later, issue the command:
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch
If you wish to remove the container, just delete the directory we created:
sudo rm -fr /var/lib/container/stretch
=== Cross-distro solution for development inside an ARM/ARM64 chroot on a PC ===
It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices.
1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]:
$ sudo apt-get install qemu-user-static binfmt-support
The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''':
$ sudo update-binfmts --display qemu-arm
qemu-arm (enabled):
package = qemu-user-static
type = magic
offset = 0
magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00
mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff
interpreter = /usr/bin/qemu-arm-static
detector =
2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it:
$ mkdir leste-arm64
$ cd leste-arm64
$ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf -
3. From the same directory, configure the chroot with a few resources from your host system:
$ sudo mount -t proc proc proc
$ sudo mount -o bind /dev dev
$ sudo mount -o bind /dev/pts dev/pts
4. From the same directory, create a symlink for the mount table:
$ sudo ln -s /proc/mounts etc/mtab
5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user:
$ sudo LC_ALL=C chroot . /bin/su - user
You'll now be ready to use your Maemo Leste ARM64 development environment:
$ uname -m
aarch64
Once you have finished with it, you can exit and unmount the resources you previously mounted:
$ exit
$ sudo umount dev/pts dev proc
=== TODO ===
* Discuss where people look to pick up issues (clear answer is the bugtracker, but still)
* How people can make changes and how to send them in
0e2b8a7975e6d76f421ca1348eda02adb91ad714
454
453
2019-12-30T07:51:00Z
Wizzup
4
wikitext
text/x-wiki
Maemo Leste development is split up in a few different places.
== Communication and organising ==
* Our https://maemo-leste.github.io website is where we post (news) updates, as well as on talk.maemo.org (see this subforum https://talk.maemo.org/forumdisplay.php?f=66 and this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192)
* There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker
* The day-to-day development and user chatter mostly takes place in the [[IRC channel]]
* We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
* This wiki: for documenting the status of various long-running projects, status per device, etc.
== Codename ==
* Maemo Leste is currently based on Devuan Ascii, which is based on Debian Stretch.
* Maemo Leste will be rebased (in the near future) to Devuan Beowulf, which is based on Debian Buster.
== Guides ==
* [[Development/Porting Packages]]
* [[Development/Building Packages]]
* [[Development/Modified Software]]
* [[Development/Device Bringup]]
== Technical ==
All our git repositories can be found here: https://github.com/maemo-leste
=== Jenkins ===
To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/
=== Developing on a device ===
Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM)
The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]].
=== Multiarch ===
Multiarch is an ability present on modern Debian systems that allows you to develop for Maemo Leste using your PC/Mac/Notebook etc.
Here we show how you can easily setup a multiarch environment and build some packages on a Debian system.
This can be adapted to develop on other systems as well. If you have such experience, please feel free to expand this section to help more people be involved in Maemo Leste development.
# Make a container for our development system
DIR=/var/lib/container/stretch
sudo apt-get install qemu-user-static debootstrap &&
sudo debootstrap stretch $DIR http://deb.debian.org/debian &&
echo "strech_cross" | sudo tee $DIR/etc/debian_chroot &&
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR
# Setup build environment inside the container
cat >> ~/.bashrc << EOF &&
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
export CC=arm-linux-gnueabihf-gcc
EOF
dpkg --add-architecture armhf &&
apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates &&
cat >> /etc/apt/sources.list << "EOF" &&
deb http://maedevu.maemo.org/leste leste main contrib non-free n900
deb http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900
deb-src http://deb.debian.org/debian stretch main
deb-src http://maedevu.maemo.org/leste leste main contrib non-free n900
deb-src http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900
EOF
wget https://maedevu.maemo.org/testing-key.asc &&
apt-key add testing-key.asc &&
rm -f testing-key.asc &&
rm -f /var/cache/apt/archives/*.deb &&
apt-get update &&
exec bash
# Build Xorg for Nokia N900
apt-get source xserver-xorg-core &&
cd xorg-server-1.19.2 &&
wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch &&
mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches &&
echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series &&
apt-get -y build-dep -a armhf . &&
time dpkg-buildpackage -aarmhf -j4 -b &&
echo OK || echo FAIL
To login the container later, issue the command:
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch
If you wish to remove the container, just delete the directory we created:
sudo rm -fr /var/lib/container/stretch
=== Cross-distro solution for development inside an ARM/ARM64 chroot on a PC ===
It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices.
1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]:
$ sudo apt-get install qemu-user-static binfmt-support
The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''':
$ sudo update-binfmts --display qemu-arm
qemu-arm (enabled):
package = qemu-user-static
type = magic
offset = 0
magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00
mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff
interpreter = /usr/bin/qemu-arm-static
detector =
2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it:
$ mkdir leste-arm64
$ cd leste-arm64
$ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf -
3. From the same directory, configure the chroot with a few resources from your host system:
$ sudo mount -t proc proc proc
$ sudo mount -o bind /dev dev
$ sudo mount -o bind /dev/pts dev/pts
4. From the same directory, create a symlink for the mount table:
$ sudo ln -s /proc/mounts etc/mtab
5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user:
$ sudo LC_ALL=C chroot . /bin/su - user
You'll now be ready to use your Maemo Leste ARM64 development environment:
$ uname -m
aarch64
Once you have finished with it, you can exit and unmount the resources you previously mounted:
$ exit
$ sudo umount dev/pts dev proc
=== TODO ===
* Discuss where people look to pick up issues (clear answer is the bugtracker, but still)
* How people can make changes and how to send them in
7fadd609e02d2acc703d0c2be95d6c3c56a6cf9a
481
454
2020-01-03T21:43:54Z
Wizzup
4
wikitext
text/x-wiki
Maemo Leste development is split up in a few different places.
== Communication and organising ==
* Our https://maemo-leste.github.io website is where we post (news) updates, as well as on talk.maemo.org (see this subforum https://talk.maemo.org/forumdisplay.php?f=66 and this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192)
* There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker
* The day-to-day development and user chatter mostly takes place in the [[IRC channel]]
* We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
* This wiki: for documenting the status of various long-running projects, status per device, etc.
== Task Summary ==
For current (semi) impactful tasks, see
[[Development/Tasks]]
== Codename ==
* Maemo Leste is currently based on Devuan Ascii, which is based on Debian Stretch.
* Maemo Leste will be rebased (in the near future) to Devuan Beowulf, which is based on Debian Buster.
== Guides ==
* [[Development/Porting Packages]]
* [[Development/Building Packages]]
* [[Development/Modified Software]]
* [[Development/Device Bringup]]
== Technical ==
All our git repositories can be found here: https://github.com/maemo-leste
=== Jenkins ===
To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/
=== Developing on a device ===
Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM)
The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]].
=== Multiarch ===
Multiarch is an ability present on modern Debian systems that allows you to develop for Maemo Leste using your PC/Mac/Notebook etc.
Here we show how you can easily setup a multiarch environment and build some packages on a Debian system.
This can be adapted to develop on other systems as well. If you have such experience, please feel free to expand this section to help more people be involved in Maemo Leste development.
# Make a container for our development system
DIR=/var/lib/container/stretch
sudo apt-get install qemu-user-static debootstrap &&
sudo debootstrap stretch $DIR http://deb.debian.org/debian &&
echo "strech_cross" | sudo tee $DIR/etc/debian_chroot &&
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR
# Setup build environment inside the container
cat >> ~/.bashrc << EOF &&
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
export CC=arm-linux-gnueabihf-gcc
EOF
dpkg --add-architecture armhf &&
apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates &&
cat >> /etc/apt/sources.list << "EOF" &&
deb http://maedevu.maemo.org/leste leste main contrib non-free n900
deb http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900
deb-src http://deb.debian.org/debian stretch main
deb-src http://maedevu.maemo.org/leste leste main contrib non-free n900
deb-src http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900
EOF
wget https://maedevu.maemo.org/testing-key.asc &&
apt-key add testing-key.asc &&
rm -f testing-key.asc &&
rm -f /var/cache/apt/archives/*.deb &&
apt-get update &&
exec bash
# Build Xorg for Nokia N900
apt-get source xserver-xorg-core &&
cd xorg-server-1.19.2 &&
wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch &&
mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches &&
echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series &&
apt-get -y build-dep -a armhf . &&
time dpkg-buildpackage -aarmhf -j4 -b &&
echo OK || echo FAIL
To login the container later, issue the command:
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch
If you wish to remove the container, just delete the directory we created:
sudo rm -fr /var/lib/container/stretch
=== Cross-distro solution for development inside an ARM/ARM64 chroot on a PC ===
It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices.
1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]:
$ sudo apt-get install qemu-user-static binfmt-support
The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''':
$ sudo update-binfmts --display qemu-arm
qemu-arm (enabled):
package = qemu-user-static
type = magic
offset = 0
magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00
mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff
interpreter = /usr/bin/qemu-arm-static
detector =
2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it:
$ mkdir leste-arm64
$ cd leste-arm64
$ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf -
3. From the same directory, configure the chroot with a few resources from your host system:
$ sudo mount -t proc proc proc
$ sudo mount -o bind /dev dev
$ sudo mount -o bind /dev/pts dev/pts
4. From the same directory, create a symlink for the mount table:
$ sudo ln -s /proc/mounts etc/mtab
5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user:
$ sudo LC_ALL=C chroot . /bin/su - user
You'll now be ready to use your Maemo Leste ARM64 development environment:
$ uname -m
aarch64
Once you have finished with it, you can exit and unmount the resources you previously mounted:
$ exit
$ sudo umount dev/pts dev proc
=== TODO ===
* Discuss where people look to pick up issues (clear answer is the bugtracker, but still)
* How people can make changes and how to send them in
f2ac7a5c9a3ac55ee121c1a30a3ba22a3d67c3cd
Development/Tasks
0
92
482
2020-01-03T21:46:29Z
Wizzup
4
Created page with "== Applications == {| class="wikitable" ! Task ! Description ! Task Status ! User(s) working on task ! URLs ! Notes |- | Monitor keyboard slide and attached state || Require..."
wikitext
text/x-wiki
== Applications ==
{| class="wikitable"
! Task
! Description
! Task Status
! User(s) working on task
! URLs
! Notes
|-
| Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || TODO || ? || ||
|-
|)
23b201534739da1ee24318db5ff5a54e146a3e57
483
482
2020-01-03T21:47:51Z
Wizzup
4
wikitext
text/x-wiki
== Applications ==
{| class="wikitable"
! Task
! Description
! Task Status
! User(s) working on task
! URLs
! Notes
|-
| Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || TODO || ? || ||
|)
79a1d40935f46be4bbb2954389f64f25439c0281
484
483
2020-01-03T21:49:20Z
Wizzup
4
wikitext
text/x-wiki
== Applications ==
{| class="wikitable"
! Task
! Description
! Task Status
! User(s) working on task
! URLs
! Notes
|-
| Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || TODO || ? || ||
| Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || TODO || ? || ||
|)
43fc556a7689d34b2a4e36ed28022daeaf3650df
485
484
2020-01-03T21:49:26Z
Wizzup
4
wikitext
text/x-wiki
== Applications ==
{| class="wikitable"
! Task
! Description
! Task Status
! User(s) working on task
! URLs
! Notes
|-
| Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || TODO || ? || ||
|-
| Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || TODO || ? || ||
|)
f8ad88aa741062c256a33a6f1600b693fa3c5f6a
486
485
2020-01-03T21:52:05Z
Wizzup
4
wikitext
text/x-wiki
== Applications ==
{| class="wikitable"
! Task
! Description
! Task Status
! User(s) working on task
! GH Bug
! URLs
! Notes
|-
| Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || TODO || ? || || ||
|-
| Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || TODO || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches || ||
|-
| libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || TODO || || || ||
|-
|)
770da3b04c6f3e2cbbb193b5af8eda0f4b6935a4
487
486
2020-01-03T21:53:35Z
Wizzup
4
wikitext
text/x-wiki
== Applications ==
{| class="wikitable"
! Task
! Description
! Task Status
! User(s) working on task
! GH Bug
! URLs
! Notes
|-
| Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || TODO || ? || || ||
|-
| Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || TODO || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches || ||
|-
| libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || TODO || || || ||
|-
| Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || TODO || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 || ||
|)
93f9d0b7917b8e2b48a2fe3095b8348a5ed01a62
488
487
2020-01-03T21:55:52Z
Wizzup
4
wikitext
text/x-wiki
== Applications ==
{| class="wikitable"
! Task
! Description
! Task Status
! User(s) working on task
! GH Bug
! URLs
! Notes
|-
| Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || TODO || ? || || ||
|-
| Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || TODO || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches ||
|-
| libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || TODO || || || ||
|-
| Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || TODO || || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 ||
|-
| Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || [[User:Wizzup]], [[User:Parazyd]] || || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ ||
|)
be9bdcfa3da4d80949323f132f7d56185d05b482
489
488
2020-01-03T21:58:35Z
Wizzup
4
wikitext
text/x-wiki
== Applications ==
{| class="wikitable"
! Task
! Description
! Task Status
! User(s) working on task
! GH Bug
! URLs
! Notes
|-
| Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || TODO || ? || || ||
|-
| Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || TODO || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches ||
|-
| libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || TODO || || || ||
|-
| Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || TODO || || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 ||
|-
| Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || WIP || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ ||
|-
| Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || || https://github.com/maemo-leste/connui-cellular ||
|-
|}
c1612ab8223db6c58ce7032f01fe9311f4174f9e
490
489
2020-01-03T22:01:35Z
Wizzup
4
wikitext
text/x-wiki
== Applications ==
{| class="wikitable"
! Task
! Description
! Task Status
! User(s) working on task
! GH Bug
! URLs
! Notes
|-
| Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || TODO || ? || || ||
|-
| Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || TODO || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches ||
|-
| libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || TODO || || || ||
|-
| Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || TODO || || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 ||
|-
| Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || WIP || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ ||
|-
| Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || || https://github.com/maemo-leste/connui-cellular ||
|-
| Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || TODO || [[User:Wizzup]] || || ||
|-
| Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || TODO || ? || || ||
|-
|"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || TODO || ? || || ||
|-
|}
36c2f27b181abd7c38c8724f3f96e17f9b0ec472
491
490
2020-01-03T22:05:59Z
Wizzup
4
wikitext
text/x-wiki
== Applications ==
{| class="wikitable"
! Task
! Description
! Task Status
! User(s) working on task
! GH Bug
! URLs
! Notes
|-
| Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || TODO || ? || || ||
|-
| Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || TODO || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches ||
|-
| libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || TODO || || || ||
|-
| Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || TODO || || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 ||
|-
| Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || WIP || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ ||
|-
| Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || || https://github.com/maemo-leste/connui-cellular ||
|-
| Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || TODO || [[User:Wizzup]] || || ||
|-
| Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || TODO || ? || || ||
|-
|"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || TODO || ? || || ||
|-
| Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || TODO || [[User:Wizzup]], tmlind || || || Let's do the same for Droid4. :)
|-
| osso-abook || We need osso-abook in place for all applications that needs contacts (phone ui, sms ui, email ui, more) || TODO || [[User:freemangordon]] || || ||
|-
| hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || TODO || [[User:minicom]]? || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc.
|-
| Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || TODO || || || ||
|-
|}
c434b1ee1476f1429589ce46538b155577d413ea
492
491
2020-01-03T22:07:40Z
Wizzup
4
wikitext
text/x-wiki
== Applications ==
{| class="wikitable"
! Task
! Description
! Task Status
! User(s) working on task
! GH Bug
! URLs
! Notes
|-
| Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || TODO || ? || || ||
|-
| Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || TODO || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches ||
|-
| libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || TODO || || || ||
|-
| Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || TODO || || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 ||
|-
| Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || WIP || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ ||
|-
| Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || || https://github.com/maemo-leste/connui-cellular ||
|-
| Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || TODO || [[User:Wizzup]] || || ||
|-
| Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || TODO || ? || || ||
|-
|"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || TODO || ? || || ||
|-
| Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || TODO || [[User:Wizzup]], tmlind || || || Let's do the same for Droid4. :)
|-
| osso-abook || We need osso-abook in place for all applications that needs contacts (phone ui, sms ui, email ui, more) || TODO || [[User:freemangordon]] || || ||
|-
| hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || TODO || [[User:minicom]]? || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc.
|-
| Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || TODO || || || ||
|-
| Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || WIP? || [[User:freemangordon]] || || ||
|-
|}
98db738d0041c51b76f84a577b0fd03d63fd3de9
493
492
2020-01-03T22:09:25Z
Wizzup
4
wikitext
text/x-wiki
== Applications ==
{| class="wikitable"
! Task
! Description
! Task Status
! User(s) working on task
! GH Bug
! URLs
! Notes
|-
| Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || TODO || ? || https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || ||
|-
| Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || TODO || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches ||
|-
| libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || TODO || || || ||
|-
| Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || TODO || || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 ||
|-
| Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || WIP || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ ||
|-
| Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || || https://github.com/maemo-leste/connui-cellular ||
|-
| Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || TODO || [[User:Wizzup]] || || ||
|-
| Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || TODO || ? || || ||
|-
|"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || TODO || ? || || ||
|-
| Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || TODO || [[User:Wizzup]], tmlind || || || Let's do the same for Droid4. :)
|-
| osso-abook || We need osso-abook in place for all applications that needs contacts (phone ui, sms ui, email ui, more) || TODO || [[User:freemangordon]] || || ||
|-
| hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || TODO || [[User:minicom]]? || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc.
|-
| Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || TODO || || || ||
|-
| Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || WIP? || [[User:freemangordon]] || || ||
|-
|}
fcfa6154562cfe8c7ded610e7a8442b7d340374e
494
493
2020-01-03T22:11:38Z
Wizzup
4
wikitext
text/x-wiki
== Applications ==
{| class="wikitable"
! Task
! Description
! Task Status
! User(s) working on task
! GH Bug
! URLs
! Notes
|-
| Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || TODO || ? || https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || ||
|-
| Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 || Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || TODO || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches ||
|-
| libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || TODO || || || ||
|-
| Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || TODO || || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 ||
|-
| Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || WIP || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ ||
|-
| Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || || https://github.com/maemo-leste/connui-cellular ||
|-
| Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || TODO || [[User:Wizzup]] || || ||
|-
| Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || TODO || ? || || ||
|-
|"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || TODO || ? || || ||
|-
| Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || TODO || [[User:Wizzup]], tmlind || || || Let's do the same for Droid4. :)
|-
| osso-abook || We need osso-abook in place for all applications that needs contacts (phone ui, sms ui, email ui, more) || TODO || [[User:freemangordon]] || || ||
|-
| hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || TODO || [[User:minicom]]? || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc.
|-
| Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || TODO || || || ||
|-
| Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || WIP? || [[User:freemangordon]] || || ||
|-
|}
b6bee101684b270706228792cc29fa1a3fd79a59
495
494
2020-01-03T22:12:40Z
Sicelo
5
/* Applications */
wikitext
text/x-wiki
== Applications ==
{| class="wikitable"
! Task
! Description
! Task Status
! User(s) working on task
! GH Bug
! URLs
! Notes
|-
| Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || TODO || ? || https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || ||
|-
| Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 || Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || TODO || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches ||
|-
| libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || TODO || || || ||
|-
| Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || TODO || || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 ||
|-
| Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || WIP || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ ||
|-
| Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || || https://github.com/maemo-leste/connui-cellular ||
|-
| Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || TODO || [[User:Wizzup]], [[User:Sicelo]] || || ||
|-
| Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || TODO || ? || || ||
|-
|"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || TODO || ? || || ||
|-
| Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || TODO || [[User:Wizzup]], tmlind || || || Let's do the same for Droid4. :)
|-
| osso-abook || We need osso-abook in place for all applications that needs contacts (phone ui, sms ui, email ui, more) || TODO || [[User:freemangordon]] || || ||
|-
| hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || TODO || [[User:minicom]]? || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc.
|-
| Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || TODO || || || ||
|-
| Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || WIP? || [[User:freemangordon]] || || ||
|-
|}
7a3caa5cd4a390de3e56cebd1bc4a9ab8fdd7da1
Development/Tasks
0
92
496
495
2020-01-03T22:17:32Z
Wizzup
4
wikitext
text/x-wiki
== Applications ==
{| class="wikitable"
! Task
! Description
! Task Status
! User(s) working on task
! GH Bug
! URLs
! Notes
|-
| Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || TODO || ? || https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda)
|-
| Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 || Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || TODO || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches ||
|-
| libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || TODO || || || ||
|-
| Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || TODO || || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 ||
|-
| Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || WIP || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ ||
|-
| Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || || https://github.com/maemo-leste/connui-cellular ||
|-
| Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || TODO || [[User:Wizzup]], [[User:Sicelo]] || || ||
|-
| Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || TODO || ? || || ||
|-
|"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || TODO || ? || || ||
|-
| Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || TODO || [[User:Wizzup]], tmlind || || || Let's do the same for Droid4. :)
|-
| osso-abook || We need osso-abook in place for all applications that needs contacts (phone ui, sms ui, email ui, more) || TODO || [[User:freemangordon]] || || ||
|-
| hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || TODO || [[User:minicom]]? || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc.
|-
| Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || TODO || || || ||
|-
| Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || WIP? || [[User:freemangordon]] || || ||
|-
|}
fd6e4d21461e691e81c9d2f3103fe095e64ed4b4
497
496
2020-01-03T22:18:10Z
Wizzup
4
wikitext
text/x-wiki
== Applications ==
{| class="wikitable"
! Task
! Description
! Task Status
! User(s) working on task
! GH Bug
! URLs
! Notes
|-
| Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || TODO || ? || https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda)
|-
| Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 || Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || TODO || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches ||
|-
| libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || TODO || || || ||
|-
| Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || TODO || || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 ||
|-
| Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || WIP || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ ||
|-
| Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || || https://github.com/maemo-leste/connui-cellular ||
|-
| Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || TODO || [[User:Wizzup]], [[User:Sicelo]] || || ||
|-
| Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || TODO || ? || || ||
|-
|"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || TODO || ? || || ||
|-
| Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || TODO || [[User:Wizzup]], tmlind || || || Let's do the same for Droid4. :)
|-
| osso-abook || We need osso-abook in place for all applications that needs contacts (phone ui, sms ui, email ui, more) || TODO || [[User:freemangordon]] || || ||
|-
| hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || TODO || [[User:minicom]]? || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc.
|-
| Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || TODO || || || ||
|-
| Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || WIP? || [[User:freemangordon]] || || ||
|-
|}
d45365e342dde601b5404e9c8d93287f358bef35
498
497
2020-01-03T22:33:18Z
Wizzup
4
wikitext
text/x-wiki
== Applications ==
{| class="wikitable"
! Task
! Description
! Task Status
! User(s) working on task
! GH Bug
! URLs
! Notes
|-
| Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || TODO || ? || https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda)
|-
| Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. <b>Funding is available for this task</b> || TODO || [[User:freemangordon]] made a start || || https://github.com/maemo-leste/qtstyleplugins/ ||
|-
| Qt5 of theme and hildon widgets || Big task, port hildon widgets and theme from qt4 to qt5. <b>Funding is available for this task</b> || TODO || || || ||
|-
| Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 || Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || TODO || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches ||
|-
| libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || TODO || || || ||
|-
| Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || TODO || || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 ||
|-
| Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || WIP || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ ||
|-
| Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || || https://github.com/maemo-leste/connui-cellular ||
|-
| Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || TODO || [[User:Wizzup]], [[User:Sicelo]] || || ||
|-
| Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || TODO || ? || || ||
|-
|"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || TODO || ? || || ||
|-
| Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || TODO || [[User:Wizzup]], tmlind || || || Let's do the same for Droid4. :)
|-
| osso-abook || We need osso-abook in place for all applications that needs contacts (phone ui, sms ui, email ui, more) || TODO || [[User:freemangordon]] || || ||
|-
| hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || TODO || [[User:minicom]]? || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc.
|-
| Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || TODO || || || ||
|-
| Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || WIP? || [[User:freemangordon]] || || ||
|-
|}
1f1adc303fccd2ae52bbafd54607812ca9f4f3e1
499
498
2020-01-03T22:34:46Z
Wizzup
4
wikitext
text/x-wiki
== Applications ==
{| class="wikitable"
! Task
! Description
! Task Status
! User(s) working on task
! GH Bug
! URLs
! Notes
|-
| Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || TODO || ? || https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda)
|-
| Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. <b>Funding is available for this task</b> || TODO || || || https://github.com/maemo-leste/qtstyleplugins/ ||
|-
| Qt5 of theme and hildon widgets || Big task, port hildon widgets and theme from qt4 to qt5. <b>Funding is available for this task</b> || WIP || [[User:freemangordon]] made a start || || ||
|-
| Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 || Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || TODO || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches ||
|-
| libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || TODO || || || ||
|-
| Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || TODO || || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 ||
|-
| Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || WIP || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ ||
|-
| Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || || https://github.com/maemo-leste/connui-cellular ||
|-
| Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || TODO || [[User:Wizzup]], [[User:Sicelo]] || || ||
|-
| Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || TODO || ? || || ||
|-
|"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || TODO || ? || || ||
|-
| Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || TODO || [[User:Wizzup]], tmlind || || || Let's do the same for Droid4. :)
|-
| osso-abook || We need osso-abook in place for all applications that needs contacts (phone ui, sms ui, email ui, more) || TODO || [[User:freemangordon]] || || ||
|-
| hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || TODO || [[User:minicom]]? || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc.
|-
| Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || TODO || || || ||
|-
| Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || WIP? || [[User:freemangordon]] || || ||
|-
|}
ce03bba8d22809566c72c880a7f9e24110f996bf
500
499
2020-01-03T22:34:56Z
Wizzup
4
wikitext
text/x-wiki
== Applications ==
{| class="wikitable"
! Task
! Description
! Task Status
! User(s) working on task
! GH Bug
! URLs
! Notes
|-
| Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || TODO || ? || https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda)
|-
| Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. <b>Funding is available for this task</b> || TODO || || || ||
|-
| Qt5 of theme and hildon widgets || Big task, port hildon widgets and theme from qt4 to qt5. <b>Funding is available for this task</b> || WIP || [[User:freemangordon]] made a start || || https://github.com/maemo-leste/qtstyleplugins/ ||
|-
| Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 || Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || TODO || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches ||
|-
| libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || TODO || || || ||
|-
| Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || TODO || || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 ||
|-
| Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || WIP || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ ||
|-
| Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || || https://github.com/maemo-leste/connui-cellular ||
|-
| Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || TODO || [[User:Wizzup]], [[User:Sicelo]] || || ||
|-
| Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || TODO || ? || || ||
|-
|"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || TODO || ? || || ||
|-
| Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || TODO || [[User:Wizzup]], tmlind || || || Let's do the same for Droid4. :)
|-
| osso-abook || We need osso-abook in place for all applications that needs contacts (phone ui, sms ui, email ui, more) || TODO || [[User:freemangordon]] || || ||
|-
| hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || TODO || [[User:minicom]]? || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc.
|-
| Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || TODO || || || ||
|-
| Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || WIP? || [[User:freemangordon]] || || ||
|-
|}
f405399c17f5a4fd36ad1a6d8ae44d2ca91305b9
501
500
2020-01-03T22:37:52Z
Wizzup
4
wikitext
text/x-wiki
== Applications ==
This page lists some of the more important open issues for Maemo Leste. We have a complete list here, on github, but it's a bit hard to navigate: https://github.com/maemo-leste/bugtracker/issues
{| class="wikitable"
! Task
! Description
! Task Status
! User(s) working on task
! GH Bug
! URLs
! Notes
|-
| Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || TODO || ? || https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda)
|-
| Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. <b>Funding is available for this task</b> || TODO || || || ||
|-
| Qt5 of theme and hildon widgets || Big task, port hildon widgets and theme from qt4 to qt5. <b>Funding is available for this task</b> || WIP || [[User:freemangordon]] made a start || || https://github.com/maemo-leste/qtstyleplugins/ ||
|-
| Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 || Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || TODO || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches ||
|-
| libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || TODO || || || ||
|-
| Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || TODO || || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 ||
|-
| Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || WIP || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ ||
|-
| Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || || https://github.com/maemo-leste/connui-cellular ||
|-
| Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || TODO || [[User:Wizzup]], [[User:Sicelo]] || || ||
|-
| Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || TODO || ? || || ||
|-
|"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || TODO || ? || || ||
|-
| Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || TODO || [[User:Wizzup]], tmlind || || || Let's do the same for Droid4. :)
|-
| osso-abook || We need osso-abook in place for all applications that need contacts (phone ui, sms ui, email ui, more) || TODO || [[User:freemangordon]] || || ||
|-
| hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || TODO || [[User:minicom]]? || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc.
|-
| Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || TODO || || || ||
|-
| Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || WIP? || [[User:freemangordon]] || || ||
|-
|}
91d8eafd93ec5936b0c23c24f5ec476e3aa815f4
502
501
2020-01-03T22:39:54Z
Wizzup
4
wikitext
text/x-wiki
== Applications ==
This page lists some of the more important open issues for Maemo Leste. We have a complete list here, on github, but it's a bit hard to navigate: https://github.com/maemo-leste/bugtracker/issues
{| class="wikitable"
! Task
! Description
! Task Status
! User(s) working on task
! GH Bug
! URLs
! Notes
|-
| Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || TODO || ? || https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda)
|-
| Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. <b>Funding is available for this task</b> || TODO || || https://github.com/maemo-leste/bugtracker/issues/261 || ||
|-
| Qt5 of theme and hildon widgets || Big task, port hildon widgets and theme from qt4 to qt5. <b>Funding is available for this task</b> || WIP || [[User:freemangordon]] made a start || || https://github.com/maemo-leste/qtstyleplugins/ ||
|-
| Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 || Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || TODO || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches ||
|-
| libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || TODO || || || ||
|-
| Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || TODO || || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 ||
|-
| Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || WIP || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ ||
|-
| Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || https://github.com/maemo-leste/bugtracker/issues/256 || https://github.com/maemo-leste/connui-cellular ||
|-
| Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || TODO || [[User:Wizzup]], [[User:Sicelo]] || || ||
|-
| Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || TODO || ? || || ||
|-
|"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || TODO || ? || || ||
|-
| Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || TODO || [[User:Wizzup]], tmlind || || || Let's do the same for Droid4. :)
|-
| osso-abook || We need osso-abook in place for all applications that need contacts (phone ui, sms ui, email ui, more) || TODO || [[User:freemangordon]] || || ||
|-
| hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || TODO || [[User:minicom]]? || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc.
|-
| Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || TODO || || || ||
|-
| Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || WIP? || [[User:freemangordon]] || || ||
|-
|}
5648b639bfa67a2b7cc28f2e07d50cc3d3f724f0
503
502
2020-01-04T09:35:01Z
Wizzup
4
wikitext
text/x-wiki
== Applications ==
This page lists some of the more important open issues for Maemo Leste. We have a complete list here, on github, but it's a bit hard to navigate: https://github.com/maemo-leste/bugtracker/issues
{| class="wikitable"
! Task
! Description
! Task Status
! User(s) working on task
! GH Bug
! URLs
! Notes
|-
| Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || TODO || ? || https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda)
|-
| Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. <b>Funding is available for this task</b> || WIP/TODO || || https://github.com/maemo-leste/bugtracker/issues/261 || || Some work was done in the past
|-
| Qt5 of theme and hildon widgets || Big task, port hildon widgets and theme from qt4 to qt5. <b>Funding is available for this task</b> || WIP || [[User:freemangordon]] made a start || || https://github.com/maemo-leste/qtstyleplugins/ ||
|-
| Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 || Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || TODO || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches ||
|-
| libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || TODO || || || ||
|-
| Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || TODO || || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 ||
|-
| Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || WIP || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ ||
|-
| Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || https://github.com/maemo-leste/bugtracker/issues/256 || https://github.com/maemo-leste/connui-cellular ||
|-
| Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || TODO || [[User:Wizzup]], [[User:Sicelo]] || || ||
|-
| Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || TODO || ? || || ||
|-
|"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || TODO || ? || || ||
|-
| Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || TODO || [[User:Wizzup]], tmlind || || || Let's do the same for Droid4. :)
|-
| osso-abook || We need osso-abook in place for all applications that need contacts (phone ui, sms ui, email ui, more) || TODO || [[User:freemangordon]] || || ||
|-
| hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || TODO || [[User:minicom]]? || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc.
|-
| Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || TODO || || || ||
|-
| Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || WIP? || [[User:freemangordon]] || || ||
|-
|}
0bc492463224290306ec176b4a38117a150dbdb3
504
503
2020-01-04T11:05:03Z
Wizzup
4
wikitext
text/x-wiki
== Applications ==
This page lists some of the more important open issues for Maemo Leste. We have a complete list here, on github, but it's a bit hard to navigate: https://github.com/maemo-leste/bugtracker/issues
{| class="wikitable"
! Task
! Description
! Task Status
! User(s) working on task
! GH Bug
! URLs
! Notes
|-
| Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || TODO || ? || https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda)
|-
| Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. <b>Funding is available for this task</b> || WIP/TODO || || https://github.com/maemo-leste/bugtracker/issues/261 || || Some work was done in the past
|-
| Qt5 of theme and hildon widgets || Big task, port hildon widgets and theme from qt4 to qt5. <b>Funding is available for this task</b> || WIP || [[User:freemangordon]] made a start || || https://github.com/maemo-leste/qtstyleplugins/ ||
|-
| Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 || Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || TODO || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches ||
|-
| libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || TODO || || || ||
|-
| Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || TODO || || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 ||
|-
| Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || WIP || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ ||
|-
| Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || https://github.com/maemo-leste/bugtracker/issues/256 || https://github.com/maemo-leste/connui-cellular ||
|-
| Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || TODO || [[User:Wizzup]], [[User:Sicelo]] || || ||
|-
| Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || TODO || ? || || ||
|-
|"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || TODO || ? || || ||
|-
| Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || TODO || [[User:Wizzup]], tmlind || || || Let's do the same for Droid4. :)
|-
| osso-abook || We need osso-abook in place for all applications that need contacts (phone ui, sms ui, email ui, more) || TODO || [[User:freemangordon]] || || ||
|-
| hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || TODO || [[User:minicom]]? || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc.
|-
| Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || TODO || || || ||
|-
| Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || WIP? || [[User:freemangordon]] || || ||
|-
| Port all packages for maemo-leste to debhelper 9 or higher || Requires for us to migrate to a newer Debian (Buster) / Devuan (Beowulf) || WIP, help needed || [[User:Parazyd]], [[User:Wizzup]], ? || https://github.com/maemo-leste/bugtracker/issues/234 || ||
|-
|}
bc7c4b76cf36d4e1ae3f556733457753342802bc
520
504
2020-01-12T23:21:01Z
Wizzup
4
wikitext
text/x-wiki
== Applications ==
This page lists some of the more important open issues for Maemo Leste. We have a complete list here, on github, but it's a bit hard to navigate: https://github.com/maemo-leste/bugtracker/issues
{| class="wikitable"
! Task
! Description
! Task Status
! User(s) working on task
! GH Bug
! URLs
! Notes
|-
| Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || TODO || ? || https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda)
|-
| Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. <b>Funding is available for this task</b> || WIP/TODO || || https://github.com/maemo-leste/bugtracker/issues/261 || || Some work was done in the past
|-
| Qt5 of theme and hildon widgets || Big task, port hildon widgets and theme from qt4 to qt5. <b>Funding is available for this task</b> || WIP || [[User:freemangordon]] made a start || || https://github.com/maemo-leste/qtstyleplugins/ ||
|-
| Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 || Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || TODO || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches ||
|-
| libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || TODO || || || ||
|-
| Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || TODO || || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 ||
|-
| Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || DONE || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ ||
|-
| Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || https://github.com/maemo-leste/bugtracker/issues/256 || https://github.com/maemo-leste/connui-cellular ||
|-
| Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || TODO || [[User:Wizzup]], [[User:Sicelo]] || || ||
|-
| Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || TODO || ? || || ||
|-
|"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || TODO || ? || || ||
|-
| Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || TODO || [[User:Wizzup]], tmlind || || || Let's do the same for Droid4. :)
|-
| osso-abook || We need osso-abook in place for all applications that need contacts (phone ui, sms ui, email ui, more) || TODO || [[User:freemangordon]] || || ||
|-
| hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || TODO || [[User:minicom]]? || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc.
|-
| Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || TODO || || || ||
|-
| Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || WIP? || [[User:freemangordon]] || || ||
|-
| Port all packages for maemo-leste to debhelper 9 or higher || Requires for us to migrate to a newer Debian (Buster) / Devuan (Beowulf) || WIP, help needed || [[User:Parazyd]], [[User:Wizzup]], ? || https://github.com/maemo-leste/bugtracker/issues/234 || ||
|-
|}
81ce238aa4a5589d53c21ea80f0872cb0ba15ff5
521
520
2020-01-12T23:21:38Z
Wizzup
4
wikitext
text/x-wiki
== Applications ==
This page lists some of the more important open issues for Maemo Leste. We have a complete list here, on github, but it's a bit hard to navigate: https://github.com/maemo-leste/bugtracker/issues
{| class="wikitable"
! Task
! Description
! Task Status
! User(s) working on task
! GH Bug
! URLs
! Notes
|-
| Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || TODO || ? || https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda)
|-
| Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. <b>Funding is available for this task</b> || WIP/TODO || || https://github.com/maemo-leste/bugtracker/issues/261 || || Some work was done in the past
|-
| Qt5 of theme and hildon widgets || Big task, port hildon widgets and theme from qt4 to qt5. <b>Funding is available for this task</b> || WIP || [[User:freemangordon]] made a start || || https://github.com/maemo-leste/qtstyleplugins/ ||
|-
| Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 || Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || TODO || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches ||
|-
| libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || TODO || || || ||
|-
| Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || TODO || || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 ||
|-
| Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || DONE || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ ||
|-
| Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || https://github.com/maemo-leste/bugtracker/issues/256 || https://github.com/maemo-leste/connui-cellular ||
|-
| Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || TODO || [[User:Wizzup]], [[User:Sicelo]] || || ||
|-
| Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || TODO || ? || || ||
|-
|"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || TODO || ? || || ||
|-
| Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || TODO || [[User:Wizzup]], tmlind || || || Let's do the same for Droid4. :)
|-
| osso-abook || We need osso-abook in place for all applications that need contacts (phone ui, sms ui, email ui, more) || WIP || [[User:freemangordon]] || || ||
|-
| hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || WIP || [[User:minicom]]? || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc.
|-
| Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || TODO || || || ||
|-
| Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || WIP? || [[User:freemangordon]] || || ||
|-
| Port all packages for maemo-leste to debhelper 9 or higher || Requires for us to migrate to a newer Debian (Buster) / Devuan (Beowulf) || WIP, help needed || [[User:Parazyd]], [[User:Wizzup]], ? || https://github.com/maemo-leste/bugtracker/issues/234 || ||
|-
|}
ea4f6b85b356765804b7200eb5123113a7971c1a
522
521
2020-01-13T00:30:24Z
Wizzup
4
wikitext
text/x-wiki
== Applications ==
This page lists some of the more important open issues for Maemo Leste. We have a complete list here, on github, but it's a bit hard to navigate: https://github.com/maemo-leste/bugtracker/issues
{| class="wikitable"
! Task
! Description
! Task Status
! User(s) working on task
! GH Bug
! URLs
! Notes
|-
| Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || TODO || ? || https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda). mer-core (sailfish/nemomobile) has keyboard monitoring integrated into mce, so we could also look at (using) that
|-
| Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. <b>Funding is available for this task</b> || WIP/TODO || || https://github.com/maemo-leste/bugtracker/issues/261 || || Some work was done in the past
|-
| Qt5 of theme and hildon widgets || Big task, port hildon widgets and theme from qt4 to qt5. <b>Funding is available for this task</b> || WIP || [[User:freemangordon]] made a start || || https://github.com/maemo-leste/qtstyleplugins/ ||
|-
| Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 || Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || TODO || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches ||
|-
| libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || TODO || || || ||
|-
| Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || TODO || || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 ||
|-
| Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || DONE || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ ||
|-
| Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || https://github.com/maemo-leste/bugtracker/issues/256 || https://github.com/maemo-leste/connui-cellular ||
|-
| Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || TODO || [[User:Wizzup]], [[User:Sicelo]] || || ||
|-
| Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || TODO || ? || || ||
|-
|"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || TODO || ? || || ||
|-
| Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || TODO || [[User:Wizzup]], tmlind || || || Let's do the same for Droid4. :)
|-
| osso-abook || We need osso-abook in place for all applications that need contacts (phone ui, sms ui, email ui, more) || WIP || [[User:freemangordon]] || || ||
|-
| hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || WIP || [[User:minicom]]? || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc.
|-
| Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || TODO || || || ||
|-
| Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || WIP? || [[User:freemangordon]] || || ||
|-
| Port all packages for maemo-leste to debhelper 9 or higher || Requires for us to migrate to a newer Debian (Buster) / Devuan (Beowulf) || WIP, help needed || [[User:Parazyd]], [[User:Wizzup]], ? || https://github.com/maemo-leste/bugtracker/issues/234 || ||
|-
|}
528d6eda2d387c4ac17e0494174c40226320feba
523
522
2020-01-13T19:44:20Z
ThomasAH
30
wikitext
text/x-wiki
== Applications ==
This page lists some of the more important open issues for Maemo Leste. We have a complete list here, on github, but it's a bit hard to navigate: https://github.com/maemo-leste/bugtracker/issues
{| class="wikitable"
! Task
! Description
! Task Status
! User(s) working on task
! GH Bug
! URLs
! Notes
|-
| Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || TODO || [User:ThomasAH] || https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda). mer-core (sailfish/nemomobile) has keyboard monitoring integrated into mce, so we could also look at (using) that
|-
| Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. <b>Funding is available for this task</b> || WIP/TODO || || https://github.com/maemo-leste/bugtracker/issues/261 || || Some work was done in the past
|-
| Qt5 of theme and hildon widgets || Big task, port hildon widgets and theme from qt4 to qt5. <b>Funding is available for this task</b> || WIP || [[User:freemangordon]] made a start || || https://github.com/maemo-leste/qtstyleplugins/ ||
|-
| Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 || Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || TODO || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches ||
|-
| libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || TODO || || || ||
|-
| Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || TODO || || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 ||
|-
| Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || DONE || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ ||
|-
| Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || https://github.com/maemo-leste/bugtracker/issues/256 || https://github.com/maemo-leste/connui-cellular ||
|-
| Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || TODO || [[User:Wizzup]], [[User:Sicelo]] || || ||
|-
| Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || TODO || ? || || ||
|-
|"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || TODO || ? || || ||
|-
| Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || TODO || [[User:Wizzup]], tmlind || || || Let's do the same for Droid4. :)
|-
| osso-abook || We need osso-abook in place for all applications that need contacts (phone ui, sms ui, email ui, more) || WIP || [[User:freemangordon]] || || ||
|-
| hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || WIP || [[User:minicom]]? || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc.
|-
| Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || TODO || || || ||
|-
| Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || WIP? || [[User:freemangordon]] || || ||
|-
| Port all packages for maemo-leste to debhelper 9 or higher || Requires for us to migrate to a newer Debian (Buster) / Devuan (Beowulf) || WIP, help needed || [[User:Parazyd]], [[User:Wizzup]], ? || https://github.com/maemo-leste/bugtracker/issues/234 || ||
|-
|}
e210551d603ee9b88af88d35e9d9bbad51d72562
524
523
2020-01-13T19:44:59Z
ThomasAH
30
/* Applications */
wikitext
text/x-wiki
== Applications ==
This page lists some of the more important open issues for Maemo Leste. We have a complete list here, on github, but it's a bit hard to navigate: https://github.com/maemo-leste/bugtracker/issues
{| class="wikitable"
! Task
! Description
! Task Status
! User(s) working on task
! GH Bug
! URLs
! Notes
|-
| Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || TODO || [[User:ThomasAH]] || https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda). mer-core (sailfish/nemomobile) has keyboard monitoring integrated into mce, so we could also look at (using) that
|-
| Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. <b>Funding is available for this task</b> || WIP/TODO || || https://github.com/maemo-leste/bugtracker/issues/261 || || Some work was done in the past
|-
| Qt5 of theme and hildon widgets || Big task, port hildon widgets and theme from qt4 to qt5. <b>Funding is available for this task</b> || WIP || [[User:freemangordon]] made a start || || https://github.com/maemo-leste/qtstyleplugins/ ||
|-
| Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 || Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || TODO || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches ||
|-
| libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || TODO || || || ||
|-
| Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || TODO || || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 ||
|-
| Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || DONE || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ ||
|-
| Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || https://github.com/maemo-leste/bugtracker/issues/256 || https://github.com/maemo-leste/connui-cellular ||
|-
| Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || TODO || [[User:Wizzup]], [[User:Sicelo]] || || ||
|-
| Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || TODO || ? || || ||
|-
|"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || TODO || ? || || ||
|-
| Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || TODO || [[User:Wizzup]], tmlind || || || Let's do the same for Droid4. :)
|-
| osso-abook || We need osso-abook in place for all applications that need contacts (phone ui, sms ui, email ui, more) || WIP || [[User:freemangordon]] || || ||
|-
| hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || WIP || [[User:minicom]]? || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc.
|-
| Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || TODO || || || ||
|-
| Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || WIP? || [[User:freemangordon]] || || ||
|-
| Port all packages for maemo-leste to debhelper 9 or higher || Requires for us to migrate to a newer Debian (Buster) / Devuan (Beowulf) || WIP, help needed || [[User:Parazyd]], [[User:Wizzup]], ? || https://github.com/maemo-leste/bugtracker/issues/234 || ||
|-
|}
ede35446e3ffc173859acc4d12727e10b4bba338
525
524
2020-01-13T19:47:26Z
ThomasAH
30
wikitext
text/x-wiki
== Applications ==
This page lists some of the more important open issues for Maemo Leste. We have a complete list here, on github, but it's a bit hard to navigate: https://github.com/maemo-leste/bugtracker/issues
{| class="wikitable"
! Task
! Description
! Task Status
! User(s) working on task
! GH Bug
! URLs
! Notes
|-
| Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || WIP || [[User:ThomasAH]] || https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda). mer-core (sailfish/nemomobile) has keyboard monitoring integrated into mce, so we could also look at (using) that
|-
| Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. <b>Funding is available for this task</b> || WIP/TODO || || https://github.com/maemo-leste/bugtracker/issues/261 || || Some work was done in the past
|-
| Qt5 of theme and hildon widgets || Big task, port hildon widgets and theme from qt4 to qt5. <b>Funding is available for this task</b> || WIP || [[User:freemangordon]] made a start || || https://github.com/maemo-leste/qtstyleplugins/ ||
|-
| Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 || Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || TODO || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches ||
|-
| libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || TODO || || || ||
|-
| Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || TODO || || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 ||
|-
| Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || DONE || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ ||
|-
| Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || https://github.com/maemo-leste/bugtracker/issues/256 || https://github.com/maemo-leste/connui-cellular ||
|-
| Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || TODO || [[User:Wizzup]], [[User:Sicelo]] || || ||
|-
| Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || TODO || ? || || ||
|-
|"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || TODO || ? || || ||
|-
| Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || TODO || [[User:Wizzup]], tmlind || || || Let's do the same for Droid4. :)
|-
| osso-abook || We need osso-abook in place for all applications that need contacts (phone ui, sms ui, email ui, more) || WIP || [[User:freemangordon]] || || ||
|-
| hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || WIP || [[User:minicom]]? || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc.
|-
| Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || TODO || || || ||
|-
| Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || WIP? || [[User:freemangordon]] || || ||
|-
| Port all packages for maemo-leste to debhelper 9 or higher || Requires for us to migrate to a newer Debian (Buster) / Devuan (Beowulf) || WIP, help needed || [[User:Parazyd]], [[User:Wizzup]], ? || https://github.com/maemo-leste/bugtracker/issues/234 || ||
|-
|}
315059308234df8719fcd3d7088db574db6364dd
PinePhone
0
93
505
2020-01-04T13:37:31Z
Wizzup
4
Created page with "{{Stub}} {{Infobox Device |image= |manufacturer=Pine64 |codename= |dimensions= |release_date= |soc=Allwinner A64 |dram= |power= |lcd= |video= |audio= |network= |storage= |usb..."
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
The first Pinephone (development) phone
== Notes ==
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A ||
|-
| Bluetooth || ? ||
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Modesetting with lima (!)
|-
| 3D Acceleration || Yes ||
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Should work on the modem
|}
== Installation ==
[[Category:Device]]
2170cb1db8c6309cf5ccbf13875b311893b0bc70
506
505
2020-01-04T13:37:57Z
Wizzup
4
/* Notes */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
The first Pinephone (development) phone
== Notes ==
Screen is 'portrait' by default, phone has no keyboard, Hildon needs more work to work well without a keyboard on portrait.
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A ||
|-
| Bluetooth || ? ||
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Modesetting with lima (!)
|-
| 3D Acceleration || Yes ||
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Should work on the modem
|}
== Installation ==
[[Category:Device]]
a5cc203945ec8e5e9bf78e05d146d32fc6d6e713
507
506
2020-01-04T13:38:07Z
Wizzup
4
/* Status */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
The first Pinephone (development) phone
== Notes ==
Screen is 'portrait' by default, phone has no keyboard, Hildon needs more work to work well without a keyboard on portrait.
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A ||
|-
| Bluetooth || ? ||
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || N/A || !
|-
| Screen || Yes || Modesetting with lima (!)
|-
| 3D Acceleration || Yes ||
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Should work on the modem
|}
== Installation ==
[[Category:Device]]
49ac8c72fa767ee9ca37d7c622533e0fc6244b7e
508
507
2020-01-04T13:44:39Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
The first Pinephone (development) phone
== Notes ==
Screen is 'portrait' by default, phone has no keyboard, Hildon needs more work to work well without a keyboard on portrait.
Lima-enabled mesa is available in the 'lima' component: https://phoenix.maemo.org/job/mesa-repos/ / https://maedevu.maemo.org/leste/dists/leste/lima/
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A ||
|-
| Bluetooth || ? ||
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || N/A || !
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || lima (!)
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Should work on the modem
|}
== Installation ==
[[Category:Device]]
a39acdd4b27d531594661d4bfb7fc572491b72d6
Status
0
64
509
404
2020-01-04T15:30:33Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
For Device specific status pages, see See [[:Category:Device]]
The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device
{| class="wikitable"
! Feature
! Status
! Leste software
! Notes
|-
| Desktop environment || OK || hildon || hildon home, hildon desktop, .
|-
| Terminal || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] ||
|-
| [[Status/VirtualKeyboard|Virtual keyboard]] || OK || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work fine for all devices
|-
| [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Works out of the box. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7
|-
| Bluetooth || No(t yet) || ? ||
|-
| [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily. Some also use netsurf-gtk.
|-
| Audio || WIP || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio ; will need to import alsa-policy-enforcement, port OHM
|-
| Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] ||
|-
| [[Status/USB Peripheral|USB Peripheral]] || OK || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv
|-
| LED control || OK || mce || Works on the N900 - make sure the notifications are enabled in settings.
|-
| [[Status/Mobile Data|Mobile Data]] || WIP || [https://github.com/maemo-leste/connui-cellular connui-cellular] [https://github.com/maemo-leste/libicd-network-ofono libicd-network-ofono] || There is basic libicd-network-ofono, connui-cellular is being ported to ofono
|-
| [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed
|-
| [[Status/SMS|SMS]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue]
|-
| [[Status/Phone Calls|Phone Calls]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue]
|-
| [[Status/Application Manager|Application Manager]] || WIP || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || Mostly works, but needs serious testing [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue]
|-
| [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue]
|-
| [[Status/Games|Games & Entertainment]] || WIP || SDL, existing games || [https://github.com/maemo-leste/bugtracker/issues/18 sdl fullscreen] [https://github.com/maemo-leste/bugtracker/issues/238 game importing]
|}
16c6bf9b08889b6ce0c769bcf36ae042565fe528
510
509
2020-01-05T01:24:51Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
For Device specific status pages, see See [[:Category:Device]]
The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device
{| class="wikitable"
! Feature
! Status
! Leste software
! Notes
|-
| Desktop environment || OK || hildon || hildon home, hildon desktop, .
|-
| Terminal || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] ||
|-
| [[Status/VirtualKeyboard|Virtual keyboard]] || OK || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work fine for all devices
|-
| [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Works out of the box. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7
|-
| Bluetooth || No(t yet) || ? ||
|-
| [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily. Some also use netsurf-gtk.
|-
| Audio || WIP || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio ; will need to import alsa-policy-enforcement, port OHM
|-
| Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] ||
|-
| [[Status/USB Peripheral|USB Peripheral]] || OK || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv
|-
| LED control || OK || mce || Works on the N900 - make sure the notifications are enabled in settings.
|-
| [[Status/Mobile Data|Mobile Data]] || WIP || [https://github.com/maemo-leste/connui-cellular connui-cellular] [https://github.com/maemo-leste/libicd-network-ofono libicd-network-ofono] || There is basic libicd-network-ofono, connui-cellular is being ported to ofono
|-
| [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed
|-
| [[Status/SMS|SMS]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue]
|-
| [[Status/Phone Calls|Phone Calls]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue]
|-
| [[Status/Application Manager|Application Manager]] || WIP || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || Mostly works, but needs serious testing [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue]
|-
| [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue]
|-
| [[Status/PDF Viewer|PDF Viewer]] || Mostly works || osso-pdf-viewer || [https://github.com/maemo-leste/osso-pdf-viewer osso-pdf-viewer]
|-
| [[Status/Games|Games & Entertainment]] || WIP || SDL, existing games || [https://github.com/maemo-leste/bugtracker/issues/18 sdl fullscreen] [https://github.com/maemo-leste/bugtracker/issues/238 game importing]
|}
308d2deaadd4c6b29ae1bc5996e0473c5c94334c
518
510
2020-01-12T20:26:14Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
For Device specific status pages, see See [[:Category:Device]]
The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device
{| class="wikitable"
! Feature
! Status
! Leste software
! Notes
|-
| Desktop environment || OK || hildon || hildon home, hildon desktop, .
|-
| Terminal || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] ||
|-
| [[Status/VirtualKeyboard|Virtual keyboard]] || OK || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work fine for all devices
|-
| [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Works out of the box. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7
|-
| Bluetooth || No(t yet) || ? ||
|-
| [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily. Some also use netsurf-gtk.
|-
| Audio || WIP || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio ; will need to import alsa-policy-enforcement, port OHM
|-
| Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] ||
|-
| [[Status/USB Peripheral|USB Peripheral]] || OK || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv
|-
| LED control || OK || mce || Works on the N900 - make sure the notifications are enabled in settings.
|-
| [[Status/Mobile Data|Mobile Data]] || WIP || [https://github.com/maemo-leste/connui-cellular connui-cellular] [https://github.com/maemo-leste/libicd-network-ofono libicd-network-ofono] || There is basic libicd-network-ofono, connui-cellular is being ported to ofono
|-
| [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed
|-
| [[Status/SMS|SMS]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue]
|-
| [[Status/Phone Calls|Phone Calls]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue]
|-
| [[Status/Application Manager|Application Manager]] || WIP || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || Mostly works, but needs serious testing [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue]
|-
| [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue]
|-
| [[Status/PDF Viewer|PDF Viewer]] || Mostly works || osso-pdf-viewer || [https://github.com/maemo-leste/osso-pdf-viewer osso-pdf-viewer]
|-
| [[Status/Games|Games & Entertainment]] || OK || Works (available in [[Leste Extras]] || [https://github.com/maemo-leste/bugtracker/issues/18 sdl fullscreen] [https://github.com/maemo-leste/bugtracker/issues/238 game importing]
|}
a58493f65ee64cb6d9448b1fbb8984be0d019ded
Development
0
61
511
481
2020-01-05T11:27:25Z
Spinal
13
Rename section MultiArch -> CrossCompiling to make it more comprehensive
wikitext
text/x-wiki
Maemo Leste development is split up in a few different places.
== Communication and organising ==
* Our https://maemo-leste.github.io website is where we post (news) updates, as well as on talk.maemo.org (see this subforum https://talk.maemo.org/forumdisplay.php?f=66 and this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192)
* There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker
* The day-to-day development and user chatter mostly takes place in the [[IRC channel]]
* We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
* This wiki: for documenting the status of various long-running projects, status per device, etc.
== Task Summary ==
For current (semi) impactful tasks, see
[[Development/Tasks]]
== Codename ==
* Maemo Leste is currently based on Devuan Ascii, which is based on Debian Stretch.
* Maemo Leste will be rebased (in the near future) to Devuan Beowulf, which is based on Debian Buster.
== Guides ==
* [[Development/Porting Packages]]
* [[Development/Building Packages]]
* [[Development/Modified Software]]
* [[Development/Device Bringup]]
== Technical ==
All our git repositories can be found here: https://github.com/maemo-leste
=== Jenkins ===
To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/
=== Developing on a device ===
Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM)
The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]].
=== CrossCompiling ===
Multiarch is an ability present on modern Debian systems that allows you to develop for Maemo Leste using your PC/Mac/Notebook etc.
Here we show how you can easily setup a multiarch environment and build some packages on a Debian system.
This can be adapted to develop on other systems as well. If you have such experience, please feel free to expand this section to help more people be involved in Maemo Leste development.
# Make a container for our development system
DIR=/var/lib/container/stretch
sudo apt-get install qemu-user-static debootstrap &&
sudo debootstrap stretch $DIR http://deb.debian.org/debian &&
echo "strech_cross" | sudo tee $DIR/etc/debian_chroot &&
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR
# Setup build environment inside the container
cat >> ~/.bashrc << EOF &&
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
export CC=arm-linux-gnueabihf-gcc
EOF
dpkg --add-architecture armhf &&
apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates &&
cat >> /etc/apt/sources.list << "EOF" &&
deb http://maedevu.maemo.org/leste leste main contrib non-free n900
deb http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900
deb-src http://deb.debian.org/debian stretch main
deb-src http://maedevu.maemo.org/leste leste main contrib non-free n900
deb-src http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900
EOF
wget https://maedevu.maemo.org/testing-key.asc &&
apt-key add testing-key.asc &&
rm -f testing-key.asc &&
rm -f /var/cache/apt/archives/*.deb &&
apt-get update &&
exec bash
# Build Xorg for Nokia N900
apt-get source xserver-xorg-core &&
cd xorg-server-1.19.2 &&
wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch &&
mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches &&
echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series &&
apt-get -y build-dep -a armhf . &&
time dpkg-buildpackage -aarmhf -j4 -b &&
echo OK || echo FAIL
To login the container later, issue the command:
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch
If you wish to remove the container, just delete the directory we created:
sudo rm -fr /var/lib/container/stretch
=== Cross-distro solution for development inside an ARM/ARM64 chroot on a PC ===
It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices.
1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]:
$ sudo apt-get install qemu-user-static binfmt-support
The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''':
$ sudo update-binfmts --display qemu-arm
qemu-arm (enabled):
package = qemu-user-static
type = magic
offset = 0
magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00
mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff
interpreter = /usr/bin/qemu-arm-static
detector =
2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it:
$ mkdir leste-arm64
$ cd leste-arm64
$ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf -
3. From the same directory, configure the chroot with a few resources from your host system:
$ sudo mount -t proc proc proc
$ sudo mount -o bind /dev dev
$ sudo mount -o bind /dev/pts dev/pts
4. From the same directory, create a symlink for the mount table:
$ sudo ln -s /proc/mounts etc/mtab
5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user:
$ sudo LC_ALL=C chroot . /bin/su - user
You'll now be ready to use your Maemo Leste ARM64 development environment:
$ uname -m
aarch64
Once you have finished with it, you can exit and unmount the resources you previously mounted:
$ exit
$ sudo umount dev/pts dev proc
=== TODO ===
* Discuss where people look to pick up issues (clear answer is the bugtracker, but still)
* How people can make changes and how to send them in
c7afbc1a93b4a29a8678692733cf52f4597b246b
531
511
2020-01-15T23:39:36Z
Spinal
13
/* CrossCompiling */ Rename to Crossbuilding
wikitext
text/x-wiki
Maemo Leste development is split up in a few different places.
== Communication and organising ==
* Our https://maemo-leste.github.io website is where we post (news) updates, as well as on talk.maemo.org (see this subforum https://talk.maemo.org/forumdisplay.php?f=66 and this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192)
* There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker
* The day-to-day development and user chatter mostly takes place in the [[IRC channel]]
* We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
* This wiki: for documenting the status of various long-running projects, status per device, etc.
== Task Summary ==
For current (semi) impactful tasks, see
[[Development/Tasks]]
== Codename ==
* Maemo Leste is currently based on Devuan Ascii, which is based on Debian Stretch.
* Maemo Leste will be rebased (in the near future) to Devuan Beowulf, which is based on Debian Buster.
== Guides ==
* [[Development/Porting Packages]]
* [[Development/Building Packages]]
* [[Development/Modified Software]]
* [[Development/Device Bringup]]
== Technical ==
All our git repositories can be found here: https://github.com/maemo-leste
=== Jenkins ===
To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/
=== Developing on a device ===
Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM)
The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]].
=== Crossbuilding ===
Multiarch is an ability present on modern Debian systems that allows you to develop for Maemo Leste using your PC/Mac/Notebook etc.
Here we show how you can easily setup a multiarch environment and build some packages on a Debian system.
This can be adapted to develop on other systems as well. If you have such experience, please feel free to expand this section to help more people be involved in Maemo Leste development.
# Make a container for our development system
DIR=/var/lib/container/stretch
sudo apt-get install qemu-user-static debootstrap &&
sudo debootstrap stretch $DIR http://deb.debian.org/debian &&
echo "strech_cross" | sudo tee $DIR/etc/debian_chroot &&
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR
# Setup build environment inside the container
cat >> ~/.bashrc << EOF &&
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
export CC=arm-linux-gnueabihf-gcc
EOF
dpkg --add-architecture armhf &&
apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates &&
cat >> /etc/apt/sources.list << "EOF" &&
deb http://maedevu.maemo.org/leste leste main contrib non-free n900
deb http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900
deb-src http://deb.debian.org/debian stretch main
deb-src http://maedevu.maemo.org/leste leste main contrib non-free n900
deb-src http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900
EOF
wget https://maedevu.maemo.org/testing-key.asc &&
apt-key add testing-key.asc &&
rm -f testing-key.asc &&
rm -f /var/cache/apt/archives/*.deb &&
apt-get update &&
exec bash
# Build Xorg for Nokia N900
apt-get source xserver-xorg-core &&
cd xorg-server-1.19.2 &&
wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch &&
mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches &&
echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series &&
apt-get -y build-dep -a armhf . &&
time dpkg-buildpackage -aarmhf -j4 -b &&
echo OK || echo FAIL
To login the container later, issue the command:
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch
If you wish to remove the container, just delete the directory we created:
sudo rm -fr /var/lib/container/stretch
=== Cross-distro solution for development inside an ARM/ARM64 chroot on a PC ===
It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices.
1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]:
$ sudo apt-get install qemu-user-static binfmt-support
The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''':
$ sudo update-binfmts --display qemu-arm
qemu-arm (enabled):
package = qemu-user-static
type = magic
offset = 0
magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00
mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff
interpreter = /usr/bin/qemu-arm-static
detector =
2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it:
$ mkdir leste-arm64
$ cd leste-arm64
$ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf -
3. From the same directory, configure the chroot with a few resources from your host system:
$ sudo mount -t proc proc proc
$ sudo mount -o bind /dev dev
$ sudo mount -o bind /dev/pts dev/pts
4. From the same directory, create a symlink for the mount table:
$ sudo ln -s /proc/mounts etc/mtab
5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user:
$ sudo LC_ALL=C chroot . /bin/su - user
You'll now be ready to use your Maemo Leste ARM64 development environment:
$ uname -m
aarch64
Once you have finished with it, you can exit and unmount the resources you previously mounted:
$ exit
$ sudo umount dev/pts dev proc
=== TODO ===
* Discuss where people look to pick up issues (clear answer is the bugtracker, but still)
* How people can make changes and how to send them in
ff0d170768e5296aeb16b32e051d40d3ed4b1fa3
532
531
2020-01-15T23:40:41Z
Spinal
13
/* Crossbuilding */ Minor addition
wikitext
text/x-wiki
Maemo Leste development is split up in a few different places.
== Communication and organising ==
* Our https://maemo-leste.github.io website is where we post (news) updates, as well as on talk.maemo.org (see this subforum https://talk.maemo.org/forumdisplay.php?f=66 and this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192)
* There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker
* The day-to-day development and user chatter mostly takes place in the [[IRC channel]]
* We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
* This wiki: for documenting the status of various long-running projects, status per device, etc.
== Task Summary ==
For current (semi) impactful tasks, see
[[Development/Tasks]]
== Codename ==
* Maemo Leste is currently based on Devuan Ascii, which is based on Debian Stretch.
* Maemo Leste will be rebased (in the near future) to Devuan Beowulf, which is based on Debian Buster.
== Guides ==
* [[Development/Porting Packages]]
* [[Development/Building Packages]]
* [[Development/Modified Software]]
* [[Development/Device Bringup]]
== Technical ==
All our git repositories can be found here: https://github.com/maemo-leste
=== Jenkins ===
To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/
=== Developing on a device ===
Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM)
The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]].
=== Crossbuilding ===
Multiarch is an ability present on modern Debian systems that allows you to develop for Maemo Leste using your powerful PC/Mac/Notebook etc.
Here we show how you can easily setup a multiarch environment and build some packages on a Debian system.
This can be adapted to develop on other systems as well. If you have such experience, please feel free to expand this section to help more people be involved in Maemo Leste development.
# Make a container for our development system
DIR=/var/lib/container/stretch
sudo apt-get install qemu-user-static debootstrap &&
sudo debootstrap stretch $DIR http://deb.debian.org/debian &&
echo "strech_cross" | sudo tee $DIR/etc/debian_chroot &&
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR
# Setup build environment inside the container
cat >> ~/.bashrc << EOF &&
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
export CC=arm-linux-gnueabihf-gcc
EOF
dpkg --add-architecture armhf &&
apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates &&
cat >> /etc/apt/sources.list << "EOF" &&
deb http://maedevu.maemo.org/leste leste main contrib non-free n900
deb http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900
deb-src http://deb.debian.org/debian stretch main
deb-src http://maedevu.maemo.org/leste leste main contrib non-free n900
deb-src http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900
EOF
wget https://maedevu.maemo.org/testing-key.asc &&
apt-key add testing-key.asc &&
rm -f testing-key.asc &&
rm -f /var/cache/apt/archives/*.deb &&
apt-get update &&
exec bash
# Build Xorg for Nokia N900
apt-get source xserver-xorg-core &&
cd xorg-server-1.19.2 &&
wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch &&
mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches &&
echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series &&
apt-get -y build-dep -a armhf . &&
time dpkg-buildpackage -aarmhf -j4 -b &&
echo OK || echo FAIL
To login the container later, issue the command:
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch
If you wish to remove the container, just delete the directory we created:
sudo rm -fr /var/lib/container/stretch
=== Cross-distro solution for development inside an ARM/ARM64 chroot on a PC ===
It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices.
1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]:
$ sudo apt-get install qemu-user-static binfmt-support
The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''':
$ sudo update-binfmts --display qemu-arm
qemu-arm (enabled):
package = qemu-user-static
type = magic
offset = 0
magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00
mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff
interpreter = /usr/bin/qemu-arm-static
detector =
2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it:
$ mkdir leste-arm64
$ cd leste-arm64
$ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf -
3. From the same directory, configure the chroot with a few resources from your host system:
$ sudo mount -t proc proc proc
$ sudo mount -o bind /dev dev
$ sudo mount -o bind /dev/pts dev/pts
4. From the same directory, create a symlink for the mount table:
$ sudo ln -s /proc/mounts etc/mtab
5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user:
$ sudo LC_ALL=C chroot . /bin/su - user
You'll now be ready to use your Maemo Leste ARM64 development environment:
$ uname -m
aarch64
Once you have finished with it, you can exit and unmount the resources you previously mounted:
$ exit
$ sudo umount dev/pts dev proc
=== TODO ===
* Discuss where people look to pick up issues (clear answer is the bugtracker, but still)
* How people can make changes and how to send them in
1bd653abf15993105b309cb6a4ecaeb2efd05757
533
532
2020-01-15T23:50:32Z
Spinal
13
/* Crossbuilding */ Trying to make this part more understandable
wikitext
text/x-wiki
Maemo Leste development is split up in a few different places.
== Communication and organising ==
* Our https://maemo-leste.github.io website is where we post (news) updates, as well as on talk.maemo.org (see this subforum https://talk.maemo.org/forumdisplay.php?f=66 and this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192)
* There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker
* The day-to-day development and user chatter mostly takes place in the [[IRC channel]]
* We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
* This wiki: for documenting the status of various long-running projects, status per device, etc.
== Task Summary ==
For current (semi) impactful tasks, see
[[Development/Tasks]]
== Codename ==
* Maemo Leste is currently based on Devuan Ascii, which is based on Debian Stretch.
* Maemo Leste will be rebased (in the near future) to Devuan Beowulf, which is based on Debian Buster.
== Guides ==
* [[Development/Porting Packages]]
* [[Development/Building Packages]]
* [[Development/Modified Software]]
* [[Development/Device Bringup]]
== Technical ==
All our git repositories can be found here: https://github.com/maemo-leste
=== Jenkins ===
To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/
=== Developing on a device ===
Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM)
The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]].
=== Crossbuilding ===
Multiarch is an ability present on modern Debian systems that allows you to build native packages for different architectures. This is nice because you can build packages for an ARM based phone using the full power of your PC/Mac/Notebook or a server.
Here we show how you can easily setup a multiarch environment and build some packages on a Debian system.
This can be adapted to develop on other systems as well. If you have such experience, please feel free to expand this section to help more people be involved in Maemo Leste development.
# Make a container for our development system
DIR=/var/lib/container/stretch
sudo apt-get install qemu-user-static debootstrap &&
sudo debootstrap stretch $DIR http://deb.debian.org/debian &&
echo "strech_cross" | sudo tee $DIR/etc/debian_chroot &&
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR
# Setup build environment inside the container
cat >> ~/.bashrc << EOF &&
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
export CC=arm-linux-gnueabihf-gcc
EOF
dpkg --add-architecture armhf &&
apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates &&
cat >> /etc/apt/sources.list << "EOF" &&
deb http://maedevu.maemo.org/leste leste main contrib non-free n900
deb http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900
deb-src http://deb.debian.org/debian stretch main
deb-src http://maedevu.maemo.org/leste leste main contrib non-free n900
deb-src http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900
EOF
wget https://maedevu.maemo.org/testing-key.asc &&
apt-key add testing-key.asc &&
rm -f testing-key.asc &&
rm -f /var/cache/apt/archives/*.deb &&
apt-get update &&
exec bash
# Build Xorg for Nokia N900
apt-get source xserver-xorg-core &&
cd xorg-server-1.19.2 &&
wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch &&
mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches &&
echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series &&
apt-get -y build-dep -a armhf . &&
time dpkg-buildpackage -aarmhf -j4 -b &&
echo OK || echo FAIL
To login the container later, issue the command:
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch
If you wish to remove the container, just delete the directory we created:
sudo rm -fr /var/lib/container/stretch
=== Cross-distro solution for development inside an ARM/ARM64 chroot on a PC ===
It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices.
1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]:
$ sudo apt-get install qemu-user-static binfmt-support
The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''':
$ sudo update-binfmts --display qemu-arm
qemu-arm (enabled):
package = qemu-user-static
type = magic
offset = 0
magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00
mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff
interpreter = /usr/bin/qemu-arm-static
detector =
2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it:
$ mkdir leste-arm64
$ cd leste-arm64
$ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf -
3. From the same directory, configure the chroot with a few resources from your host system:
$ sudo mount -t proc proc proc
$ sudo mount -o bind /dev dev
$ sudo mount -o bind /dev/pts dev/pts
4. From the same directory, create a symlink for the mount table:
$ sudo ln -s /proc/mounts etc/mtab
5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user:
$ sudo LC_ALL=C chroot . /bin/su - user
You'll now be ready to use your Maemo Leste ARM64 development environment:
$ uname -m
aarch64
Once you have finished with it, you can exit and unmount the resources you previously mounted:
$ exit
$ sudo umount dev/pts dev proc
=== TODO ===
* Discuss where people look to pick up issues (clear answer is the bugtracker, but still)
* How people can make changes and how to send them in
ec008606d7f770b5273a0a301f53b6f7f7f34b10
534
533
2020-01-15T23:51:31Z
Spinal
13
/* Crossbuilding */ Minor addition
wikitext
text/x-wiki
Maemo Leste development is split up in a few different places.
== Communication and organising ==
* Our https://maemo-leste.github.io website is where we post (news) updates, as well as on talk.maemo.org (see this subforum https://talk.maemo.org/forumdisplay.php?f=66 and this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192)
* There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker
* The day-to-day development and user chatter mostly takes place in the [[IRC channel]]
* We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
* This wiki: for documenting the status of various long-running projects, status per device, etc.
== Task Summary ==
For current (semi) impactful tasks, see
[[Development/Tasks]]
== Codename ==
* Maemo Leste is currently based on Devuan Ascii, which is based on Debian Stretch.
* Maemo Leste will be rebased (in the near future) to Devuan Beowulf, which is based on Debian Buster.
== Guides ==
* [[Development/Porting Packages]]
* [[Development/Building Packages]]
* [[Development/Modified Software]]
* [[Development/Device Bringup]]
== Technical ==
All our git repositories can be found here: https://github.com/maemo-leste
=== Jenkins ===
To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/
=== Developing on a device ===
Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM)
The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]].
=== Crossbuilding ===
Multiarch is an ability present on modern Debian systems that allows you to build native packages for different architectures. This is nice because you can build packages for an ARM based phone using the full power of your x86 based PC/Mac/Notebook or a server.
Here we show how you can easily setup a multiarch environment and build some packages on a Debian system.
This can be adapted to develop on other systems as well. If you have such experience, please feel free to expand this section to help more people be involved in Maemo Leste development.
# Make a container for our development system
DIR=/var/lib/container/stretch
sudo apt-get install qemu-user-static debootstrap &&
sudo debootstrap stretch $DIR http://deb.debian.org/debian &&
echo "strech_cross" | sudo tee $DIR/etc/debian_chroot &&
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR
# Setup build environment inside the container
cat >> ~/.bashrc << EOF &&
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
export CC=arm-linux-gnueabihf-gcc
EOF
dpkg --add-architecture armhf &&
apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates &&
cat >> /etc/apt/sources.list << "EOF" &&
deb http://maedevu.maemo.org/leste leste main contrib non-free n900
deb http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900
deb-src http://deb.debian.org/debian stretch main
deb-src http://maedevu.maemo.org/leste leste main contrib non-free n900
deb-src http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900
EOF
wget https://maedevu.maemo.org/testing-key.asc &&
apt-key add testing-key.asc &&
rm -f testing-key.asc &&
rm -f /var/cache/apt/archives/*.deb &&
apt-get update &&
exec bash
# Build Xorg for Nokia N900
apt-get source xserver-xorg-core &&
cd xorg-server-1.19.2 &&
wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch &&
mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches &&
echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series &&
apt-get -y build-dep -a armhf . &&
time dpkg-buildpackage -aarmhf -j4 -b &&
echo OK || echo FAIL
To login the container later, issue the command:
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch
If you wish to remove the container, just delete the directory we created:
sudo rm -fr /var/lib/container/stretch
=== Cross-distro solution for development inside an ARM/ARM64 chroot on a PC ===
It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices.
1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]:
$ sudo apt-get install qemu-user-static binfmt-support
The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''':
$ sudo update-binfmts --display qemu-arm
qemu-arm (enabled):
package = qemu-user-static
type = magic
offset = 0
magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00
mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff
interpreter = /usr/bin/qemu-arm-static
detector =
2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it:
$ mkdir leste-arm64
$ cd leste-arm64
$ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf -
3. From the same directory, configure the chroot with a few resources from your host system:
$ sudo mount -t proc proc proc
$ sudo mount -o bind /dev dev
$ sudo mount -o bind /dev/pts dev/pts
4. From the same directory, create a symlink for the mount table:
$ sudo ln -s /proc/mounts etc/mtab
5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user:
$ sudo LC_ALL=C chroot . /bin/su - user
You'll now be ready to use your Maemo Leste ARM64 development environment:
$ uname -m
aarch64
Once you have finished with it, you can exit and unmount the resources you previously mounted:
$ exit
$ sudo umount dev/pts dev proc
=== TODO ===
* Discuss where people look to pick up issues (clear answer is the bugtracker, but still)
* How people can make changes and how to send them in
157139a5fafe4fd719278ceb16910ea84d43c665
535
534
2020-01-16T00:01:33Z
Spinal
13
/* Crossbuilding */ Make explanations more simple and clear
wikitext
text/x-wiki
Maemo Leste development is split up in a few different places.
== Communication and organising ==
* Our https://maemo-leste.github.io website is where we post (news) updates, as well as on talk.maemo.org (see this subforum https://talk.maemo.org/forumdisplay.php?f=66 and this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192)
* There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker
* The day-to-day development and user chatter mostly takes place in the [[IRC channel]]
* We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
* This wiki: for documenting the status of various long-running projects, status per device, etc.
== Task Summary ==
For current (semi) impactful tasks, see
[[Development/Tasks]]
== Codename ==
* Maemo Leste is currently based on Devuan Ascii, which is based on Debian Stretch.
* Maemo Leste will be rebased (in the near future) to Devuan Beowulf, which is based on Debian Buster.
== Guides ==
* [[Development/Porting Packages]]
* [[Development/Building Packages]]
* [[Development/Modified Software]]
* [[Development/Device Bringup]]
== Technical ==
All our git repositories can be found here: https://github.com/maemo-leste
=== Jenkins ===
To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/
=== Developing on a device ===
Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM)
The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]].
=== Crossbuilding ===
Multiarch is an ability present on modern Debian systems that allows you to build native packages for different architectures. This is nice because you can build packages for an ARM based phone using the full power of your x86 based PC/Mac/Notebook or a server.
Here we show how you can easily setup a multiarch environment and build a native package for Maemo Leste running on Nokia N900. We are going to make a container (chroot) for this job. It's because we don't want to pollute our main system. The container can easily be removed later.
# Make a container for our development system
DIR=/var/lib/container/stretch
sudo apt-get install qemu-user-static debootstrap &&
sudo debootstrap stretch $DIR http://deb.debian.org/debian &&
echo "strech_cross" | sudo tee $DIR/etc/debian_chroot &&
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR
# Setup build environment inside the container
cat >> ~/.bashrc << EOF &&
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
export CC=arm-linux-gnueabihf-gcc
EOF
dpkg --add-architecture armhf &&
apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates &&
cat >> /etc/apt/sources.list << "EOF" &&
deb http://maedevu.maemo.org/leste leste main contrib non-free n900
deb http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900
deb-src http://deb.debian.org/debian stretch main
deb-src http://maedevu.maemo.org/leste leste main contrib non-free n900
deb-src http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900
EOF
wget https://maedevu.maemo.org/testing-key.asc &&
apt-key add testing-key.asc &&
rm -f testing-key.asc &&
rm -f /var/cache/apt/archives/*.deb &&
apt-get update &&
exec bash
# Build Xorg for Nokia N900
apt-get source xserver-xorg-core &&
cd xorg-server-1.19.2 &&
wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch &&
mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches &&
echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series &&
apt-get -y build-dep -a armhf . &&
time dpkg-buildpackage -aarmhf -j4 -b &&
echo OK || echo FAIL
To login the container later, issue the command:
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch
If you wish to remove the container, just delete the directory we created:
sudo rm -fr /var/lib/container/stretch
=== Cross-distro solution for development inside an ARM/ARM64 chroot on a PC ===
It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices.
1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]:
$ sudo apt-get install qemu-user-static binfmt-support
The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''':
$ sudo update-binfmts --display qemu-arm
qemu-arm (enabled):
package = qemu-user-static
type = magic
offset = 0
magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00
mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff
interpreter = /usr/bin/qemu-arm-static
detector =
2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it:
$ mkdir leste-arm64
$ cd leste-arm64
$ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf -
3. From the same directory, configure the chroot with a few resources from your host system:
$ sudo mount -t proc proc proc
$ sudo mount -o bind /dev dev
$ sudo mount -o bind /dev/pts dev/pts
4. From the same directory, create a symlink for the mount table:
$ sudo ln -s /proc/mounts etc/mtab
5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user:
$ sudo LC_ALL=C chroot . /bin/su - user
You'll now be ready to use your Maemo Leste ARM64 development environment:
$ uname -m
aarch64
Once you have finished with it, you can exit and unmount the resources you previously mounted:
$ exit
$ sudo umount dev/pts dev proc
=== TODO ===
* Discuss where people look to pick up issues (clear answer is the bugtracker, but still)
* How people can make changes and how to send them in
7572a8360cf02d7e24891e2eb62eb6b2db6ff3b7
536
535
2020-01-16T00:03:34Z
Spinal
13
/* Crossbuilding */ Change the word order
wikitext
text/x-wiki
Maemo Leste development is split up in a few different places.
== Communication and organising ==
* Our https://maemo-leste.github.io website is where we post (news) updates, as well as on talk.maemo.org (see this subforum https://talk.maemo.org/forumdisplay.php?f=66 and this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192)
* There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker
* The day-to-day development and user chatter mostly takes place in the [[IRC channel]]
* We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
* This wiki: for documenting the status of various long-running projects, status per device, etc.
== Task Summary ==
For current (semi) impactful tasks, see
[[Development/Tasks]]
== Codename ==
* Maemo Leste is currently based on Devuan Ascii, which is based on Debian Stretch.
* Maemo Leste will be rebased (in the near future) to Devuan Beowulf, which is based on Debian Buster.
== Guides ==
* [[Development/Porting Packages]]
* [[Development/Building Packages]]
* [[Development/Modified Software]]
* [[Development/Device Bringup]]
== Technical ==
All our git repositories can be found here: https://github.com/maemo-leste
=== Jenkins ===
To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/
=== Developing on a device ===
Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM)
The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]].
=== Crossbuilding ===
Multiarch is an ability present on modern Debian systems that allows you to build native packages for different architectures. This is nice because you can build packages for an ARM based phone using the full power of your x86 based PC/Mac/Notebook or a server.
Here we show how you can easily setup a multiarch environment and build a native package for Maemo Leste running on Nokia N900. We are going to make a container (chroot) for this job. It's because we don't want to pollute our main system. The container can be easily removed later.
# Make a container for our development system
DIR=/var/lib/container/stretch
sudo apt-get install qemu-user-static debootstrap &&
sudo debootstrap stretch $DIR http://deb.debian.org/debian &&
echo "strech_cross" | sudo tee $DIR/etc/debian_chroot &&
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR
# Setup build environment inside the container
cat >> ~/.bashrc << EOF &&
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
export CC=arm-linux-gnueabihf-gcc
EOF
dpkg --add-architecture armhf &&
apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates &&
cat >> /etc/apt/sources.list << "EOF" &&
deb http://maedevu.maemo.org/leste leste main contrib non-free n900
deb http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900
deb-src http://deb.debian.org/debian stretch main
deb-src http://maedevu.maemo.org/leste leste main contrib non-free n900
deb-src http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900
EOF
wget https://maedevu.maemo.org/testing-key.asc &&
apt-key add testing-key.asc &&
rm -f testing-key.asc &&
rm -f /var/cache/apt/archives/*.deb &&
apt-get update &&
exec bash
# Build Xorg for Nokia N900
apt-get source xserver-xorg-core &&
cd xorg-server-1.19.2 &&
wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch &&
mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches &&
echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series &&
apt-get -y build-dep -a armhf . &&
time dpkg-buildpackage -aarmhf -j4 -b &&
echo OK || echo FAIL
To login the container later, issue the command:
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch
If you wish to remove the container, just delete the directory we created:
sudo rm -fr /var/lib/container/stretch
=== Cross-distro solution for development inside an ARM/ARM64 chroot on a PC ===
It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices.
1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]:
$ sudo apt-get install qemu-user-static binfmt-support
The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''':
$ sudo update-binfmts --display qemu-arm
qemu-arm (enabled):
package = qemu-user-static
type = magic
offset = 0
magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00
mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff
interpreter = /usr/bin/qemu-arm-static
detector =
2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it:
$ mkdir leste-arm64
$ cd leste-arm64
$ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf -
3. From the same directory, configure the chroot with a few resources from your host system:
$ sudo mount -t proc proc proc
$ sudo mount -o bind /dev dev
$ sudo mount -o bind /dev/pts dev/pts
4. From the same directory, create a symlink for the mount table:
$ sudo ln -s /proc/mounts etc/mtab
5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user:
$ sudo LC_ALL=C chroot . /bin/su - user
You'll now be ready to use your Maemo Leste ARM64 development environment:
$ uname -m
aarch64
Once you have finished with it, you can exit and unmount the resources you previously mounted:
$ exit
$ sudo umount dev/pts dev proc
=== TODO ===
* Discuss where people look to pick up issues (clear answer is the bugtracker, but still)
* How people can make changes and how to send them in
20e063c385060f1c2dd07ba21c50ffb6cbad0ad5
537
536
2020-01-16T00:06:08Z
Spinal
13
/* Crossbuilding */ Shorten text
wikitext
text/x-wiki
Maemo Leste development is split up in a few different places.
== Communication and organising ==
* Our https://maemo-leste.github.io website is where we post (news) updates, as well as on talk.maemo.org (see this subforum https://talk.maemo.org/forumdisplay.php?f=66 and this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192)
* There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker
* The day-to-day development and user chatter mostly takes place in the [[IRC channel]]
* We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
* This wiki: for documenting the status of various long-running projects, status per device, etc.
== Task Summary ==
For current (semi) impactful tasks, see
[[Development/Tasks]]
== Codename ==
* Maemo Leste is currently based on Devuan Ascii, which is based on Debian Stretch.
* Maemo Leste will be rebased (in the near future) to Devuan Beowulf, which is based on Debian Buster.
== Guides ==
* [[Development/Porting Packages]]
* [[Development/Building Packages]]
* [[Development/Modified Software]]
* [[Development/Device Bringup]]
== Technical ==
All our git repositories can be found here: https://github.com/maemo-leste
=== Jenkins ===
To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/
=== Developing on a device ===
Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM)
The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]].
=== Crossbuilding ===
Multiarch is an ability present on modern Debian systems that allows you to build native packages for different architectures. This is nice because you can build packages for an ARM based phone using the full power of your x86 based PC/Mac/Notebook or a server.
Here we show how you can easily setup a multiarch environment and build a native package for Maemo Leste running on Nokia N900. We are going to make a container (chroot) for this job. It's because we don't want to pollute our main system. The container can be easily removed later.
# Make a container for our development system
DIR=/var/lib/container/stretch
sudo apt-get install qemu-user-static debootstrap &&
sudo debootstrap stretch $DIR http://deb.debian.org/debian &&
echo "strech_cross" | sudo tee $DIR/etc/debian_chroot &&
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR
# Setup build environment inside the container
cat >> ~/.bashrc << EOF &&
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
export CC=arm-linux-gnueabihf-gcc
EOF
dpkg --add-architecture armhf &&
apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates &&
cat >> /etc/apt/sources.list << "EOF" &&
deb http://maedevu.maemo.org/leste leste main contrib non-free n900
deb http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900
deb-src http://deb.debian.org/debian stretch main
deb-src http://maedevu.maemo.org/leste leste main contrib non-free n900
deb-src http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900
EOF
wget https://maedevu.maemo.org/testing-key.asc &&
apt-key add testing-key.asc &&
rm -f testing-key.asc &&
rm -f /var/cache/apt/archives/*.deb &&
apt-get update &&
exec bash
# Build Xorg for Nokia N900
apt-get source xserver-xorg-core &&
cd xorg-server-1.19.2 &&
wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch &&
mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches &&
echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series &&
apt-get -y build-dep -a armhf . &&
time dpkg-buildpackage -aarmhf -j4 -b &&
echo OK || echo FAIL
To login the container later:
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch
To remove the container:
sudo rm -fr /var/lib/container/stretch
=== Cross-distro solution for development inside an ARM/ARM64 chroot on a PC ===
It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices.
1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]:
$ sudo apt-get install qemu-user-static binfmt-support
The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''':
$ sudo update-binfmts --display qemu-arm
qemu-arm (enabled):
package = qemu-user-static
type = magic
offset = 0
magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00
mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff
interpreter = /usr/bin/qemu-arm-static
detector =
2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it:
$ mkdir leste-arm64
$ cd leste-arm64
$ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf -
3. From the same directory, configure the chroot with a few resources from your host system:
$ sudo mount -t proc proc proc
$ sudo mount -o bind /dev dev
$ sudo mount -o bind /dev/pts dev/pts
4. From the same directory, create a symlink for the mount table:
$ sudo ln -s /proc/mounts etc/mtab
5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user:
$ sudo LC_ALL=C chroot . /bin/su - user
You'll now be ready to use your Maemo Leste ARM64 development environment:
$ uname -m
aarch64
Once you have finished with it, you can exit and unmount the resources you previously mounted:
$ exit
$ sudo umount dev/pts dev proc
=== TODO ===
* Discuss where people look to pick up issues (clear answer is the bugtracker, but still)
* How people can make changes and how to send them in
2dcbd83052408636448ddddb13c19f451b3167a0
538
537
2020-01-16T00:08:58Z
Spinal
13
/* Crossbuilding */ Shorten text
wikitext
text/x-wiki
Maemo Leste development is split up in a few different places.
== Communication and organising ==
* Our https://maemo-leste.github.io website is where we post (news) updates, as well as on talk.maemo.org (see this subforum https://talk.maemo.org/forumdisplay.php?f=66 and this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192)
* There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker
* The day-to-day development and user chatter mostly takes place in the [[IRC channel]]
* We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
* This wiki: for documenting the status of various long-running projects, status per device, etc.
== Task Summary ==
For current (semi) impactful tasks, see
[[Development/Tasks]]
== Codename ==
* Maemo Leste is currently based on Devuan Ascii, which is based on Debian Stretch.
* Maemo Leste will be rebased (in the near future) to Devuan Beowulf, which is based on Debian Buster.
== Guides ==
* [[Development/Porting Packages]]
* [[Development/Building Packages]]
* [[Development/Modified Software]]
* [[Development/Device Bringup]]
== Technical ==
All our git repositories can be found here: https://github.com/maemo-leste
=== Jenkins ===
To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/
=== Developing on a device ===
Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM)
The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]].
=== Crossbuilding ===
Multiarch is an ability present on modern Debian systems that allows you to build native packages for different architectures. This is nice because you can build packages for an ARM based phone using the full power of your x86 based PC/Mac/Notebook or a server.
Here we show how you can easily setup a multiarch environment and build a native package for Maemo Leste running on Nokia N900. We are going to make a container (chroot) for this job. It's because we don't want to pollute our main system.
# Make a container for our development system
DIR=/var/lib/container/stretch
sudo apt-get install qemu-user-static debootstrap &&
sudo debootstrap stretch $DIR http://deb.debian.org/debian &&
echo "strech_cross" | sudo tee $DIR/etc/debian_chroot &&
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR
# Setup build environment inside the container
cat >> ~/.bashrc << EOF &&
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
export CC=arm-linux-gnueabihf-gcc
EOF
dpkg --add-architecture armhf &&
apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates &&
cat >> /etc/apt/sources.list << "EOF" &&
deb http://maedevu.maemo.org/leste leste main contrib non-free n900
deb http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900
deb-src http://deb.debian.org/debian stretch main
deb-src http://maedevu.maemo.org/leste leste main contrib non-free n900
deb-src http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900
EOF
wget https://maedevu.maemo.org/testing-key.asc &&
apt-key add testing-key.asc &&
rm -f testing-key.asc &&
rm -f /var/cache/apt/archives/*.deb &&
apt-get update &&
exec bash
# Build Xorg for Nokia N900
apt-get source xserver-xorg-core &&
cd xorg-server-1.19.2 &&
wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch &&
mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches &&
echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series &&
apt-get -y build-dep -a armhf . &&
time dpkg-buildpackage -aarmhf -j4 -b &&
echo OK || echo FAIL
To login the container later:
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch
To remove the container:
sudo rm -fr /var/lib/container/stretch
=== Cross-distro solution for development inside an ARM/ARM64 chroot on a PC ===
It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices.
1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]:
$ sudo apt-get install qemu-user-static binfmt-support
The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''':
$ sudo update-binfmts --display qemu-arm
qemu-arm (enabled):
package = qemu-user-static
type = magic
offset = 0
magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00
mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff
interpreter = /usr/bin/qemu-arm-static
detector =
2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it:
$ mkdir leste-arm64
$ cd leste-arm64
$ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf -
3. From the same directory, configure the chroot with a few resources from your host system:
$ sudo mount -t proc proc proc
$ sudo mount -o bind /dev dev
$ sudo mount -o bind /dev/pts dev/pts
4. From the same directory, create a symlink for the mount table:
$ sudo ln -s /proc/mounts etc/mtab
5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user:
$ sudo LC_ALL=C chroot . /bin/su - user
You'll now be ready to use your Maemo Leste ARM64 development environment:
$ uname -m
aarch64
Once you have finished with it, you can exit and unmount the resources you previously mounted:
$ exit
$ sudo umount dev/pts dev proc
=== TODO ===
* Discuss where people look to pick up issues (clear answer is the bugtracker, but still)
* How people can make changes and how to send them in
49ee20695176a9f73d05e9fa9552f333a693abcf
Wishlist
0
89
512
480
2020-01-05T16:34:19Z
Capitannemo
29
/* Applications */
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
{| class="wikitable"http://maemo.org/packages/view/orecchiette/
! Package name
! Done
! Reason
! User
! URL
! Notes
|-
| osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote
|-
| pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation.
|-
| scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please
|-
| [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ ||
|-
| Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || (has also Psycho Pinball installable)
|-
| Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||http://maemo.org/packages/view/orecchiette/
|-
| Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend
|-
| PDF reader || No || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || Should not be too hard
|-
| Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port.
|-
| Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI
|-
| Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/
|-
| Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel
|-
|Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0
|-
| Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ ||
|-
| Image viewer/editor || No || || [[User:Maemish]] || ||
|-
| Mail with imap support || No || || [[User:Maemish]] || ||
|-
| RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || ||
|-
| Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ ||
|-
| OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer ||
|-
| SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net ||
|-
| Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ ||
|-
| D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ ||
|-
| Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ ||
|-
| MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms ||
|-
| Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ ||
|-
| Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed.
|-
| Firewall || No || || [[User:Maemish]] || || Something with easy configuration.
|-
| Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ ||
|-
|bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ ||
|-
| cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ ||
|-
| gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ ||
|-|-
| hamsterfiler || No || utilities/files || [[User:ric9k]] || http://maemo.org/packages/view/hamsterfiler/ ||
|-|-
| alarmed (or cron?) || No || utilities || [[User:ric9k]] || http://maemo.org/packages/view/alarmed/ ||
|-|-
| user friendly tracker || No || utilities? || [[User:ric9k]] || n/a :-) ||
|-|-
| Maps (offline) || No || Navigation || [[User:Sicelo]] || || Ideally something like https://f-droid.org/en/packages/com.github.axet.maps/ from Android, but Modrana, https://github.com/M4rtinK/modrana may be easier as a start
|-
| Orecchiette || No || utilities/phone || [[User:capitannemo]] || http://maemo.org/packages/view/orecchiette/ ||
|-
| || No || || [[User:]] || ||
|-
| || No || || [[User:]] || ||
|)
ab6e1496665ccbbb9b9eca9cfff6c2977e05bbc9
513
512
2020-01-05T16:37:32Z
Capitannemo
29
/* Applications */
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
{| class="wikitable"http://maemo.org/packages/view/orecchiette/
! Package name
! Done
! Reason
! User
! URL
! Notes
|-
| osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote
|-
| pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation.
|-
| scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please
|-
| [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ ||
|-
| Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || http://maemo.org/packages/view/orecchiette/(has also Psycho Pinball installable)
|-
| Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||http://maemo.org/packages/view/orecchiette/
|-
| Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend
|-
| PDF reader || No || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || Should not be too hard
|-
| Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port.
|-
| Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI
|-
| Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/
|-
| Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel
|-
|Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0
|-
| Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ ||
|-
| Image viewer/editor || No || || [[User:Maemish]] || ||
|-
| Mail with imap support || No || || [[User:Maemish]] || ||
|-
| RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || ||
|-
| Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ ||
|-
| OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer ||
|-
| SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net ||
|-
| Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ ||
|-
| D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ ||
|-
| Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ ||
|-
| MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms ||
|-
| Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ ||
|-
| Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed.
|-
| Firewall || No || || [[User:Maemish]] || || Something with easy configuration.
|-
| Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ ||
|-
|bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ ||
|-
| cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ ||
|-
| gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ ||
|-|-
| hamsterfiler || No || utilities/files || [[User:ric9k]] || http://maemo.org/packages/view/hamsterfiler/ ||
|-|-
| alarmed (or cron?) || No || utilities || [[User:ric9k]] || http://maemo.org/packages/view/alarmed/ ||
|-|-
| user friendly tracker || No || utilities? || [[User:ric9k]] || n/a :-) ||
|-|-
| Maps (offline) || No || Navigation || [[User:Sicelo]] || || Ideally something like https://f-droid.org/en/packages/com.github.axet.maps/ from Android, but Modrana, https://github.com/M4rtinK/modrana may be easier as a start
|-
| Orecchiette || No || utilities/phone || [[User:capitannemo]] || http://maemo.org/packages/view/orecchiette/ ||
|-
| Panucci || No || utilities/audio || [[User:capitannemo]] || http://maemo.org/packages/view/panucci/ ||
|-
| || No || || [[User:]] || ||
|-
| || No || || [[User:]] || ||
|)
fbbaede227d627264fc08af45e88039e6cd8e13c
514
513
2020-01-05T16:46:41Z
Capitannemo
29
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
{| class="wikitable"http://maemo.org/packages/view/orecchiette/
! Package name
! Done
! Reason
! User
! URL
! Notes
|-
| osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote
|-
| pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation.
|-
| scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please
|-
| [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ ||
|-
| Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || http://maemo.org/packages/view/orecchiette/(has also Psycho Pinball installable)
|-
| Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||http://maemo.org/packages/view/orecchiette/
|-
| Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend
|-
| PDF reader || No || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || Should not be too hard
|-
| Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port.
|-
| Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI
|-
| Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/
|-
| Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel
|-
|Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0
|-
| Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ ||
|-
| Image viewer/editor || No || || [[User:Maemish]] || ||
|-
| Mail with imap support || No || || [[User:Maemish]] || ||
|-
| RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || ||
|-
| Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ ||
|-
| OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer ||
|-
| SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net ||
|-
| Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ ||
|-
| D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ ||
|-
| Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ ||
|-
| MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms ||
|-
| Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ ||
|-
| Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed.
|-
| Firewall || No || || [[User:Maemish]] || || Something with easy configuration.
|-
| Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ ||
|-
|bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ ||
|-
| cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ ||
|-
| gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ ||
|-|-
| hamsterfiler || No || utilities/files || [[User:ric9k]] || http://maemo.org/packages/view/hamsterfiler/ ||
|-|-
| alarmed (or cron?) || No || utilities || [[User:ric9k]] || http://maemo.org/packages/view/alarmed/ ||
|-|-
| user friendly tracker || No || utilities? || [[User:ric9k]] || n/a :-) ||
|-|-
| Maps (offline) || No || Navigation || [[User:Sicelo]] || || Ideally something like https://f-droid.org/en/packages/com.github.axet.maps/ from Android, but Modrana, https://github.com/M4rtinK/modrana may be easier as a start
|-
| Orecchiette || No || utilities/phone || [[User:capitannemo]] || http://maemo.org/packages/view/orecchiette/ ||
|-
| Panucci || No || utilities/audio || [[User:capitannemo]] || http://maemo.org/packages/view/panucci/ ||
|-
| gPodder || No || reading/media || [[User:capitannemo]] || http://maemo.org/packages/view/gpodder/ ||
|-
| || No || || [[User:]] || ||
|-
| || No || || [[User:]] || ||
|)
f6dd50fbf44fba404a88690aa0e9d80dcae7d1a4
515
514
2020-01-06T17:00:19Z
Capitannemo
29
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
{| class="wikitable"http://maemo.org/packages/view/orecchiette/
! Package name
! Done
! Reason
! User
! URL
! Notes
|-
| osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote
|-
| pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation.
|-
| scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please
|-
| [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ ||
|-
| Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || http://maemo.org/packages/view/orecchiette/(has also Psycho Pinball installable)
|-
| Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||http://maemo.org/packages/view/orecchiette/
|-
| Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend
|-
| PDF reader || No || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || Should not be too hard
|-
| Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port.
|-
| Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI
|-
| Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/
|-
| Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel
|-
|Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0
|-
| Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ ||
|-
| Image viewer/editor || No || || [[User:Maemish]] || ||
|-
| Mail with imap support || No || || [[User:Maemish]] || ||
|-
| RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || ||
|-
| Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ ||
|-
| OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer ||
|-
| SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net ||
|-
| Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ ||
|-
| D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ ||
|-
| Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ ||
|-
| MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms ||
|-
| Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ ||
|-
| Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed.
|-
| Firewall || No || || [[User:Maemish]] || || Something with easy configuration.
|-
| Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ ||
|-
|bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ ||
|-
| cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ ||
|-
| gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ ||
|-|-
| hamsterfiler || No || utilities/files || [[User:ric9k]] || http://maemo.org/packages/view/hamsterfiler/ ||
|-|-
| alarmed (or cron?) || No || utilities || [[User:ric9k]] || http://maemo.org/packages/view/alarmed/ ||
|-|-
| user friendly tracker || No || utilities? || [[User:ric9k]] || n/a :-) ||
|-|-
| Maps (offline) || No || Navigation || [[User:Sicelo]] || || Ideally something like https://f-droid.org/en/packages/com.github.axet.maps/ from Android, but Modrana, https://github.com/M4rtinK/modrana may be easier as a start
|-
| Orecchiette || No || utilities/phone || [[User:capitannemo]] || http://maemo.org/packages/view/orecchiette/ ||
|-
| Panucci || No || utilities/audio || [[User:capitannemo]] || http://maemo.org/packages/view/panucci/ ||
|-
| gPodder || No || reading/media || [[User:capitannemo]] || http://maemo.org/packages/view/gpodder/ ||
|-
| Symfonie || No || directory-based audioplayer || [[User:capitannemo]] || http://maemo.org/packages/view/symfonie/ ||
|
| || No || || [[User:]] || ||
|-
| || No || || [[User:]] || ||
|)
253f013d55cbbbf752d5a6b0547e33dd52cf7072
516
515
2020-01-06T17:05:17Z
Capitannemo
29
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
{| class="wikitable"http://maemo.org/packages/view/orecchiette/
! Package name
! Done
! Reason
! User
! URL
! Notes
|-
| osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote
|-
| pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation.
|-
| scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please
|-
| [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ ||
|-
| Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || http://maemo.org/packages/view/orecchiette/(has also Psycho Pinball installable)
|-
| Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||http://maemo.org/packages/view/orecchiette/
|-
| Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend
|-
| PDF reader || No || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || Should not be too hard
|-
| Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port.
|-
| Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI
|-
| Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/
|-
| Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel
|-
|Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0
|-
| Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ ||
|-
| Image viewer/editor || No || || [[User:Maemish]] || ||
|-
| Mail with imap support || No || || [[User:Maemish]] || ||
|-
| RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || ||
|-
| Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ ||
|-
| OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer ||
|-
| SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net ||
|-
| Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ ||
|-
| D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ ||
|-
| Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ ||
|-
| MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms ||
|-
| Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ ||
|-
| Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed.
|-
| Firewall || No || || [[User:Maemish]] || || Something with easy configuration.
|-
| Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ ||
|-
|bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ ||
|-
| cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ ||
|-
| gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ ||
|-|-
| hamsterfiler || No || utilities/files || [[User:ric9k]] || http://maemo.org/packages/view/hamsterfiler/ ||
|-|-
| alarmed (or cron?) || No || utilities || [[User:ric9k]] || http://maemo.org/packages/view/alarmed/ ||
|-|-
| user friendly tracker || No || utilities? || [[User:ric9k]] || n/a :-) ||
|-|-
| Maps (offline) || No || Navigation || [[User:Sicelo]] || || Ideally something like https://f-droid.org/en/packages/com.github.axet.maps/ from Android, but Modrana, https://github.com/M4rtinK/modrana may be easier as a start
|-
| Orecchiette || No || calls recording || [[User:capitannemo]] || http://maemo.org/packages/view/orecchiette/ ||
|-
| Panucci || No || audiobook || [[User:capitannemo]] || http://maemo.org/packages/view/panucci/ ||
|-
| gPodder || No || podcast || [[User:capitannemo]] || http://maemo.org/packages/view/gpodder/ ||
|-
| Symfonie || No || directory-based audioplayer || [[User:capitannemo]] || http://maemo.org/packages/view/symfonie/ ||
|
| || No || || [[User:]] || ||
|-
| || No || || [[User:]] || ||
|)
b0627451e2642a845ff0349a668948f1bae9b3f0
517
516
2020-01-09T07:59:35Z
Wizzup
4
/* Applications */
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
{| class="wikitable"http://maemo.org/packages/view/orecchiette/
! Package name
! Done
! Reason
! User
! URL
! Notes
|-
| osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote
|-
| pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation.
|-
| scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please
|-
| [[Games/Brainparty|brainparty]] || MOSTLY, not yet packaged || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ ||
|-
| Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || http://maemo.org/packages/view/orecchiette/(has also Psycho Pinball installable)
|-
| Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||http://maemo.org/packages/view/orecchiette/
|-
| Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend
|-
| PDF reader || Yes || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || libhildonfm has bugs regarding file opening dialogs that need to be fixed
|-
| Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port.
|-
| Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI
|-
| Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/
|-
| Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel
|-
|Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0
|-
| Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ ||
|-
| Image viewer/editor || No || || [[User:Maemish]] || ||
|-
| Mail with imap support || No || || [[User:Maemish]] || ||
|-
| RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || ||
|-
| Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ ||
|-
| OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer ||
|-
| SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net ||
|-
| Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ ||
|-
| D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ ||
|-
| Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ ||
|-
| MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms ||
|-
| Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ ||
|-
| Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed.
|-
| Firewall || No || || [[User:Maemish]] || || Something with easy configuration.
|-
| Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ ||
|-
|bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ ||
|-
| cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ ||
|-
| gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ ||
|-|-
| hamsterfiler || No || utilities/files || [[User:ric9k]] || http://maemo.org/packages/view/hamsterfiler/ ||
|-|-
| alarmed (or cron?) || No || utilities || [[User:ric9k]] || http://maemo.org/packages/view/alarmed/ ||
|-|-
| user friendly tracker || No || utilities? || [[User:ric9k]] || n/a :-) ||
|-|-
| Maps (offline) || No || Navigation || [[User:Sicelo]] || || Ideally something like https://f-droid.org/en/packages/com.github.axet.maps/ from Android, but Modrana, https://github.com/M4rtinK/modrana may be easier as a start
|-
| Orecchiette || No || calls recording || [[User:capitannemo]] || http://maemo.org/packages/view/orecchiette/ ||
|-
| Panucci || No || audiobook || [[User:capitannemo]] || http://maemo.org/packages/view/panucci/ ||
|-
| gPodder || No || podcast || [[User:capitannemo]] || http://maemo.org/packages/view/gpodder/ ||
|-
| Symfonie || No || directory-based audioplayer || [[User:capitannemo]] || http://maemo.org/packages/view/symfonie/ ||
|
| || No || || [[User:]] || ||
|-
| || No || || [[User:]] || ||
|)
7960d666fe83e3437ee578af59cfcfb1c87d5edb
519
517
2020-01-12T22:08:24Z
Wizzup
4
/* Applications */
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
{| class="wikitable"http://maemo.org/packages/view/orecchiette/
! Package name
! Done
! Reason
! User
! URL
! Notes
|-
| osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote
|-
| pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation.
|-
| scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please
|-
| [[Games/Brainparty|brainparty]] || Yes || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ ||
|-
| Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || http://maemo.org/packages/view/orecchiette/(has also Psycho Pinball installable)
|-
| Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||http://maemo.org/packages/view/orecchiette/
|-
| Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend
|-
| PDF reader || Yes || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || libhildonfm has bugs regarding file opening dialogs that need to be fixed
|-
| Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port.
|-
| Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI
|-
| Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/
|-
| Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel
|-
|Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0
|-
| Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ ||
|-
| Image viewer/editor || No || || [[User:Maemish]] || ||
|-
| Mail with imap support || No || || [[User:Maemish]] || ||
|-
| RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || ||
|-
| Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ ||
|-
| OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer ||
|-
| SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net ||
|-
| Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ ||
|-
| D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ ||
|-
| Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ ||
|-
| MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms ||
|-
| Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ ||
|-
| Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed.
|-
| Firewall || No || || [[User:Maemish]] || || Something with easy configuration.
|-
| Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ ||
|-
|bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ ||
|-
| cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ ||
|-
| gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ ||
|-|-
| hamsterfiler || No || utilities/files || [[User:ric9k]] || http://maemo.org/packages/view/hamsterfiler/ ||
|-|-
| alarmed (or cron?) || No || utilities || [[User:ric9k]] || http://maemo.org/packages/view/alarmed/ ||
|-|-
| user friendly tracker || No || utilities? || [[User:ric9k]] || n/a :-) ||
|-|-
| Maps (offline) || No || Navigation || [[User:Sicelo]] || || Ideally something like https://f-droid.org/en/packages/com.github.axet.maps/ from Android, but Modrana, https://github.com/M4rtinK/modrana may be easier as a start
|-
| Orecchiette || No || calls recording || [[User:capitannemo]] || http://maemo.org/packages/view/orecchiette/ ||
|-
| Panucci || No || audiobook || [[User:capitannemo]] || http://maemo.org/packages/view/panucci/ ||
|-
| gPodder || No || podcast || [[User:capitannemo]] || http://maemo.org/packages/view/gpodder/ ||
|-
| Symfonie || No || directory-based audioplayer || [[User:capitannemo]] || http://maemo.org/packages/view/symfonie/ ||
|
| || No || || [[User:]] || ||
|-
| || No || || [[User:]] || ||
|)
0490841609f469a7c35fbdd8cb3f9efc05b8c0c5
529
519
2020-01-15T10:32:00Z
Pavel
9
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
{| class="wikitable"http://maemo.org/packages/view/orecchiette/
! Package name
! Done
! Reason
! User
! URL
! Notes
|-
| osso-notes || WIP quicknote || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Could be useful, maybe quicknote
|-
| pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation.
|-
| scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please
|-
| [[Games/Brainparty|brainparty]] || Yes || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ ||
|-
| Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || http://maemo.org/packages/view/orecchiette/(has also Psycho Pinball installable)
|-
| Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||http://maemo.org/packages/view/orecchiette/
|-
| Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend
|-
| PDF reader || Yes || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || libhildonfm has bugs regarding file opening dialogs that need to be fixed
|-
| Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port.
|-
| Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI
|-
| Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/
|-
| Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel
|-
|Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0
|-
| Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ ||
|-
| Image viewer/editor || No || || [[User:Maemish]] || ||
|-
| Mail with imap support || No || || [[User:Maemish]] || ||
|-
| RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || ||
|-
| Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ ||
|-
| OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer ||
|-
| SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net ||
|-
| Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ ||
|-
| D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ ||
|-
| Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ ||
|-
| MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms ||
|-
| Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ ||
|-
| Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed.
|-
| Firewall || No || || [[User:Maemish]] || || Something with easy configuration.
|-
| Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ ||
|-
|bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ ||
|-
| cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ ||
|-
| gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ ||
|-|-
| hamsterfiler || No || utilities/files || [[User:ric9k]] || http://maemo.org/packages/view/hamsterfiler/ ||
|-|-
| alarmed (or cron?) || No || utilities || [[User:ric9k]] || http://maemo.org/packages/view/alarmed/ ||
|-|-
| user friendly tracker || No || utilities? || [[User:ric9k]] || n/a :-) ||
|-|-
| Maps (offline) || No || Navigation || [[User:Sicelo]] || || Ideally something like https://f-droid.org/en/packages/com.github.axet.maps/ from Android, but Modrana, https://github.com/M4rtinK/modrana may be easier as a start
|-
| Orecchiette || No || calls recording || [[User:capitannemo]] || http://maemo.org/packages/view/orecchiette/ ||
|-
| Panucci || No || audiobook || [[User:capitannemo]] || http://maemo.org/packages/view/panucci/ ||
|-
| gPodder || No || podcast || [[User:capitannemo]] || http://maemo.org/packages/view/gpodder/ ||
|-
| Symfonie || No || directory-based audioplayer || [[User:capitannemo]] || http://maemo.org/packages/view/symfonie/ ||
|-
| osso-clock || No || clock and alarms application || pavel || ||
|-
| freecell4maemo || No || freecell game || pavel || ||
|
| || No || || [[User:]] || ||
|-
| || No || || [[User:]] || ||
|)
7d2ef17b0ed5b54086d1818b075bf2923f685866
Motorola Droid 4
0
50
526
420
2020-01-14T18:09:23Z
Sicelo
5
Update bluetooth info
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Notes ==
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/
While using a serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.0 || Mainline + some patches not yet in mainline
|-
| Serial || Yes || On MicroUSB port, requires special cable
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]]
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Reported to work, no UI yet
|-
| Phone calls || WIP || Reported to work, no UI yet
|-
| Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and it in <code>/lib/firmware/ti-connectivity/</code>
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|}
== Installation using kexecboot ==
This procedure will erase existing android and/or safestrap.
Requirements:
* MicroSD card, MicroUSB cable and Droid4
* Charged Droid4
* Android Tools (fastboot and adb), git (optional), and flashing tools (xzcat and dd on Linux '''OR''' Etcher[https://github.com/balena-io/etcher] on Windows)
* Host Linux or Windows system
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh (Linux) or flash-droid-4-fs.bat (Windows)
# Latest '''maemo-leste-1.0-armhf-droid4-*.img.xz'''
And clone (or download the zip for):
* https://github.com/tmlind/droid4-kexecboot.git
Installation:
# With the Droid4 booted into Android, go to "Developer Options" in Settings, and enable debugging over USB.
# Power off Droid4
# Create a working directory with above mentioned files in it
# unzip '''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip'''
#* If you have safestrap on the device, turn on the droid4, go to safestrap, reboot, reboot to bootloader
#* If you do not have safestrap, turn on the device, and issue on the host: '''adb reboot bootloader'''
# Run the '''flash-droid-4-fw''' script from the extracted android directory ('''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml'''), run as admin/root if it does not find the device
# If you get errors while writing the image files, try a better MicroUSB cable.
# Wait for the flashing script to complete. This can take a few minutes. The droid will reboot a couple of times to the bootloader.
Then go to the '''droid4-kexecboot''' directory and run (possibly as sudo):
# fastboot flash mbm path/to/android/zip/allow-mbmloader-flashing-mbm.bin
# fastboot reboot-bootloader
# fastboot flash bpsw current/droid4-kexecboot.img
# fastboot flash utags utags-mmcblk1p13.bin
Then reboot the device (hold the power button for one or two seconds) and '''wait for it to get through the first boot'''. It will show a green android with something moving in it's stomach, as well as a progress bar. Then the device should show kexecboot for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
# '''xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE'''
# '''sync'''
On Windows: Use Etcher
Wait for the sync to complete and and insert the SD card into the Droid 4. Reboot the device and select Maemo Leste from the kexecboot menu.
You will now have see Maemo Leste boot up, and show you an unaccelerated hildon-desktop after about one minute.
== Safestrap+ddroid Installation (no longer recommended and outdated) ==
''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card '''
PostmarketOS has some information how to install safestrap: [https://wiki.postmarketos.org/wiki/Motorola_Droid_4_(motorola-maserati) in wiki]
Flashing the zip file is quite confusing / tricky:
Boot options, select slot with Leste, Activate.
In main menu: Install, scroll down to select ddroid-....zip file, swipe to confirm flash. You will get error, including "ApplyParsePerms, set_metadata_recursive, Error executing updater binary, Unable to mount." Red "failed" will appear. These are normal. Proceed by selecting "Reboot System", you'll get one more warning that system is not installed, swipe to confirm reboot.
Red motorola logo will appear, press search button to continue boot, phone vibrates, then vibrates again, then green led comes on. After about a minute, console appears, then disappears and X comes to life.
== Kernel development (old and outdated) ==
Linux 4.14 plus patches
Status: http://elektranox.org/droid4/
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]
[[Category:Device]]
1f4466b293a6a2270676f5a699363ed07493f745
527
526
2020-01-14T18:28:10Z
Sicelo
5
/* Status */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Notes ==
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/
While using a serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.0 || Mainline + some patches not yet in mainline
|-
| Serial || Yes || On MicroUSB port, requires special cable
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]]
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Reported to work, no UI yet
|-
| Phone calls || WIP || Reported to work, no UI yet
|-
| Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and it in <code>/lib/firmware/ti-connectivity/</code>
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes ||
|}
== Installation using kexecboot ==
This procedure will erase existing android and/or safestrap.
Requirements:
* MicroSD card, MicroUSB cable and Droid4
* Charged Droid4
* Android Tools (fastboot and adb), git (optional), and flashing tools (xzcat and dd on Linux '''OR''' Etcher[https://github.com/balena-io/etcher] on Windows)
* Host Linux or Windows system
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh (Linux) or flash-droid-4-fs.bat (Windows)
# Latest '''maemo-leste-1.0-armhf-droid4-*.img.xz'''
And clone (or download the zip for):
* https://github.com/tmlind/droid4-kexecboot.git
Installation:
# With the Droid4 booted into Android, go to "Developer Options" in Settings, and enable debugging over USB.
# Power off Droid4
# Create a working directory with above mentioned files in it
# unzip '''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip'''
#* If you have safestrap on the device, turn on the droid4, go to safestrap, reboot, reboot to bootloader
#* If you do not have safestrap, turn on the device, and issue on the host: '''adb reboot bootloader'''
# Run the '''flash-droid-4-fw''' script from the extracted android directory ('''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml'''), run as admin/root if it does not find the device
# If you get errors while writing the image files, try a better MicroUSB cable.
# Wait for the flashing script to complete. This can take a few minutes. The droid will reboot a couple of times to the bootloader.
Then go to the '''droid4-kexecboot''' directory and run (possibly as sudo):
# fastboot flash mbm path/to/android/zip/allow-mbmloader-flashing-mbm.bin
# fastboot reboot-bootloader
# fastboot flash bpsw current/droid4-kexecboot.img
# fastboot flash utags utags-mmcblk1p13.bin
Then reboot the device (hold the power button for one or two seconds) and '''wait for it to get through the first boot'''. It will show a green android with something moving in it's stomach, as well as a progress bar. Then the device should show kexecboot for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
# '''xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE'''
# '''sync'''
On Windows: Use Etcher
Wait for the sync to complete and and insert the SD card into the Droid 4. Reboot the device and select Maemo Leste from the kexecboot menu.
You will now have see Maemo Leste boot up, and show you an unaccelerated hildon-desktop after about one minute.
== Safestrap+ddroid Installation (no longer recommended and outdated) ==
''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card '''
PostmarketOS has some information how to install safestrap: [https://wiki.postmarketos.org/wiki/Motorola_Droid_4_(motorola-maserati) in wiki]
Flashing the zip file is quite confusing / tricky:
Boot options, select slot with Leste, Activate.
In main menu: Install, scroll down to select ddroid-....zip file, swipe to confirm flash. You will get error, including "ApplyParsePerms, set_metadata_recursive, Error executing updater binary, Unable to mount." Red "failed" will appear. These are normal. Proceed by selecting "Reboot System", you'll get one more warning that system is not installed, swipe to confirm reboot.
Red motorola logo will appear, press search button to continue boot, phone vibrates, then vibrates again, then green led comes on. After about a minute, console appears, then disappears and X comes to life.
== Kernel development (old and outdated) ==
Linux 4.14 plus patches
Status: http://elektranox.org/droid4/
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]
[[Category:Device]]
ba4a41e8f0a8b18f428d9dab88b928a1c33e2255
528
527
2020-01-14T18:31:13Z
Sicelo
5
/* Status */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Notes ==
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/
While using a serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.0 || Mainline + some patches not yet in mainline
|-
| Serial || Yes || On MicroUSB port, requires special cable
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]]
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Reported to work, no UI yet
|-
| Phone calls || WIP || Reported to work, no UI yet
|-
| Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in <code>/lib/firmware/ti-connectivity/</code>
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes ||
|}
== Installation using kexecboot ==
This procedure will erase existing android and/or safestrap.
Requirements:
* MicroSD card, MicroUSB cable and Droid4
* Charged Droid4
* Android Tools (fastboot and adb), git (optional), and flashing tools (xzcat and dd on Linux '''OR''' Etcher[https://github.com/balena-io/etcher] on Windows)
* Host Linux or Windows system
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh (Linux) or flash-droid-4-fs.bat (Windows)
# Latest '''maemo-leste-1.0-armhf-droid4-*.img.xz'''
And clone (or download the zip for):
* https://github.com/tmlind/droid4-kexecboot.git
Installation:
# With the Droid4 booted into Android, go to "Developer Options" in Settings, and enable debugging over USB.
# Power off Droid4
# Create a working directory with above mentioned files in it
# unzip '''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip'''
#* If you have safestrap on the device, turn on the droid4, go to safestrap, reboot, reboot to bootloader
#* If you do not have safestrap, turn on the device, and issue on the host: '''adb reboot bootloader'''
# Run the '''flash-droid-4-fw''' script from the extracted android directory ('''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml'''), run as admin/root if it does not find the device
# If you get errors while writing the image files, try a better MicroUSB cable.
# Wait for the flashing script to complete. This can take a few minutes. The droid will reboot a couple of times to the bootloader.
Then go to the '''droid4-kexecboot''' directory and run (possibly as sudo):
# fastboot flash mbm path/to/android/zip/allow-mbmloader-flashing-mbm.bin
# fastboot reboot-bootloader
# fastboot flash bpsw current/droid4-kexecboot.img
# fastboot flash utags utags-mmcblk1p13.bin
Then reboot the device (hold the power button for one or two seconds) and '''wait for it to get through the first boot'''. It will show a green android with something moving in it's stomach, as well as a progress bar. Then the device should show kexecboot for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
# '''xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE'''
# '''sync'''
On Windows: Use Etcher
Wait for the sync to complete and and insert the SD card into the Droid 4. Reboot the device and select Maemo Leste from the kexecboot menu.
You will now have see Maemo Leste boot up, and show you an unaccelerated hildon-desktop after about one minute.
== Safestrap+ddroid Installation (no longer recommended and outdated) ==
''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card '''
PostmarketOS has some information how to install safestrap: [https://wiki.postmarketos.org/wiki/Motorola_Droid_4_(motorola-maserati) in wiki]
Flashing the zip file is quite confusing / tricky:
Boot options, select slot with Leste, Activate.
In main menu: Install, scroll down to select ddroid-....zip file, swipe to confirm flash. You will get error, including "ApplyParsePerms, set_metadata_recursive, Error executing updater binary, Unable to mount." Red "failed" will appear. These are normal. Proceed by selecting "Reboot System", you'll get one more warning that system is not installed, swipe to confirm reboot.
Red motorola logo will appear, press search button to continue boot, phone vibrates, then vibrates again, then green led comes on. After about a minute, console appears, then disappears and X comes to life.
== Kernel development (old and outdated) ==
Linux 4.14 plus patches
Status: http://elektranox.org/droid4/
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]
[[Category:Device]]
eef9947dd52859b1f3e0b8835ef8cfd887991a80
530
528
2020-01-15T21:10:05Z
Sicelo
5
/* Status */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Notes ==
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/
While using a serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.0 || Mainline + some patches not yet in mainline
|-
| Serial || Yes || On MicroUSB port, requires special cable
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]]
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Reported to work, no UI yet
|-
| Phone calls || WIP || Reported to work, no UI yet
|-
| Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in <code>/lib/firmware/ti-connectivity/</code>
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes ||
|-
|Compass || No || Mainline supports it, so Leste needs to add config
|}
== Installation using kexecboot ==
This procedure will erase existing android and/or safestrap.
Requirements:
* MicroSD card, MicroUSB cable and Droid4
* Charged Droid4
* Android Tools (fastboot and adb), git (optional), and flashing tools (xzcat and dd on Linux '''OR''' Etcher[https://github.com/balena-io/etcher] on Windows)
* Host Linux or Windows system
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh (Linux) or flash-droid-4-fs.bat (Windows)
# Latest '''maemo-leste-1.0-armhf-droid4-*.img.xz'''
And clone (or download the zip for):
* https://github.com/tmlind/droid4-kexecboot.git
Installation:
# With the Droid4 booted into Android, go to "Developer Options" in Settings, and enable debugging over USB.
# Power off Droid4
# Create a working directory with above mentioned files in it
# unzip '''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip'''
#* If you have safestrap on the device, turn on the droid4, go to safestrap, reboot, reboot to bootloader
#* If you do not have safestrap, turn on the device, and issue on the host: '''adb reboot bootloader'''
# Run the '''flash-droid-4-fw''' script from the extracted android directory ('''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml'''), run as admin/root if it does not find the device
# If you get errors while writing the image files, try a better MicroUSB cable.
# Wait for the flashing script to complete. This can take a few minutes. The droid will reboot a couple of times to the bootloader.
Then go to the '''droid4-kexecboot''' directory and run (possibly as sudo):
# fastboot flash mbm path/to/android/zip/allow-mbmloader-flashing-mbm.bin
# fastboot reboot-bootloader
# fastboot flash bpsw current/droid4-kexecboot.img
# fastboot flash utags utags-mmcblk1p13.bin
Then reboot the device (hold the power button for one or two seconds) and '''wait for it to get through the first boot'''. It will show a green android with something moving in it's stomach, as well as a progress bar. Then the device should show kexecboot for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
# '''xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE'''
# '''sync'''
On Windows: Use Etcher
Wait for the sync to complete and and insert the SD card into the Droid 4. Reboot the device and select Maemo Leste from the kexecboot menu.
You will now have see Maemo Leste boot up, and show you an unaccelerated hildon-desktop after about one minute.
== Safestrap+ddroid Installation (no longer recommended and outdated) ==
''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card '''
PostmarketOS has some information how to install safestrap: [https://wiki.postmarketos.org/wiki/Motorola_Droid_4_(motorola-maserati) in wiki]
Flashing the zip file is quite confusing / tricky:
Boot options, select slot with Leste, Activate.
In main menu: Install, scroll down to select ddroid-....zip file, swipe to confirm flash. You will get error, including "ApplyParsePerms, set_metadata_recursive, Error executing updater binary, Unable to mount." Red "failed" will appear. These are normal. Proceed by selecting "Reboot System", you'll get one more warning that system is not installed, swipe to confirm reboot.
Red motorola logo will appear, press search button to continue boot, phone vibrates, then vibrates again, then green led comes on. After about a minute, console appears, then disappears and X comes to life.
== Kernel development (old and outdated) ==
Linux 4.14 plus patches
Status: http://elektranox.org/droid4/
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]
[[Category:Device]]
3ca41aeac5472d14c0569affedc79a1bd436f3be
539
530
2020-01-17T00:22:44Z
Spinal
13
/* Installation using kexecboot */ Rewrite requirements section
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Notes ==
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/
While using a serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.0 || Mainline + some patches not yet in mainline
|-
| Serial || Yes || On MicroUSB port, requires special cable
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]]
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Reported to work, no UI yet
|-
| Phone calls || WIP || Reported to work, no UI yet
|-
| Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in <code>/lib/firmware/ti-connectivity/</code>
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes ||
|-
|Compass || No || Mainline supports it, so Leste needs to add config
|}
== Installation using kexecboot ==
This procedure will erase existing android and/or safestrap.
Hardware requirements:
* Charged Droid4
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot and adb
* git (optional)
* flashing tools:
** xzcat and dd for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh (Linux) or flash-droid-4-fs.bat (Windows)
# Latest '''maemo-leste-1.0-armhf-droid4-*.img.xz'''
And clone (or download the zip for):
* https://github.com/tmlind/droid4-kexecboot.git
Installation:
# With the Droid4 booted into Android, go to "Developer Options" in Settings, and enable debugging over USB.
# Power off Droid4
# Create a working directory with above mentioned files in it
# unzip '''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip'''
#* If you have safestrap on the device, turn on the droid4, go to safestrap, reboot, reboot to bootloader
#* If you do not have safestrap, turn on the device, and issue on the host: '''adb reboot bootloader'''
# Run the '''flash-droid-4-fw''' script from the extracted android directory ('''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml'''), run as admin/root if it does not find the device
# If you get errors while writing the image files, try a better MicroUSB cable.
# Wait for the flashing script to complete. This can take a few minutes. The droid will reboot a couple of times to the bootloader.
Then go to the '''droid4-kexecboot''' directory and run (possibly as sudo):
# fastboot flash mbm path/to/android/zip/allow-mbmloader-flashing-mbm.bin
# fastboot reboot-bootloader
# fastboot flash bpsw current/droid4-kexecboot.img
# fastboot flash utags utags-mmcblk1p13.bin
Then reboot the device (hold the power button for one or two seconds) and '''wait for it to get through the first boot'''. It will show a green android with something moving in it's stomach, as well as a progress bar. Then the device should show kexecboot for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
# '''xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE'''
# '''sync'''
On Windows: Use Etcher
Wait for the sync to complete and and insert the SD card into the Droid 4. Reboot the device and select Maemo Leste from the kexecboot menu.
You will now have see Maemo Leste boot up, and show you an unaccelerated hildon-desktop after about one minute.
== Safestrap+ddroid Installation (no longer recommended and outdated) ==
''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card '''
PostmarketOS has some information how to install safestrap: [https://wiki.postmarketos.org/wiki/Motorola_Droid_4_(motorola-maserati) in wiki]
Flashing the zip file is quite confusing / tricky:
Boot options, select slot with Leste, Activate.
In main menu: Install, scroll down to select ddroid-....zip file, swipe to confirm flash. You will get error, including "ApplyParsePerms, set_metadata_recursive, Error executing updater binary, Unable to mount." Red "failed" will appear. These are normal. Proceed by selecting "Reboot System", you'll get one more warning that system is not installed, swipe to confirm reboot.
Red motorola logo will appear, press search button to continue boot, phone vibrates, then vibrates again, then green led comes on. After about a minute, console appears, then disappears and X comes to life.
== Kernel development (old and outdated) ==
Linux 4.14 plus patches
Status: http://elektranox.org/droid4/
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]
[[Category:Device]]
160c524e69c8caab8f6d199d8ee47167e416e459
540
539
2020-01-17T00:39:00Z
Spinal
13
/* Installation using kexecboot */ Minor fixes
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Notes ==
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/
While using a serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.0 || Mainline + some patches not yet in mainline
|-
| Serial || Yes || On MicroUSB port, requires special cable
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]]
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Reported to work, no UI yet
|-
| Phone calls || WIP || Reported to work, no UI yet
|-
| Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in <code>/lib/firmware/ti-connectivity/</code>
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes ||
|-
|Compass || No || Mainline supports it, so Leste needs to add config
|}
== Installation using kexecboot ==
This procedure will erase existing android and/or safestrap.
Hardware requirements:
* Charged Droid4
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot and adb
* git (optional)
* flashing tools:
** xzcat and dd for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh (Linux) or flash-droid-4-fs.bat (Windows)
# Latest '''maemo-leste-1.0-armhf-droid4-*.img.xz'''
And clone (or download the zip for):
* https://github.com/tmlind/droid4-kexecboot.git
Installation:
# With the Droid4 booted into Android, go to "Developer options" in Settings, and enable "USB debugging".
# Power off Droid4
# Create a working directory with above mentioned files in it
# unzip '''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip'''
#* If you have safestrap on the device, turn on the droid4, go to safestrap, reboot, reboot to bootloader
#* If you do not have safestrap, turn on the device, and issue on the host: '''adb reboot bootloader'''
# Run the '''flash-droid-4-fw''' script from the extracted android directory ('''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml'''), run as admin/root if it does not find the device
# If you get errors while writing the image files, try a better MicroUSB cable.
# Wait for the flashing script to complete. This can take a few minutes. The droid will reboot a couple of times to the bootloader.
Then go to the '''droid4-kexecboot''' directory and run (possibly as sudo):
# fastboot flash mbm path/to/android/zip/allow-mbmloader-flashing-mbm.bin
# fastboot reboot-bootloader
# fastboot flash bpsw current/droid4-kexecboot.img
# fastboot flash utags utags-mmcblk1p13.bin
Then reboot the device (hold the power button for one or two seconds) and '''wait for it to get through the first boot'''. It will show a green android with something moving in it's stomach, as well as a progress bar. Then the device should show kexecboot for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
# '''xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE'''
# '''sync'''
On Windows: Use Etcher
Wait for the sync to complete and and insert the SD card into the Droid 4. Reboot the device and select Maemo Leste from the kexecboot menu.
You will now have see Maemo Leste boot up, and show you an unaccelerated hildon-desktop after about one minute.
== Safestrap+ddroid Installation (no longer recommended and outdated) ==
''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card '''
PostmarketOS has some information how to install safestrap: [https://wiki.postmarketos.org/wiki/Motorola_Droid_4_(motorola-maserati) in wiki]
Flashing the zip file is quite confusing / tricky:
Boot options, select slot with Leste, Activate.
In main menu: Install, scroll down to select ddroid-....zip file, swipe to confirm flash. You will get error, including "ApplyParsePerms, set_metadata_recursive, Error executing updater binary, Unable to mount." Red "failed" will appear. These are normal. Proceed by selecting "Reboot System", you'll get one more warning that system is not installed, swipe to confirm reboot.
Red motorola logo will appear, press search button to continue boot, phone vibrates, then vibrates again, then green led comes on. After about a minute, console appears, then disappears and X comes to life.
== Kernel development (old and outdated) ==
Linux 4.14 plus patches
Status: http://elektranox.org/droid4/
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]
[[Category:Device]]
5e4f324009ae34e238c1cd71e623bec394520a3a
541
540
2020-01-17T00:54:56Z
Spinal
13
/* Installation using kexecboot */ Minor changes
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Notes ==
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/
While using a serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.0 || Mainline + some patches not yet in mainline
|-
| Serial || Yes || On MicroUSB port, requires special cable
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]]
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Reported to work, no UI yet
|-
| Phone calls || WIP || Reported to work, no UI yet
|-
| Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in <code>/lib/firmware/ti-connectivity/</code>
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes ||
|-
|Compass || No || Mainline supports it, so Leste needs to add config
|}
== Installation using kexecboot ==
This procedure will erase existing android and/or safestrap.
Hardware requirements:
* Charged Droid4
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot and adb
* git (optional)
* Flashing tools:
** xz-utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh (Linux) or flash-droid-4-fs.bat (Windows)
# Latest '''maemo-leste-1.0-armhf-droid4-*.img.xz'''
And clone (or download the zip for):
* https://github.com/tmlind/droid4-kexecboot.git
Installation:
# With the Droid4 booted into Android, go to "Developer options" in Settings, and enable "USB debugging".
# Power off Droid4
# Create a working directory with above mentioned files in it
# unzip '''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip'''
#* If you have safestrap on the device, turn on the droid4, go to safestrap, reboot, reboot to bootloader
#* If you do not have safestrap, turn on the device, and issue on the host: '''adb reboot bootloader'''
# Run the '''flash-droid-4-fw''' script from the extracted android directory ('''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml'''), run as admin/root if it does not find the device
# If you get errors while writing the image files, try a better MicroUSB cable.
# Wait for the flashing script to complete. This can take a few minutes. The droid will reboot a couple of times to the bootloader.
Then go to the '''droid4-kexecboot''' directory and run (possibly as sudo):
# fastboot flash mbm path/to/android/zip/allow-mbmloader-flashing-mbm.bin
# fastboot reboot-bootloader
# fastboot flash bpsw current/droid4-kexecboot.img
# fastboot flash utags utags-mmcblk1p13.bin
Then reboot the device (hold the power button for one or two seconds) and '''wait for it to get through the first boot'''. It will show a green android with something moving in it's stomach, as well as a progress bar. Then the device should show kexecboot for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
# '''xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE'''
# '''sync'''
On Windows: Use Etcher
Wait for the sync to complete and and insert the SD card into the Droid 4. Reboot the device and select Maemo Leste from the kexecboot menu.
You will now have see Maemo Leste boot up, and show you an unaccelerated hildon-desktop after about one minute.
== Safestrap+ddroid Installation (no longer recommended and outdated) ==
''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card '''
PostmarketOS has some information how to install safestrap: [https://wiki.postmarketos.org/wiki/Motorola_Droid_4_(motorola-maserati) in wiki]
Flashing the zip file is quite confusing / tricky:
Boot options, select slot with Leste, Activate.
In main menu: Install, scroll down to select ddroid-....zip file, swipe to confirm flash. You will get error, including "ApplyParsePerms, set_metadata_recursive, Error executing updater binary, Unable to mount." Red "failed" will appear. These are normal. Proceed by selecting "Reboot System", you'll get one more warning that system is not installed, swipe to confirm reboot.
Red motorola logo will appear, press search button to continue boot, phone vibrates, then vibrates again, then green led comes on. After about a minute, console appears, then disappears and X comes to life.
== Kernel development (old and outdated) ==
Linux 4.14 plus patches
Status: http://elektranox.org/droid4/
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]
[[Category:Device]]
ccab950b83da43a73451e89ebad047e39a20a786
542
541
2020-01-17T01:37:38Z
Spinal
13
/* Installation using kexecboot */ There's no need to poweroff+poweron the device after enabling "USB debugging". Minor fixes.
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Notes ==
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/
While using a serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.0 || Mainline + some patches not yet in mainline
|-
| Serial || Yes || On MicroUSB port, requires special cable
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]]
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Reported to work, no UI yet
|-
| Phone calls || WIP || Reported to work, no UI yet
|-
| Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in <code>/lib/firmware/ti-connectivity/</code>
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes ||
|-
|Compass || No || Mainline supports it, so Leste needs to add config
|}
== Installation using kexecboot ==
This procedure will erase existing android and/or safestrap.
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot and adb
* git (optional)
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh (Linux) or flash-droid-4-fs.bat (Windows)
# Latest '''maemo-leste-1.0-armhf-droid4-*.img.xz'''
And clone (or download the zip for):
* https://github.com/tmlind/droid4-kexecboot.git
Installation:
# Create a working directory with above mentioned files in it
# unzip '''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip'''
# With the Droid4 booted into Android, go to "Developer options" in Settings, and enable "USB debugging".
# Connect the device to the host machine with MicroUSB cable
#* If you have safestrap installed on the device, go to safestrap, reboot, reboot to bootloader
#* If you do not have safestrap, issue on the host: '''adb reboot bootloader'''
# Run the '''flash-droid-4-fw''' script from the extracted android directory ('''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml'''). Run it as admin/root if it does not find the device
# If you get errors while writing the image files, try a better MicroUSB cable.
# Wait for the flashing script to complete. This can take a few minutes. The droid will reboot a couple of times to the bootloader.
Then go to the '''droid4-kexecboot''' directory and run (possibly as sudo):
# fastboot flash mbm path/to/android/zip/allow-mbmloader-flashing-mbm.bin
# fastboot reboot-bootloader
# fastboot flash bpsw current/droid4-kexecboot.img
# fastboot flash utags utags-mmcblk1p13.bin
Then reboot the device (hold the power button for one or two seconds) and '''wait for it to get through the first boot'''. It will show a green android with something moving in it's stomach, as well as a progress bar. Then the device should show kexecboot for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
# '''xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE'''
# '''sync'''
On Windows: Use Etcher
Wait for the sync to complete and and insert the SD card into the Droid 4. Reboot the device and select Maemo Leste from the kexecboot menu.
You will now have see Maemo Leste boot up, and show you an unaccelerated hildon-desktop after about one minute.
== Safestrap+ddroid Installation (no longer recommended and outdated) ==
''' [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card '''
PostmarketOS has some information how to install safestrap: [https://wiki.postmarketos.org/wiki/Motorola_Droid_4_(motorola-maserati) in wiki]
Flashing the zip file is quite confusing / tricky:
Boot options, select slot with Leste, Activate.
In main menu: Install, scroll down to select ddroid-....zip file, swipe to confirm flash. You will get error, including "ApplyParsePerms, set_metadata_recursive, Error executing updater binary, Unable to mount." Red "failed" will appear. These are normal. Proceed by selecting "Reboot System", you'll get one more warning that system is not installed, swipe to confirm reboot.
Red motorola logo will appear, press search button to continue boot, phone vibrates, then vibrates again, then green led comes on. After about a minute, console appears, then disappears and X comes to life.
== Kernel development (old and outdated) ==
Linux 4.14 plus patches
Status: http://elektranox.org/droid4/
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]
[[Category:Device]]
69d3d5f46447d2b786fae271b0b63816eb90e2c0
543
542
2020-01-17T04:11:14Z
Spinal
13
Remove not recommended and outdated section "Safestrap+ddroid Installation".
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Notes ==
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/
While using a serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.0 || Mainline + some patches not yet in mainline
|-
| Serial || Yes || On MicroUSB port, requires special cable
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]]
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Reported to work, no UI yet
|-
| Phone calls || WIP || Reported to work, no UI yet
|-
| Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in <code>/lib/firmware/ti-connectivity/</code>
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes ||
|-
|Compass || No || Mainline supports it, so Leste needs to add config
|}
== Installation using kexecboot ==
This procedure will erase existing android and/or safestrap.
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot and adb
* git (optional)
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh (Linux) or flash-droid-4-fs.bat (Windows)
# Latest '''maemo-leste-1.0-armhf-droid4-*.img.xz'''
And clone (or download the zip for):
* https://github.com/tmlind/droid4-kexecboot.git
Installation:
# Create a working directory with above mentioned files in it
# unzip '''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip'''
# With the Droid4 booted into Android, go to "Developer options" in Settings, and enable "USB debugging".
# Connect the device to the host machine with MicroUSB cable
#* If you have safestrap installed on the device, go to safestrap, reboot, reboot to bootloader
#* If you do not have safestrap, issue on the host: '''adb reboot bootloader'''
# Run the '''flash-droid-4-fw''' script from the extracted android directory ('''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml'''). Run it as admin/root if it does not find the device
# If you get errors while writing the image files, try a better MicroUSB cable.
# Wait for the flashing script to complete. This can take a few minutes. The droid will reboot a couple of times to the bootloader.
Then go to the '''droid4-kexecboot''' directory and run (possibly as sudo):
# fastboot flash mbm path/to/android/zip/allow-mbmloader-flashing-mbm.bin
# fastboot reboot-bootloader
# fastboot flash bpsw current/droid4-kexecboot.img
# fastboot flash utags utags-mmcblk1p13.bin
Then reboot the device (hold the power button for one or two seconds) and '''wait for it to get through the first boot'''. It will show a green android with something moving in it's stomach, as well as a progress bar. Then the device should show kexecboot for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
# '''xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE'''
# '''sync'''
On Windows: Use Etcher
Wait for the sync to complete and and insert the SD card into the Droid 4. Reboot the device and select Maemo Leste from the kexecboot menu.
You will now have see Maemo Leste boot up, and show you an unaccelerated hildon-desktop after about one minute.
== Kernel development (old and outdated) ==
Linux 4.14 plus patches
Status: http://elektranox.org/droid4/
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]
[[Category:Device]]
02e24ff20de86ca1cf4df640425b3f870a575548
544
543
2020-01-17T04:24:08Z
Spinal
13
/* Installation using kexecboot */ There's no need in adb tool
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Notes ==
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/
While using a serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.0 || Mainline + some patches not yet in mainline
|-
| Serial || Yes || On MicroUSB port, requires special cable
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]]
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Reported to work, no UI yet
|-
| Phone calls || WIP || Reported to work, no UI yet
|-
| Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in <code>/lib/firmware/ti-connectivity/</code>
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes ||
|-
|Compass || No || Mainline supports it, so Leste needs to add config
|}
== Installation using kexecboot ==
This procedure will erase existing android and/or safestrap.
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* git (optional)
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh (Linux) or flash-droid-4-fs.bat (Windows)
# Latest '''maemo-leste-1.0-armhf-droid4-*.img.xz'''
And clone (or download the zip for):
* https://github.com/tmlind/droid4-kexecboot.git
Installation:
# Create a working directory with above mentioned files in it
# unzip '''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip'''
# Power off Droid4 and connect the device to the host machine with MicroUSB cable
# Now start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
# Run the '''flash-droid-4-fw''' script from the extracted android directory ('''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml'''). Run it as admin/root if it does not find the device
# If you get errors while writing the image files, try a better MicroUSB cable.
# Wait for the flashing script to complete. This can take a few minutes. The droid will reboot a couple of times to the bootloader.
Then go to the '''droid4-kexecboot''' directory and run (possibly as sudo):
# fastboot flash mbm path/to/android/zip/allow-mbmloader-flashing-mbm.bin
# fastboot reboot-bootloader
# fastboot flash bpsw current/droid4-kexecboot.img
# fastboot flash utags utags-mmcblk1p13.bin
Then reboot the device (hold the power button for one or two seconds) and '''wait for it to get through the first boot'''. It will show a green android with something moving in it's stomach, as well as a progress bar. Then the device should show kexecboot for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
# '''xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE'''
# '''sync'''
On Windows: Use Etcher
Wait for the sync to complete and and insert the SD card into the Droid 4. Reboot the device and select Maemo Leste from the kexecboot menu.
You will now have see Maemo Leste boot up, and show you an unaccelerated hildon-desktop after about one minute.
== Kernel development (old and outdated) ==
Linux 4.14 plus patches
Status: http://elektranox.org/droid4/
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]
[[Category:Device]]
da5d398b731272a5e07e62ef107c3b2a604fe35b
545
544
2020-01-17T04:28:54Z
Spinal
13
/* Installation using kexecboot */ No need in git
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Notes ==
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/
While using a serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.0 || Mainline + some patches not yet in mainline
|-
| Serial || Yes || On MicroUSB port, requires special cable
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]]
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Reported to work, no UI yet
|-
| Phone calls || WIP || Reported to work, no UI yet
|-
| Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in <code>/lib/firmware/ti-connectivity/</code>
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes ||
|-
|Compass || No || Mainline supports it, so Leste needs to add config
|}
== Installation using kexecboot ==
This procedure will erase existing android and/or safestrap.
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh (Linux) or flash-droid-4-fs.bat (Windows)
# Latest '''maemo-leste-1.0-armhf-droid4-*.img.xz'''
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Installation:
# Create a working directory with above mentioned files in it
# unzip '''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip'''
# Power off Droid4 and connect the device to the host machine with MicroUSB cable
# Now start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
# Run the '''flash-droid-4-fw''' script from the extracted android directory ('''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml'''). Run it as admin/root if it does not find the device
# If you get errors while writing the image files, try a better MicroUSB cable.
# Wait for the flashing script to complete. This can take a few minutes. The droid will reboot a couple of times to the bootloader.
Then go to the '''droid4-kexecboot''' directory and run (possibly as sudo):
# fastboot flash mbm path/to/android/zip/allow-mbmloader-flashing-mbm.bin
# fastboot reboot-bootloader
# fastboot flash bpsw current/droid4-kexecboot.img
# fastboot flash utags utags-mmcblk1p13.bin
Then reboot the device (hold the power button for one or two seconds) and '''wait for it to get through the first boot'''. It will show a green android with something moving in it's stomach, as well as a progress bar. Then the device should show kexecboot for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
# '''xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE'''
# '''sync'''
On Windows: Use Etcher
Wait for the sync to complete and and insert the SD card into the Droid 4. Reboot the device and select Maemo Leste from the kexecboot menu.
You will now have see Maemo Leste boot up, and show you an unaccelerated hildon-desktop after about one minute.
== Kernel development (old and outdated) ==
Linux 4.14 plus patches
Status: http://elektranox.org/droid4/
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]
[[Category:Device]]
e5aa4b95aa5ba4aba7795a914ca73b97e5f5b579
Motorola Droid 4
0
50
546
545
2020-01-17T04:38:03Z
Spinal
13
/* Installation using kexecboot */ No need to erase existing Android
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Notes ==
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/
While using a serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.0 || Mainline + some patches not yet in mainline
|-
| Serial || Yes || On MicroUSB port, requires special cable
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]]
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Reported to work, no UI yet
|-
| Phone calls || WIP || Reported to work, no UI yet
|-
| Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in <code>/lib/firmware/ti-connectivity/</code>
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes ||
|-
|Compass || No || Mainline supports it, so Leste needs to add config
|}
== Installation using kexecboot ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Latest '''maemo-leste-1.0-armhf-droid4-*.img.xz'''
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Installation:
# Create a working directory with above mentioned files in it
# unzip '''VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip'''
# Power off Droid4 and connect the device to the host machine with MicroUSB cable
# Now start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Now go to the working directory and run:
# sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
# sudo fastboot reboot-bootloader
# sudo fastboot flash bpsw droid4-kexecboot.img
# sudo fastboot flash utags utags-mmcblk1p13.bin
# sudo fastboot reboot
The device should reboot and show kexecboot for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
# '''xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE'''
# '''sync'''
On Windows: Use Etcher
Wait for the sync to complete and and insert the SD card into the Droid 4. Reboot the device and select Maemo Leste from the kexecboot menu.
You will now have see Maemo Leste boot up, and show you an unaccelerated hildon-desktop after about one minute.
== Kernel development (old and outdated) ==
Linux 4.14 plus patches
Status: http://elektranox.org/droid4/
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]
[[Category:Device]]
9b1266215ec225fd1586c275a22978d5795bbb82
547
546
2020-01-17T04:46:10Z
Spinal
13
/* Installation using kexecboot */ Minor fixes
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Notes ==
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/
While using a serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.0 || Mainline + some patches not yet in mainline
|-
| Serial || Yes || On MicroUSB port, requires special cable
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]]
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Reported to work, no UI yet
|-
| Phone calls || WIP || Reported to work, no UI yet
|-
| Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in <code>/lib/firmware/ti-connectivity/</code>
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes ||
|-
|Compass || No || Mainline supports it, so Leste needs to add config
|}
== Installation using kexecboot ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Now go to the working directory and run:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
The device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20200112.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for the sync to complete and and insert the SD card into the Droid 4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.
== Kernel development (old and outdated) ==
Linux 4.14 plus patches
Status: http://elektranox.org/droid4/
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]
[[Category:Device]]
36b484be23994f9d6558ea6e18b1cd7e9a449057
548
547
2020-01-17T04:48:33Z
Spinal
13
/* Installation using kexecboot */ Minor fixes
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Notes ==
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/
While using a serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.0 || Mainline + some patches not yet in mainline
|-
| Serial || Yes || On MicroUSB port, requires special cable
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]]
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Reported to work, no UI yet
|-
| Phone calls || WIP || Reported to work, no UI yet
|-
| Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in <code>/lib/firmware/ti-connectivity/</code>
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes ||
|-
|Compass || No || Mainline supports it, so Leste needs to add config
|}
== Installation using kexecboot ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Now go to the working directory and run:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
The device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20200112.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.
== Kernel development (old and outdated) ==
Linux 4.14 plus patches
Status: http://elektranox.org/droid4/
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]
[[Category:Device]]
8eed3e38af057ca54bb77fdc00d98a79165b8867
549
548
2020-01-17T04:56:42Z
Spinal
13
/* Notes */ Add instructions for device freezes case
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume button. Your should hold it for about 7 seconds. The device should reboot.
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/
While using a serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.0 || Mainline + some patches not yet in mainline
|-
| Serial || Yes || On MicroUSB port, requires special cable
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]]
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Reported to work, no UI yet
|-
| Phone calls || WIP || Reported to work, no UI yet
|-
| Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in <code>/lib/firmware/ti-connectivity/</code>
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes ||
|-
|Compass || No || Mainline supports it, so Leste needs to add config
|}
== Installation using kexecboot ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Now go to the working directory and run:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
The device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20200112.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.
== Kernel development (old and outdated) ==
Linux 4.14 plus patches
Status: http://elektranox.org/droid4/
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]
[[Category:Device]]
370f7cd52b333a4da2ae7d2421713600af0ca8ed
550
549
2020-01-17T05:00:44Z
Spinal
13
/* Notes */ Minor fixes
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume button. You should hold them for about 7 seconds. Droid4 will then reboot.
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/
While using a serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.0 || Mainline + some patches not yet in mainline
|-
| Serial || Yes || On MicroUSB port, requires special cable
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]]
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Reported to work, no UI yet
|-
| Phone calls || WIP || Reported to work, no UI yet
|-
| Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in <code>/lib/firmware/ti-connectivity/</code>
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes ||
|-
|Compass || No || Mainline supports it, so Leste needs to add config
|}
== Installation using kexecboot ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Now go to the working directory and run:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
The device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20200112.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.
== Kernel development (old and outdated) ==
Linux 4.14 plus patches
Status: http://elektranox.org/droid4/
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]
[[Category:Device]]
a87c559acd4e82ff0e747442b095f60789f2893e
551
550
2020-01-17T05:01:36Z
Spinal
13
/* Notes */ Minor fix
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/
While using a serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.0 || Mainline + some patches not yet in mainline
|-
| Serial || Yes || On MicroUSB port, requires special cable
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]]
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Reported to work, no UI yet
|-
| Phone calls || WIP || Reported to work, no UI yet
|-
| Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in <code>/lib/firmware/ti-connectivity/</code>
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes ||
|-
|Compass || No || Mainline supports it, so Leste needs to add config
|}
== Installation using kexecboot ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Now go to the working directory and run:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
The device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20200112.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.
== Kernel development (old and outdated) ==
Linux 4.14 plus patches
Status: http://elektranox.org/droid4/
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]
[[Category:Device]]
896842a1aa9b32c4c3d3a0f370126516544826e3
552
551
2020-01-17T05:03:02Z
Spinal
13
Rename section "Installation using kexecboot" => "Installation"
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/
While using a serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.0 || Mainline + some patches not yet in mainline
|-
| Serial || Yes || On MicroUSB port, requires special cable
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]]
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Reported to work, no UI yet
|-
| Phone calls || WIP || Reported to work, no UI yet
|-
| Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in <code>/lib/firmware/ti-connectivity/</code>
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes ||
|-
|Compass || No || Mainline supports it, so Leste needs to add config
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Now go to the working directory and run:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
The device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20200112.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.
== Kernel development (old and outdated) ==
Linux 4.14 plus patches
Status: http://elektranox.org/droid4/
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]
[[Category:Device]]
1bbf852643dbe95471ab4e48d2645fc3d53048fd
553
552
2020-01-17T13:21:17Z
Spinal
13
/* Installation */ Fall back to working 20190227 image. Latest image has broken wifi.
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/
While using a serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.0 || Mainline + some patches not yet in mainline
|-
| Serial || Yes || On MicroUSB port, requires special cable
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]]
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Reported to work, no UI yet
|-
| Phone calls || WIP || Reported to work, no UI yet
|-
| Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in <code>/lib/firmware/ti-connectivity/</code>
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes ||
|-
|Compass || No || Mainline supports it, so Leste needs to add config
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Now go to the working directory and run:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
The device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.
== Kernel development (old and outdated) ==
Linux 4.14 plus patches
Status: http://elektranox.org/droid4/
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]
[[Category:Device]]
9c04d6c3895325a2f87904b6a4c0c905c50043c4
554
553
2020-01-17T13:24:49Z
Spinal
13
/* Installation */ Don't recommend to use 20200112 image (broken wifi)
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/
While using a serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.0 || Mainline + some patches not yet in mainline
|-
| Serial || Yes || On MicroUSB port, requires special cable
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]]
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Reported to work, no UI yet
|-
| Phone calls || WIP || Reported to work, no UI yet
|-
| Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in <code>/lib/firmware/ti-connectivity/</code>
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes ||
|-
|Compass || No || Mainline supports it, so Leste needs to add config
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz (FIXME: 20200112 image has broken wifi support, don't use it)
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Now go to the working directory and run:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
The device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.
== Kernel development (old and outdated) ==
Linux 4.14 plus patches
Status: http://elektranox.org/droid4/
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]
[[Category:Device]]
a8acae79e8091b939b84377ced0cccb57d6e57bf
555
554
2020-01-17T14:35:27Z
Sicelo
5
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/
While using a serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.0 || Mainline + some patches not yet in mainline
|-
| Serial || Yes || On MicroUSB port, requires special cable
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]]
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Reported to work, no UI yet
|-
| Phone calls || WIP || Reported to work, no UI yet
|-
| Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in <code>/lib/firmware/ti-connectivity/</code>
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes ||
|-
|Compass || No || Mainline supports it, so Leste needs to add config
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi)
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Now go to the working directory and run:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
The device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.
== Kernel development (old and outdated) ==
Linux 4.14 plus patches
Status: http://elektranox.org/droid4/
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]
[[Category:Device]]
4f1be26cceace9dbf4d13312548fbae5000677fe
557
555
2020-01-18T13:01:42Z
BuZz
32
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/
While using a serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Postinstall notes for 20200112 image ==
=== Wifi ===
Requires wpasupplicant and firmware-ti-connectivity from ascii-backports (needs to get added to sources.list)
=== BT ===
Requires https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts to go in /lib/firmware/ti-connectivity/
=== Sound ===
This needs to be executed after each boot by hand ;
modprobe snd-soc-cpcap
modprobe snd-soc-motmdm
modprobe snd-soc-audio-graph-card
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.0 || Mainline + some patches not yet in mainline
|-
| Serial || Yes || On MicroUSB port, requires special cable
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]]
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Reported to work, no UI yet
|-
| Phone calls || WIP || Reported to work, no UI yet
|-
| Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in <code>/lib/firmware/ti-connectivity/</code>
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes ||
|-
|Compass || No || Mainline supports it, so Leste needs to add config
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi)
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Now go to the working directory and run:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
The device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.
== Kernel development (old and outdated) ==
Linux 4.14 plus patches
Status: http://elektranox.org/droid4/
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]
[[Category:Device]]
db10e047a4e8ef5fd65cfa7afa9ca90a54bfcf0d
558
557
2020-01-18T13:02:48Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/
While using a serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Postinstall notes for 20200112 image ==
=== Wifi ===
Requires wpasupplicant and firmware-ti-connectivity from ascii-backports (needs to get added to sources.list)
=== BT ===
Requires https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts to go in /lib/firmware/ti-connectivity/
=== Sound ===
This needs to be executed after each boot by hand ;
modprobe snd-soc-cpcap
modprobe snd-soc-motmdm
modprobe snd-soc-audio-graph-card
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.4 || Mainline + some patches not yet in mainline
|-
| Serial || Yes || On MicroUSB port, requires special cable
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]]
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Reported to work, no UI yet
|-
| Phone calls || WIP || Reported to work, no UI yet
|-
| Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in <code>/lib/firmware/ti-connectivity/</code>
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes ||
|-
|Compass || No || Mainline supports it, so Leste needs to add config
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi)
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Now go to the working directory and run:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
The device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.
== Kernel development (old and outdated) ==
Linux 4.14 plus patches
Status: http://elektranox.org/droid4/
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]
[[Category:Device]]
95ee89017dd432f566f5afcdfb66df18a9448ab0
559
558
2020-01-18T18:22:27Z
Sicelo
5
/* Notes */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Postinstall notes for 20200112 image ==
=== Wifi ===
Requires wpasupplicant and firmware-ti-connectivity from ascii-backports (needs to get added to sources.list)
=== BT ===
Requires https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts to go in /lib/firmware/ti-connectivity/
=== Sound ===
This needs to be executed after each boot by hand ;
modprobe snd-soc-cpcap
modprobe snd-soc-motmdm
modprobe snd-soc-audio-graph-card
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.4 || Mainline + some patches not yet in mainline
|-
| Serial || Yes || On MicroUSB port, requires special cable
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]]
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Reported to work, no UI yet
|-
| Phone calls || WIP || Reported to work, no UI yet
|-
| Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in <code>/lib/firmware/ti-connectivity/</code>
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes ||
|-
|Compass || No || Mainline supports it, so Leste needs to add config
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi)
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Now go to the working directory and run:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
The device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.
== Kernel development (old and outdated) ==
Linux 4.14 plus patches
Status: http://elektranox.org/droid4/
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]
[[Category:Device]]
45e0afc45036a2b275379fd086fd63c9f4472773
560
559
2020-01-19T11:52:07Z
BuZz
32
/* Wifi */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Postinstall notes for 20200112 image ==
=== Wifi ===
Requires wpasupplicant and firmware-ti-connectivity from ascii-backports (needs to get added to sources.list)
apt install -t ascii-backports wpasupplicant
apt install -t ascii-backports firmware-ti-connectivity
=== BT ===
Requires https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts to go in /lib/firmware/ti-connectivity/
=== Sound ===
This needs to be executed after each boot by hand ;
modprobe snd-soc-cpcap
modprobe snd-soc-motmdm
modprobe snd-soc-audio-graph-card
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.4 || Mainline + some patches not yet in mainline
|-
| Serial || Yes || On MicroUSB port, requires special cable
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]]
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Reported to work, no UI yet
|-
| Phone calls || WIP || Reported to work, no UI yet
|-
| Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in <code>/lib/firmware/ti-connectivity/</code>
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes ||
|-
|Compass || No || Mainline supports it, so Leste needs to add config
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi)
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Now go to the working directory and run:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
The device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.
== Kernel development (old and outdated) ==
Linux 4.14 plus patches
Status: http://elektranox.org/droid4/
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]
[[Category:Device]]
6c9c55b2021b0b0c613b0d8312b415f84f4ac544
561
560
2020-01-19T11:52:43Z
BuZz
32
/* Wifi */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Postinstall notes for 20200112 image ==
=== Wifi ===
Requires wpasupplicant and firmware-ti-connectivity from ascii-backports (needs to get added to sources.list)
deb http://pkgmaster.devuan.org/merged ascii-backports main contrib non-free
apt install -t ascii-backports wpasupplicant
apt install -t ascii-backports firmware-ti-connectivity
=== BT ===
Requires https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts to go in /lib/firmware/ti-connectivity/
=== Sound ===
This needs to be executed after each boot by hand ;
modprobe snd-soc-cpcap
modprobe snd-soc-motmdm
modprobe snd-soc-audio-graph-card
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.4 || Mainline + some patches not yet in mainline
|-
| Serial || Yes || On MicroUSB port, requires special cable
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]]
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Reported to work, no UI yet
|-
| Phone calls || WIP || Reported to work, no UI yet
|-
| Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in <code>/lib/firmware/ti-connectivity/</code>
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes ||
|-
|Compass || No || Mainline supports it, so Leste needs to add config
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi)
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Now go to the working directory and run:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
The device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.
== Kernel development (old and outdated) ==
Linux 4.14 plus patches
Status: http://elektranox.org/droid4/
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]
[[Category:Device]]
32a813dac60e41ad4e3a4422ed50e2e7aee4807a
562
561
2020-01-22T13:06:55Z
Derby
3
Remove redundant kernel info; add link to kernel branch currently in use
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Postinstall notes for 20200112 image ==
=== Wifi ===
Requires wpasupplicant and firmware-ti-connectivity from ascii-backports (needs to get added to sources.list)
deb http://pkgmaster.devuan.org/merged ascii-backports main contrib non-free
apt install -t ascii-backports wpasupplicant
apt install -t ascii-backports firmware-ti-connectivity
=== BT ===
Requires https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts to go in /lib/firmware/ti-connectivity/
=== Sound ===
This needs to be executed after each boot by hand ;
modprobe snd-soc-cpcap
modprobe snd-soc-motmdm
modprobe snd-soc-audio-graph-card
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux/tree/maemo-5.4
|-
| Serial || Yes || On MicroUSB port, requires special cable
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]]
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Reported to work, no UI yet
|-
| Phone calls || WIP || Reported to work, no UI yet
|-
| Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in <code>/lib/firmware/ti-connectivity/</code>
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes ||
|-
|Compass || No || Mainline supports it, so Leste needs to add config
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi)
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Now go to the working directory and run:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
The device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.
[[Category:Device]]
3ba5bf348186af06308de7d4f91dfa63ee7b8866
563
562
2020-01-22T13:14:23Z
Derby
3
Move sections to a more logical order
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux/tree/maemo-5.4
|-
| Serial || Yes || On MicroUSB port, requires special cable
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]]
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Reported to work, no UI yet
|-
| Phone calls || WIP || Reported to work, no UI yet
|-
| Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in <code>/lib/firmware/ti-connectivity/</code>
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes ||
|-
|Compass || No || Mainline supports it, so Leste needs to add config
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi)
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Now go to the working directory and run:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
The device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.
== Postinstall notes for 20200112 image ==
=== Wifi ===
Requires wpasupplicant and firmware-ti-connectivity from ascii-backports (needs to get added to sources.list)
deb http://pkgmaster.devuan.org/merged ascii-backports main contrib non-free
apt install -t ascii-backports wpasupplicant
apt install -t ascii-backports firmware-ti-connectivity
=== BT ===
Requires https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts to go in /lib/firmware/ti-connectivity/
=== Sound ===
This needs to be executed after each boot by hand ;
modprobe snd-soc-cpcap
modprobe snd-soc-motmdm
modprobe snd-soc-audio-graph-card
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
[[Category:Device]]
58f871c653e37165f0f6a94dc24c0aa7848c4a3f
564
563
2020-01-22T13:17:52Z
Derby
3
/* Status */ Add link to Serial Cable section
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux/tree/maemo-5.4
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]]
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Reported to work, no UI yet
|-
| Phone calls || WIP || Reported to work, no UI yet
|-
| Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in <code>/lib/firmware/ti-connectivity/</code>
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes ||
|-
|Compass || No || Mainline supports it, so Leste needs to add config
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi)
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Now go to the working directory and run:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
The device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.
== Postinstall notes for 20200112 image ==
=== Wifi ===
Requires wpasupplicant and firmware-ti-connectivity from ascii-backports (needs to get added to sources.list)
deb http://pkgmaster.devuan.org/merged ascii-backports main contrib non-free
apt install -t ascii-backports wpasupplicant
apt install -t ascii-backports firmware-ti-connectivity
=== BT ===
Requires https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts to go in /lib/firmware/ti-connectivity/
=== Sound ===
This needs to be executed after each boot by hand ;
modprobe snd-soc-cpcap
modprobe snd-soc-motmdm
modprobe snd-soc-audio-graph-card
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
[[Category:Device]]
f238dd399ba8396c536d9af089fa179d73da2016
565
564
2020-01-22T13:28:23Z
Derby
3
/* Status */ SGX info
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux/tree/maemo-5.4
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Not yet || PowerVR SGX540 (closed driver) - see [[Motorola Droid 4/PowerVR]]
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Reported to work, no UI yet
|-
| Phone calls || WIP || Reported to work, no UI yet
|-
| Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in <code>/lib/firmware/ti-connectivity/</code>
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes ||
|-
|Compass || No || Mainline supports it, so Leste needs to add config
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi)
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Now go to the working directory and run:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
The device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.
== Postinstall notes for 20200112 image ==
=== Wifi ===
Requires wpasupplicant and firmware-ti-connectivity from ascii-backports (needs to get added to sources.list)
deb http://pkgmaster.devuan.org/merged ascii-backports main contrib non-free
apt install -t ascii-backports wpasupplicant
apt install -t ascii-backports firmware-ti-connectivity
=== BT ===
Requires https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts to go in /lib/firmware/ti-connectivity/
=== Sound ===
This needs to be executed after each boot by hand ;
modprobe snd-soc-cpcap
modprobe snd-soc-motmdm
modprobe snd-soc-audio-graph-card
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
[[Category:Device]]
bbcae18cb6a640ec296e46e70fdd390749ffea01
566
565
2020-01-22T13:40:13Z
Derby
3
Bluetooth info
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux/tree/maemo-5.4
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Not yet || PowerVR SGX540 (closed driver) - see [[Motorola Droid 4/PowerVR]]
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Reported to work, no UI yet
|-
| Phone calls || WIP || Reported to work, no UI yet
|-
| Bluetooth || Yes || Needs firmware - see [[#Bluetooth|below]]. See also https://github.com/maemo-leste/bugtracker/issues/290.
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes ||
|-
|Compass || No || Mainline supports it, so Leste needs to add config
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi)
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Now go to the working directory and run:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
The device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.
== Postinstall notes for 20200112 image ==
=== Wifi ===
Requires wpasupplicant and firmware-ti-connectivity from ascii-backports (needs to get added to sources.list)
deb http://pkgmaster.devuan.org/merged ascii-backports main contrib non-free
apt install -t ascii-backports wpasupplicant
apt install -t ascii-backports firmware-ti-connectivity
=== Bluetooth ===
Requires https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts to go in /lib/firmware/ti-connectivity/
=== Sound ===
This needs to be executed after each boot by hand ;
modprobe snd-soc-cpcap
modprobe snd-soc-motmdm
modprobe snd-soc-audio-graph-card
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
[[Category:Device]]
c3de9ddb1f305bad50835805f139003f6fe3d2dd
567
566
2020-01-22T13:50:44Z
Derby
3
/* Status */ Compass
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux/tree/maemo-5.4
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Not yet || PowerVR SGX540 (closed driver) - see [[Motorola Droid 4/PowerVR]]
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Reported to work, no UI yet
|-
| Phone calls || WIP || Reported to work, no UI yet
|-
| Bluetooth || Yes || Needs firmware - see [[#Bluetooth|below]]. See also https://github.com/maemo-leste/bugtracker/issues/290.
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes ||
|-
|Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi)
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Now go to the working directory and run:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
The device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.
== Postinstall notes for 20200112 image ==
=== Wifi ===
Requires wpasupplicant and firmware-ti-connectivity from ascii-backports (needs to get added to sources.list)
deb http://pkgmaster.devuan.org/merged ascii-backports main contrib non-free
apt install -t ascii-backports wpasupplicant
apt install -t ascii-backports firmware-ti-connectivity
=== Bluetooth ===
Requires https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts to go in /lib/firmware/ti-connectivity/
=== Sound ===
This needs to be executed after each boot by hand ;
modprobe snd-soc-cpcap
modprobe snd-soc-motmdm
modprobe snd-soc-audio-graph-card
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
[[Category:Device]]
4addcaba92e147681e8ba2c3d3f642272bb8d225
568
567
2020-01-25T20:29:48Z
BuZz
32
/* Notes */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux/tree/maemo-5.4
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Not yet || PowerVR SGX540 (closed driver) - see [[Motorola Droid 4/PowerVR]]
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Reported to work, no UI yet
|-
| Phone calls || WIP || Reported to work, no UI yet
|-
| Bluetooth || Yes || Needs firmware - see [[#Bluetooth|below]]. See also https://github.com/maemo-leste/bugtracker/issues/290.
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes ||
|-
|Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi)
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Now go to the working directory and run:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
The device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.
== Postinstall notes for 20200112 image ==
=== Wifi ===
Requires wpasupplicant and firmware-ti-connectivity from ascii-backports (needs to get added to sources.list)
deb http://pkgmaster.devuan.org/merged ascii-backports main contrib non-free
apt install -t ascii-backports wpasupplicant
apt install -t ascii-backports firmware-ti-connectivity
=== Bluetooth ===
Requires https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts to go in /lib/firmware/ti-connectivity/
=== Sound ===
This needs to be executed after each boot by hand ;
modprobe snd-soc-cpcap
modprobe snd-soc-motmdm
modprobe snd-soc-audio-graph-card
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
[[Category:Device]]
79e3bedf1bf89e76126bb5c58336a294d8403e5d
570
568
2020-01-25T20:31:23Z
BuZz
32
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux/tree/maemo-5.4
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Not yet || PowerVR SGX540 (closed driver) - see [[Motorola Droid 4/PowerVR]]
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Reported to work, no UI yet
|-
| Phone calls || WIP || Reported to work, no UI yet
|-
| Bluetooth || Yes || Needs firmware - see [[#Bluetooth|below]]. See also https://github.com/maemo-leste/bugtracker/issues/290.
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes ||
|-
|Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi)
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Now go to the working directory and run:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
The device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.
== Postinstall notes for 20200112 image ==
=== Wifi ===
Requires wpasupplicant and firmware-ti-connectivity from ascii-backports (needs to get added to sources.list)
deb http://pkgmaster.devuan.org/merged ascii-backports main contrib non-free
apt install -t ascii-backports wpasupplicant
apt install -t ascii-backports firmware-ti-connectivity
=== Bluetooth ===
Requires https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts to go in /lib/firmware/ti-connectivity/
=== Sound ===
This needs to be executed after each boot by hand ;
modprobe snd-soc-cpcap
modprobe snd-soc-motmdm
modprobe snd-soc-audio-graph-card
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
</gallery>
[[Category:Device]]
c53d5ebb6488db9f5916f377874a23cbe164d0c2
572
570
2020-01-26T16:34:46Z
BuZz
32
/* Gallery */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux/tree/maemo-5.4
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Not yet || PowerVR SGX540 (closed driver) - see [[Motorola Droid 4/PowerVR]]
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Reported to work, no UI yet
|-
| Phone calls || WIP || Reported to work, no UI yet
|-
| Bluetooth || Yes || Needs firmware - see [[#Bluetooth|below]]. See also https://github.com/maemo-leste/bugtracker/issues/290.
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes ||
|-
|Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi)
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Now go to the working directory and run:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
The device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.
== Postinstall notes for 20200112 image ==
=== Wifi ===
Requires wpasupplicant and firmware-ti-connectivity from ascii-backports (needs to get added to sources.list)
deb http://pkgmaster.devuan.org/merged ascii-backports main contrib non-free
apt install -t ascii-backports wpasupplicant
apt install -t ascii-backports firmware-ti-connectivity
=== Bluetooth ===
Requires https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts to go in /lib/firmware/ti-connectivity/
=== Sound ===
This needs to be executed after each boot by hand ;
modprobe snd-soc-cpcap
modprobe snd-soc-motmdm
modprobe snd-soc-audio-graph-card
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
</gallery>
[[Category:Device]]
7f501e779d7af159fa8cdf58faf31143a3de53fa
588
572
2020-01-27T07:34:25Z
Xsetiadi
33
/* Gallery */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux/tree/maemo-5.4
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Not yet || PowerVR SGX540 (closed driver) - see [[Motorola Droid 4/PowerVR]]
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Reported to work, no UI yet
|-
| Phone calls || WIP || Reported to work, no UI yet
|-
| Bluetooth || Yes || Needs firmware - see [[#Bluetooth|below]]. See also https://github.com/maemo-leste/bugtracker/issues/290.
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes ||
|-
|Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi)
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Now go to the working directory and run:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
The device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.
== Postinstall notes for 20200112 image ==
=== Wifi ===
Requires wpasupplicant and firmware-ti-connectivity from ascii-backports (needs to get added to sources.list)
deb http://pkgmaster.devuan.org/merged ascii-backports main contrib non-free
apt install -t ascii-backports wpasupplicant
apt install -t ascii-backports firmware-ti-connectivity
=== Bluetooth ===
Requires https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts to go in /lib/firmware/ti-connectivity/
=== Sound ===
This needs to be executed after each boot by hand ;
modprobe snd-soc-cpcap
modprobe snd-soc-motmdm
modprobe snd-soc-audio-graph-card
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
</gallery>
[[Category:Device]]
bee4fe374c5c2bdcac77f27f77b22f9f022a82bf
592
588
2020-01-28T06:14:38Z
Xsetiadi
33
/* Gallery */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux/tree/maemo-5.4
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Not yet || PowerVR SGX540 (closed driver) - see [[Motorola Droid 4/PowerVR]]
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Reported to work, no UI yet
|-
| Phone calls || WIP || Reported to work, no UI yet
|-
| Bluetooth || Yes || Needs firmware - see [[#Bluetooth|below]]. See also https://github.com/maemo-leste/bugtracker/issues/290.
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes ||
|-
|Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi)
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Now go to the working directory and run:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
The device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.
== Postinstall notes for 20200112 image ==
=== Wifi ===
Requires wpasupplicant and firmware-ti-connectivity from ascii-backports (needs to get added to sources.list)
deb http://pkgmaster.devuan.org/merged ascii-backports main contrib non-free
apt install -t ascii-backports wpasupplicant
apt install -t ascii-backports firmware-ti-connectivity
=== Bluetooth ===
Requires https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts to go in /lib/firmware/ti-connectivity/
=== Sound ===
This needs to be executed after each boot by hand ;
modprobe snd-soc-cpcap
modprobe snd-soc-motmdm
modprobe snd-soc-audio-graph-card
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
</gallery>
[[Category:Device]]
4dc94b55d6f4ff70a519745b58888119a40bedd2
Nokia N900
0
48
556
441
2020-01-18T11:02:35Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The original Nokia N900.
== Notes ==
* Screen will be black for a few minutes while starting X - this is a known PowerVR issue. Just wait it out - it might freeze once more for a few minutes, but then will function OKayish
* If your battery is not calibrated, the battery applet will not give you any data. Charge the battery fully, and then let it discharge (almost) completely.
* Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful.
Also see: https://elinux.org/N900
Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.0 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip-5.0.y
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing non-free firmware
|-
| Ethernet || N/A ||
|-
| Bluetooth || Not yet || Driver problems in mainline
|-
| Infrared || Yes || TX only (hardware limitation).
|-
| (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || Yes || Works fast(!)
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters)
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on Bluetooth. [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/staging?id=757c2bf597a8e9f859f8efceda9c5108607fd98d Removed in Linux 5.4-rc1.]
|-
| Accelerometer || Not yet || Available as input device, needs MCE work
|-
| Proximity sensor || Not yet ||
|-
| Vibration Motor || Yes || No integration yet
|-
| TV-out || Not yet || Should work in kernel, didn't get it to work yet
|-
| GPS || WIP || Works using gps3 and gpsd, needs integration still
|}
== Installation ==
Images: http://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to use/install Fremantle, or want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''.
To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Power Management ==
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
[[Category:Device]]
d4a954c79fbb9c6c35be0658e88e8fbaa7ced9bd
File:Motorola-Droid4-20200125.jpeg
6
94
569
2020-01-25T20:31:08Z
BuZz
32
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Droid4-neofetch.JPG
6
95
571
2020-01-26T16:23:18Z
BuZz
32
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Leste FAQ
0
62
573
364
2020-01-26T18:31:44Z
Derby
3
/* How does Maemo Leste compare with PureOS? */ Update info on Librem 5
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs.
Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the now very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone.
The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs.
Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle.
We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired.
Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide a working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long term supported stable releases.
=== What's wrong with Android (vendor) Linux kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained with very little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline].
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]).
=== How about other popular non-Android mobile Linux distributions? ===
The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided.
One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution.
Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland.
Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]] in order to prioritise device compatibility and ease of ports over software freedoms.
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticable in the project).
Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts.
But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
=== Are packages (for N900 especially) Thumb-compiled? ===
Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb
a6e51a8cf044600ff74ab9c4de10691cfbb2b284
574
573
2020-01-26T18:34:39Z
Derby
3
/* Does Maemo Leste use Halium? */ Fix typo
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs.
Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the now very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone.
The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs.
Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle.
We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired.
Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long term supported stable releases.
=== What's wrong with Android (vendor) Linux kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained with very little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline].
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]).
=== How about other popular non-Android mobile Linux distributions? ===
The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided.
One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution.
Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland.
Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]] in order to prioritise device compatibility and ease of ports over software freedoms.
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticable in the project).
Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts.
But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
=== Are packages (for N900 especially) Thumb-compiled? ===
Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb
0fc24b9f0eec0ba6bda81e5e8bf8aef34d055d35
575
574
2020-01-26T18:55:56Z
Derby
3
Added question on Debian/systemd compatibility
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs.
Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the now very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone.
The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs.
Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle.
We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired.
Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long term supported stable releases.
=== What's wrong with Android (vendor) Linux kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained with very little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline].
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]).
=== How about other popular non-Android mobile Linux distributions? ===
The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided.
One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution.
Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland.
Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]] in order to prioritise device compatibility and ease of ports over software freedoms.
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticable in the project).
Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts.
But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== Can Maemo Leste work with a Debian/systemd base? ===
Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
=== Are packages (for N900 especially) Thumb-compiled? ===
Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb
d24c86423dedfe322d29edea1ab42c7cc0779d5a
576
575
2020-01-26T19:47:57Z
Derby
3
/* Are there any technical merits in using System V init with OpenRC instead of systemd? */ Reinforce the importance of choosing Devuan over Debian.
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs.
Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the now very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone.
The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs.
Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle.
We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired.
Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long term supported stable releases.
=== What's wrong with Android (vendor) Linux kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained with very little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline].
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]).
=== How about other popular non-Android mobile Linux distributions? ===
The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided.
One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution.
Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland.
Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]] in order to prioritise device compatibility and ease of ports over software freedoms.
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticable in the project).
Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts.
But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate, there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== Can Maemo Leste work with a Debian/systemd base? ===
Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
=== Are packages (for N900 especially) Thumb-compiled? ===
Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb
c877977495f406a80ee188d15efb5ab216bfb764
577
576
2020-01-26T19:58:35Z
Derby
3
/* Are there any technical merits in using System V init with OpenRC instead of systemd? */
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs.
Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the now very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone.
The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs.
Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle.
We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired.
Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long term supported stable releases.
=== What's wrong with Android (vendor) Linux kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained with very little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline].
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]).
=== How about other popular non-Android mobile Linux distributions? ===
The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided.
One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution.
Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland.
Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]] in order to prioritise device compatibility and ease of ports over software freedoms.
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticable in the project).
Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts.
But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate; there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== Can Maemo Leste work with a Debian/systemd base? ===
Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
=== Are packages (for N900 especially) Thumb-compiled? ===
Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb
03ee2ebb25e8962352a35e18b3db76d4b7990862
578
577
2020-01-26T20:08:08Z
Derby
3
/* What's wrong with Android (vendor) kernels? */ Android kernels diverge so much (breaking compatibility), that it is incorrect to call them Linux
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs.
Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the now very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone.
The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs.
Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle.
We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired.
Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long term supported stable releases.
=== What's wrong with Android (vendor) kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained with very little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices with kernels based on Linux on the market, yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline].
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]).
=== How about other popular non-Android mobile Linux distributions? ===
The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided.
One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution.
Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland.
Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]] in order to prioritise device compatibility and ease of ports over software freedoms.
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticable in the project).
Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts.
But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate; there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== Can Maemo Leste work with a Debian/systemd base? ===
Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
=== Are packages (for N900 especially) Thumb-compiled? ===
Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb
aef310e2940b7d427db1c035d2ba8949dfea5c57
579
578
2020-01-26T20:09:44Z
Derby
3
/* What's wrong with Android (vendor) kernels? */ Rephrase
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs.
Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the now very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone.
The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs.
Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle.
We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired.
Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long term supported stable releases.
=== What's wrong with Android (vendor) kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained with very little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices on the market, all with kernels based on Linux; yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline].
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]).
=== How about other popular non-Android mobile Linux distributions? ===
The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided.
One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution.
Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland.
Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]] in order to prioritise device compatibility and ease of ports over software freedoms.
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticable in the project).
Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts.
But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate; there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== Can Maemo Leste work with a Debian/systemd base? ===
Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
=== Are packages (for N900 especially) Thumb-compiled? ===
Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb
ed6fad2bae48eafccdf19ac7f4cf65c735c9a17f
580
579
2020-01-26T20:11:36Z
Derby
3
/* Are packages (for N900 especially) Thumb-compiled? */
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs.
Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the now very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone.
The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs.
Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle.
We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired.
Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long term supported stable releases.
=== What's wrong with Android (vendor) kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained with very little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices on the market, all with kernels based on Linux; yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline].
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]).
=== How about other popular non-Android mobile Linux distributions? ===
The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided.
One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution.
Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland.
Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]] in order to prioritise device compatibility and ease of ports over software freedoms.
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticable in the project).
Fremantle used the (now abandoned) upstart init system. We initially chose Devuan because we figured Devuan might (and it does, afaik) support upstart to some degree as well, so we would not have to deal with rewriting the init scripts.
But we ended up doing it anyway, and now Maemo Leste uses OpenRC. Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate; there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== Can Maemo Leste work with a Debian/systemd base? ===
Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
=== Are ARM packages Thumb-compiled? ===
Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb
1771262e599ab18ffa92e2f23efc8d80bd25b13c
581
580
2020-01-26T20:24:44Z
Derby
3
/* Why is Maemo Leste based on Devuan rather than Debian? */ Fix typo; rephrase; Devuan upstart support was dropped in ascii.
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs.
Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the now very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone.
The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs.
Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle.
We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired.
Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long term supported stable releases.
=== What's wrong with Android (vendor) kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained with very little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices on the market, all with kernels based on Linux; yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline].
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]).
=== How about other popular non-Android mobile Linux distributions? ===
The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided.
One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution.
Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland.
Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]] in order to prioritise device compatibility and ease of ports over software freedoms.
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticeable in the project).
Maemo Fremantle uses the upstart init system. We initially chose Devuan because we figured Devuan might support upstart to some degree as well, so we would not have to deal with rewriting the init scripts (we ended up rewriting them anyway as now Maemo Leste uses OpenRC). Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate; there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== Can Maemo Leste work with a Debian/systemd base? ===
Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
=== Are ARM packages Thumb-compiled? ===
Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb
addc3773f5666399a5543c2296ec0356a19af6e2
582
581
2020-01-26T20:34:56Z
Derby
3
/* How about other popular non-Android mobile Linux distributions? */ Rephrase
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is a GNU/Linux distribution aimed at mobile devices with touch screens: smartphones, tablets and PDAs.
Maemo Leste is based on Devuan (and thus indirectly based on Debian), while it inherits a lot of packages from (the now very old) "Maemo Fremantle", the Nokia OS for the Nokia N900 internet tablet/phone.
The mobile user interface is based on "Hildon" from Fremantle, as are various other packages (from Fremantle) -- some have been reversed engineered, others which were already open source have been updated to newer libraries and APIs.
Maemo Leste aims to provide an unconstrained and free mobile distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle.
We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired.
Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long term supported stable releases.
=== What's wrong with Android (vendor) kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained with very little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices on the market, all with kernels based on Linux; yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline].
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]).
=== How about other popular non-Android mobile Linux distributions? ===
The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided.
One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution.
Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland.
Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]], preferring to prioritise device compatibility and ease of device porting, instead of prioritising software freedoms.
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticeable in the project).
Maemo Fremantle uses the upstart init system. We initially chose Devuan because we figured Devuan might support upstart to some degree as well, so we would not have to deal with rewriting the init scripts (we ended up rewriting them anyway as now Maemo Leste uses OpenRC). Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate; there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== Can Maemo Leste work with a Debian/systemd base? ===
Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
=== Are ARM packages Thumb-compiled? ===
Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb
5b94e746ac091d2240a57e976f340cc7950c4aa8
583
582
2020-01-26T22:31:47Z
Derby
3
/* What is Maemo Leste? */ Improve wording; add hyperlinks.
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is an operating system based on GNU/Linux that is currently in development. It is aimed at mobile devices with touch screens such as smartphones, tablets and PDAs.
It is built on top of '''[https://devuan.org/ Devuan]''', and thus indirectly based on [https://www.debian.org/ Debian]. Essentially, it a modernised and liberated version of '''[https://en.wikipedia.org/wiki/Maemo#Maemo_5 Maemo 5/Fremantle]'''; the last version of the mobile Linux OS from Nokia that was released in 2009 for the [https://en.wikipedia.org/wiki/Nokia_N900 Nokia N900] internet tablet/smartphone. Unlike its predecessor which only ran on a single device, Maemo Leste runs on a variety of devices.
In Maemo Leste, closed-source packages that originate from Fremantle have been reversed engineered, liberated, updated and rebuilt; whilst open-source Fremantle packages have been updated to newer libraries and APIs, including [https://en.wikipedia.org/wiki/Hildon Hildon], the mobile user interface from Fremantle.
Maemo Leste aims to provide an unconstrained and free mobile Linux distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle.
We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired.
Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long term supported stable releases.
=== What's wrong with Android (vendor) kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained with very little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices on the market, all with kernels based on Linux; yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline].
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]).
=== How about other popular non-Android mobile Linux distributions? ===
The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided.
One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution.
Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland.
Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]], preferring to prioritise device compatibility and ease of device porting, instead of prioritising software freedoms.
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticeable in the project).
Maemo Fremantle uses the upstart init system. We initially chose Devuan because we figured Devuan might support upstart to some degree as well, so we would not have to deal with rewriting the init scripts (we ended up rewriting them anyway as now Maemo Leste uses OpenRC). Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate; there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== Can Maemo Leste work with a Debian/systemd base? ===
Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
=== Are ARM packages Thumb-compiled? ===
Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb
9844ed1b2d72d1cf7e0f8b8df5e0ca8a1fe82f14
584
583
2020-01-26T22:32:13Z
Derby
3
/* What is Maemo Leste? */ Fix typo
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is an operating system based on GNU/Linux that is currently in development. It is aimed at mobile devices with touch screens such as smartphones, tablets and PDAs.
It is built on top of '''[https://devuan.org/ Devuan]''', and thus indirectly based on [https://www.debian.org/ Debian]. Essentially, it is a modernised and liberated version of '''[https://en.wikipedia.org/wiki/Maemo#Maemo_5 Maemo 5/Fremantle]'''; the last version of the mobile Linux OS from Nokia that was released in 2009 for the [https://en.wikipedia.org/wiki/Nokia_N900 Nokia N900] internet tablet/smartphone. Unlike its predecessor which only ran on a single device, Maemo Leste runs on a variety of devices.
In Maemo Leste, closed-source packages that originate from Fremantle have been reversed engineered, liberated, updated and rebuilt; whilst open-source Fremantle packages have been updated to newer libraries and APIs, including [https://en.wikipedia.org/wiki/Hildon Hildon], the mobile user interface from Fremantle.
Maemo Leste aims to provide an unconstrained and free mobile Linux distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle.
We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired.
Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long term supported stable releases.
=== What's wrong with Android (vendor) kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained with very little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices on the market, all with kernels based on Linux; yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline].
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]).
=== How about other popular non-Android mobile Linux distributions? ===
The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided.
One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution.
Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland.
Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]], preferring to prioritise device compatibility and ease of device porting, instead of prioritising software freedoms.
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticeable in the project).
Maemo Fremantle uses the upstart init system. We initially chose Devuan because we figured Devuan might support upstart to some degree as well, so we would not have to deal with rewriting the init scripts (we ended up rewriting them anyway as now Maemo Leste uses OpenRC). Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate; there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== Can Maemo Leste work with a Debian/systemd base? ===
Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
=== Are ARM packages Thumb-compiled? ===
Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb
943c285acf6c767534d39d48eb0db795507f57ab
585
584
2020-01-26T22:55:19Z
Derby
3
/* Why is Maemo Leste based on Devuan rather than Debian? */
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is an operating system based on GNU/Linux that is currently in development. It is aimed at mobile devices with touch screens such as smartphones, tablets and PDAs.
It is built on top of '''[https://devuan.org/ Devuan]''', and thus indirectly based on [https://www.debian.org/ Debian]. Essentially, it is a modernised and liberated version of '''[https://en.wikipedia.org/wiki/Maemo#Maemo_5 Maemo 5/Fremantle]'''; the last version of the mobile Linux OS from Nokia that was released in 2009 for the [https://en.wikipedia.org/wiki/Nokia_N900 Nokia N900] internet tablet/smartphone. Unlike its predecessor which only ran on a single device, Maemo Leste runs on a variety of devices.
In Maemo Leste, closed-source packages that originate from Fremantle have been reversed engineered, liberated, updated and rebuilt; whilst open-source Fremantle packages have been updated to newer libraries and APIs, including [https://en.wikipedia.org/wiki/Hildon Hildon], the mobile user interface from Fremantle.
Maemo Leste aims to provide an unconstrained and free mobile Linux distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle.
We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired.
Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long term supported stable releases.
=== What's wrong with Android (vendor) kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained with very little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices on the market, all with kernels based on Linux; yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline].
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]).
=== How about other popular non-Android mobile Linux distributions? ===
The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided.
One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution.
Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland.
Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]], preferring to prioritise device compatibility and ease of device porting, instead of prioritising software freedoms.
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticeable in the project).
Maemo Fremantle uses the ''upstart'' init system. We initially chose Devuan because we figured Devuan might support upstart to some degree as well, so we would not have to deal with rewriting the init scripts (we ended up rewriting them anyway as now Maemo Leste uses OpenRC). Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate; there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== Can Maemo Leste work with a Debian/systemd base? ===
Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
=== Are ARM packages Thumb-compiled? ===
Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb
c2fb2913038f8cd8b043a8355d42600920305d04
586
585
2020-01-26T22:57:45Z
Derby
3
/* Why is Maemo Leste based on Devuan rather than Debian? */
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is an operating system based on GNU/Linux that is currently in development. It is aimed at mobile devices with touch screens such as smartphones, tablets and PDAs.
It is built on top of '''[https://devuan.org/ Devuan]''', and thus indirectly based on [https://www.debian.org/ Debian]. Essentially, it is a modernised and liberated version of '''[https://en.wikipedia.org/wiki/Maemo#Maemo_5 Maemo 5/Fremantle]'''; the last version of the mobile Linux OS from Nokia that was released in 2009 for the [https://en.wikipedia.org/wiki/Nokia_N900 Nokia N900] internet tablet/smartphone. Unlike its predecessor which only ran on a single device, Maemo Leste runs on a variety of devices.
In Maemo Leste, closed-source packages that originate from Fremantle have been reversed engineered, liberated, updated and rebuilt; whilst open-source Fremantle packages have been updated to newer libraries and APIs, including [https://en.wikipedia.org/wiki/Hildon Hildon], the mobile user interface from Fremantle.
Maemo Leste aims to provide an unconstrained and free mobile Linux distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
What Maemo Leste hopes to bring to the table is a streamlined but otherwise unrestrained mobile OS. User freedom and hackability of the devices, while still having a usable OS.
We aim to provide a "true" GNU/Linux experience by providing up to date packages, do not use vendor Linux kernels (only "vanilla").
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle.
We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired.
Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long term supported stable releases.
=== What's wrong with Android (vendor) kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained with very little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices on the market, all with kernels based on Linux; yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline].
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]).
=== How about other popular non-Android mobile Linux distributions? ===
The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided.
One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution.
Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland.
Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]], preferring to prioritise device compatibility and ease of device porting, instead of prioritising software freedoms.
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticeable in the project).
Maemo Fremantle uses the ''upstart'' init system. We initially chose Devuan because we figured Devuan might support upstart to some degree as well, so we would not have to deal with rewriting the init scripts (although we ended up rewriting them anyway as Maemo Leste now uses OpenRC). Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate; there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== Can Maemo Leste work with a Debian/systemd base? ===
Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
=== Are ARM packages Thumb-compiled? ===
Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb
343facfa00b0e836b8715e1c37095c8a8d786680
File:Droid4 htop.jpg
6
96
587
2020-01-27T07:34:08Z
Xsetiadi
33
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Architecture
0
97
589
2020-01-27T14:02:21Z
Eloy
34
Initial page
wikitext
text/x-wiki
== Application interfaces ==
== UI Framework ==
== Location framework ==
== Data management ==
== Real-time communications ==
== Toolkit ==
== Multimedia framework ==
== Connectivity framework ==
== Cellular ==
== Core ==
== System software ==
== Hardware ==
e7255b3430e970bb381edf752e37e5bd854aafa8
Development/Porting Packages
0
82
590
385
2020-01-28T03:12:29Z
Derby
3
Add a placeholder that will be used to describe the procedure for forking a Debian/Devuan package
wikitext
text/x-wiki
= Porting / Creating packages =
If you're looking at creating your own package, or porting software, the first things to do are:
# Check if someone already ported the package (if it in the repository? Is there an issue for it?)
# Check if there already are Debian packaging scripts/files. Debian packages a LOT of software, so it's likely that the software is already in the Maemo repository, or someone at least has build scripts for it.
# (TODO)
= Porting existing Maemo Fremantle packages =
Maemo Fremantle ("Nokia Maemo for the N900") contains a lot of packages that are open source. Most of them should run with very few changes on Maemo Leste, the main changes you will need to make will be:
# Check if someone already ported the package (if it in the repository? Is there an issue for it?)
# Updating of the Debian packaging files/scripts.
# Porting to newer libraries if old libraries are used (OpenSSL 0.9.8 -> OpenSSL 1.1.x, Qt4 -> Qt5, etc)
# Fixing any compile errors/warnings due to more strict compile flags
Source of the packages can be found at one of these places:
* http://maemo.org/packages/
* https://garage.maemo.org/
If you import a package, please try to preserve history if possible (converting from svn -> git is not too hard)
= Forking Debian/Devuan packages =
(TODO - Describe what branches need to be set up, Jenkins integration, etc)
1482e4bb81cafbe283fc33d7c9b9b65273a47e41
File:Droid4 leste logo.jpg
6
98
591
2020-01-28T06:14:17Z
Xsetiadi
33
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Main Page
0
1
593
436
2020-01-30T12:48:25Z
Halftux
7
/* Links */
wikitext
text/x-wiki
= Description =
Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more.
You can find us on '''freenode''', channel '''#maemo-leste'''.
For an overview of the current status, you might want to check out: [[Status]]
Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels.
The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers.
For some devices, we have development images available, such as the N900. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software.
Also see our [[Leste_FAQ|FAQ]].
= Supported Devices =
See [[:Category:Device]]
= Development =
See [[Development]]
= Roadmap =
== Project milestones ==
https://leste.maemo.org/index.php?title=Wishlist&action=edit&redlink=1
https://github.com/maemo-leste/bugtracker/milestones
== Wishlist ==
You have an application you want to see in Leste? Please let us know [[Wishlist|here]].
= Links =
<div>
*Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io]
*Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues]
*Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/]
*Our Extras Github: [https://github.com/maemo-leste-extras/ https://github.com/maemo-leste-extras/]
*Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/]
*Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
The central point of meeting and talking is IRC and this thread: https://talk.maemo.org/showthread.php?t=100192.
</div>
*[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)]
983dc8f50e44200e73313eae3ffed7aa5ae38fdc
594
593
2020-01-30T12:51:57Z
Halftux
7
/* Links */
wikitext
text/x-wiki
= Description =
Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more.
You can find us on '''freenode''', channel '''#maemo-leste'''.
For an overview of the current status, you might want to check out: [[Status]]
Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels.
The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers.
For some devices, we have development images available, such as the N900. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software.
Also see our [[Leste_FAQ|FAQ]].
= Supported Devices =
See [[:Category:Device]]
= Development =
See [[Development]]
= Roadmap =
== Project milestones ==
https://leste.maemo.org/index.php?title=Wishlist&action=edit&redlink=1
https://github.com/maemo-leste/bugtracker/milestones
== Wishlist ==
You have an application you want to see in Leste? Please let us know [[Wishlist|here]].
= Links =
<div>
*Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io]
*Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues]
*Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/]
*Our Extras Github: [https://github.com/maemo-leste-extras/ https://github.com/maemo-leste-extras/]
*Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/]
*Our Jenkins build server: [https://phoenix.maemo.org/ https://phoenix.maemo.org/]
*Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
The central point of meeting and talking is IRC and this thread: https://talk.maemo.org/showthread.php?t=100192.
</div>
*[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)]
86fe22c6122deb9dddc5649de23ff49bef7e2e0a
595
594
2020-01-30T13:03:16Z
Halftux
7
/* Links */ irc history
wikitext
text/x-wiki
= Description =
Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more.
You can find us on '''freenode''', channel '''#maemo-leste'''.
For an overview of the current status, you might want to check out: [[Status]]
Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels.
The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers.
For some devices, we have development images available, such as the N900. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software.
Also see our [[Leste_FAQ|FAQ]].
= Supported Devices =
See [[:Category:Device]]
= Development =
See [[Development]]
= Roadmap =
== Project milestones ==
https://leste.maemo.org/index.php?title=Wishlist&action=edit&redlink=1
https://github.com/maemo-leste/bugtracker/milestones
== Wishlist ==
You have an application you want to see in Leste? Please let us know [[Wishlist|here]].
= Links =
<div>
The central point of meeting and talking is IRC (irc.freenode.net in #maemo-leste) and this thread: https://talk.maemo.org/showthread.php?t=100192.
*Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io]
*Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues]
*Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/]
*Our Extras Github: [https://github.com/maemo-leste-extras/ https://github.com/maemo-leste-extras/]
*Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/]
*Our Jenkins build server: [https://phoenix.maemo.org/ https://phoenix.maemo.org/]
*Our IRC history: [http://maedevu.maemo.org/irc.txt http://maedevu.maemo.org/irc.txt]
*Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
*[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)]
</div>
288437e8e64dbed5ec4985911de0e1c3587dff02
Main Page
0
1
596
595
2020-02-01T04:49:15Z
Derby
3
/* Project milestones */ The wishlist already has it's own section
wikitext
text/x-wiki
= Description =
Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more.
You can find us on '''freenode''', channel '''#maemo-leste'''.
For an overview of the current status, you might want to check out: [[Status]]
Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels.
The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers.
For some devices, we have development images available, such as the N900. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software.
Also see our [[Leste_FAQ|FAQ]].
= Supported Devices =
See [[:Category:Device]]
= Development =
See [[Development]]
= Roadmap =
== Project milestones ==
https://github.com/maemo-leste/bugtracker/milestones
== Wishlist ==
You have an application you want to see in Leste? Please let us know [[Wishlist|here]].
= Links =
<div>
The central point of meeting and talking is IRC (irc.freenode.net in #maemo-leste) and this thread: https://talk.maemo.org/showthread.php?t=100192.
*Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io]
*Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues]
*Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/]
*Our Extras Github: [https://github.com/maemo-leste-extras/ https://github.com/maemo-leste-extras/]
*Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/]
*Our Jenkins build server: [https://phoenix.maemo.org/ https://phoenix.maemo.org/]
*Our IRC history: [http://maedevu.maemo.org/irc.txt http://maedevu.maemo.org/irc.txt]
*Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
*[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)]
</div>
86eb5a18bf01c5fbbc1978469e7f83b403ceceda
597
596
2020-02-01T07:11:52Z
Derby
3
/* Links */ Add YouTube channel
wikitext
text/x-wiki
= Description =
Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more.
You can find us on '''freenode''', channel '''#maemo-leste'''.
For an overview of the current status, you might want to check out: [[Status]]
Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels.
The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers.
For some devices, we have development images available, such as the N900. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software.
Also see our [[Leste_FAQ|FAQ]].
= Supported Devices =
See [[:Category:Device]]
= Development =
See [[Development]]
= Roadmap =
== Project milestones ==
https://github.com/maemo-leste/bugtracker/milestones
== Wishlist ==
You have an application you want to see in Leste? Please let us know [[Wishlist|here]].
= Links =
<div>
The central point of meeting and talking is IRC (irc.freenode.net in #maemo-leste) and this thread: https://talk.maemo.org/showthread.php?t=100192.
*Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io]
*Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues]
*Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/]
*Our Extras Github: [https://github.com/maemo-leste-extras/ https://github.com/maemo-leste-extras/]
*Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/]
*Our Jenkins build server: [https://phoenix.maemo.org/ https://phoenix.maemo.org/]
*Our IRC history: [http://maedevu.maemo.org/irc.txt http://maedevu.maemo.org/irc.txt]
*Our YouTube channel: [https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w] (via [https://www.invidio.us/channel/UCgAWiHvWSuJAg5hjk7JYn1w Invidious] )
*Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
*[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)]
</div>
38e3c5d23f6506e8e2978500685604f61a1f9a4a
599
597
2020-02-01T16:28:08Z
Derby
3
Add link to new Talks page
wikitext
text/x-wiki
= Description =
Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more.
You can find us on '''freenode''', channel '''#maemo-leste'''.
For an overview of the current status, you might want to check out: [[Status]]
Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels.
The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers.
For some devices, we have development images available, such as the N900. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software.
Also see our [[Leste_FAQ|FAQ]].
= Supported Devices =
See [[:Category:Device]]
= Development =
See [[Development]]
= Roadmap =
== Project milestones ==
https://github.com/maemo-leste/bugtracker/milestones
== Wishlist ==
You have an application you want to see in Leste? Please let us know [[Wishlist|here]].
= Talks =
See [[Talks]]
= Links =
<div>
The central point of meeting and talking is IRC (irc.freenode.net in #maemo-leste) and this thread: https://talk.maemo.org/showthread.php?t=100192.
*Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io]
*Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues]
*Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/]
*Our Extras Github: [https://github.com/maemo-leste-extras/ https://github.com/maemo-leste-extras/]
*Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/]
*Our Jenkins build server: [https://phoenix.maemo.org/ https://phoenix.maemo.org/]
*Our IRC history: [http://maedevu.maemo.org/irc.txt http://maedevu.maemo.org/irc.txt]
*Our YouTube channel: [https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w] (via [https://www.invidio.us/channel/UCgAWiHvWSuJAg5hjk7JYn1w Invidious] )
*Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
*[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)]
</div>
782582928008aee2022aa780183987cf1cde0a83
600
599
2020-02-01T16:30:47Z
Derby
3
Give the FAQ a heading
wikitext
text/x-wiki
= Description =
Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more.
You can find us on '''freenode''', channel '''#maemo-leste'''.
For an overview of the current status, you might want to check out: [[Status]]
Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels.
The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers.
For some devices, we have development images available, such as the N900. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software.
= Frequently Asked Questions =
See [[Leste_FAQ|FAQ]]
= Supported Devices =
See [[:Category:Device]]
= Development =
See [[Development]]
= Roadmap =
== Project milestones ==
https://github.com/maemo-leste/bugtracker/milestones
== Wishlist ==
You have an application you want to see in Leste? Please let us know [[Wishlist|here]].
= Talks =
See [[Talks]]
= Links =
<div>
The central point of meeting and talking is IRC (irc.freenode.net in #maemo-leste) and this thread: https://talk.maemo.org/showthread.php?t=100192.
*Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io]
*Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues]
*Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/]
*Our Extras Github: [https://github.com/maemo-leste-extras/ https://github.com/maemo-leste-extras/]
*Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/]
*Our Jenkins build server: [https://phoenix.maemo.org/ https://phoenix.maemo.org/]
*Our IRC history: [http://maedevu.maemo.org/irc.txt http://maedevu.maemo.org/irc.txt]
*Our YouTube channel: [https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w] (via [https://www.invidio.us/channel/UCgAWiHvWSuJAg5hjk7JYn1w Invidious] )
*Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
*[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)]
</div>
7022669f8e049547e108b699f6a9b9fb63770523
Talks
0
99
598
2020-02-01T16:25:43Z
Derby
3
Maemo Leste talks at various events
wikitext
text/x-wiki
== FOSDEM 2020 - Freedom Main Track - 2nd February 2020 ==
'''Regaining control of your smartphone with postmarketOS and Maemo Leste - Status of Linux on the smartphone''' - ''Merlijn Wajer (Wizzup), Bart Ribbers (PureTryOut)''
[https://fosdem.org/2020/schedule/event/smartphones/ Event info]
Video: [https://live.fosdem.org/watch/janson Live stream at 15:00 CET]
== OpenFest 2019 - 2nd November 2019==
'''GNU/Linux: coming to a phone near you''' - ''Merlijn Wajer (Wizzup)''
[https://www.openfest.org/2019/en/full-schedule/#lecture-471 Event info]
Video: [https://www.youtube.com/watch?v=heQmjP5tQn0 YouTube] (via [https://invidio.us/watch?v=heQmjP5tQn0 Invidious])
== OpenAlt 2019 - 2nd November 2019 ==
'''Debian v kapse''' - ''Pavel Machek''
[https://openalt.cz/2019/program_detail.php#event_32 Event info]
== Devuan Conference #1: “THE POWER OF CHOICE” - 7th April 2019 ==
'''Maemo Leste: Mobile Hacker OS''' - ''Ivan Jelincic (parazyd)''
Video: [https://www.youtube.com/watch?v=_ULy7jBnXdo&t=12304 YouTube] (via [https://invidio.us/watch?v=_ULy7jBnXdo&t=12304 Invidious])
== FOSDEM 2019 - Lightning Talk - 2nd February 2019 ==
'''Maemo Leste - A Debian/Devuan based mobile hacker OS''' - ''Merlijn Wajer (Wizzup)''
[https://archive.fosdem.org/2019/schedule/event/maemo_leste_mobile Event info]
Video: [https://video.fosdem.org/2019/H.2215/maemo_leste_mobile.webm WebM/VP9], [https://video.fosdem.org/2019/H.2215/maemo_leste_mobile.mp4 MP4]
[https://maedevu.maemo.org/media/fosdem-2019-maemo-leste.pdf Slides]
== OpenFest 2018 - 4th November 2018 ==
'''Maemo Leste''' - ''Merlijn Wajer (Wizzup), Ivan Jelincic (parazyd)''
[https://www.openfest.org/2018/en/full-schedule/#lecture-360 Event info]
Video: [https://maedevu.maemo.org/media/openfest-2018-maemo-leste-wizzup-parazyd.webm WebM]
[https://maedevu.maemo.org/media/openfest-2018-maemo-leste.pdf Slides]
== OpenAlt 2018 - 3rd November 2018 ==
'''Maemo Leste - Debian do kapsy''' - ''Pavel Machek''
[https://openalt.cz/2018/program_detail.php#event_14 Event info]
Video: [https://www.youtube.com/watch?v=9C0j4M_AQ2I YouTube] (via [https://invidio.us/watch?v=9C0j4M_AQ2I Invidious])
[https://openalt.cz/2018/avatars/d96c9c95348879e4e6e2c27f665ca2b3-nokia_n900.pdf Slides]
08533b66f02e124fa0749fe778c6e0dcfd7e0c3c
613
598
2020-02-02T15:01:52Z
Derby
3
/* FOSDEM 2020 - Freedom Main Track - 2nd February 2020 */ Live stream is over
wikitext
text/x-wiki
== FOSDEM 2020 - Freedom Main Track - 2nd February 2020 ==
'''Regaining control of your smartphone with postmarketOS and Maemo Leste - Status of Linux on the smartphone''' - ''Merlijn Wajer (Wizzup), Bart Ribbers (PureTryOut)''
[https://fosdem.org/2020/schedule/event/smartphones/ Event info]
Video: Coming soon
== OpenFest 2019 - 2nd November 2019==
'''GNU/Linux: coming to a phone near you''' - ''Merlijn Wajer (Wizzup)''
[https://www.openfest.org/2019/en/full-schedule/#lecture-471 Event info]
Video: [https://www.youtube.com/watch?v=heQmjP5tQn0 YouTube] (via [https://invidio.us/watch?v=heQmjP5tQn0 Invidious])
== OpenAlt 2019 - 2nd November 2019 ==
'''Debian v kapse''' - ''Pavel Machek''
[https://openalt.cz/2019/program_detail.php#event_32 Event info]
== Devuan Conference #1: “THE POWER OF CHOICE” - 7th April 2019 ==
'''Maemo Leste: Mobile Hacker OS''' - ''Ivan Jelincic (parazyd)''
Video: [https://www.youtube.com/watch?v=_ULy7jBnXdo&t=12304 YouTube] (via [https://invidio.us/watch?v=_ULy7jBnXdo&t=12304 Invidious])
== FOSDEM 2019 - Lightning Talk - 2nd February 2019 ==
'''Maemo Leste - A Debian/Devuan based mobile hacker OS''' - ''Merlijn Wajer (Wizzup)''
[https://archive.fosdem.org/2019/schedule/event/maemo_leste_mobile Event info]
Video: [https://video.fosdem.org/2019/H.2215/maemo_leste_mobile.webm WebM/VP9], [https://video.fosdem.org/2019/H.2215/maemo_leste_mobile.mp4 MP4]
[https://maedevu.maemo.org/media/fosdem-2019-maemo-leste.pdf Slides]
== OpenFest 2018 - 4th November 2018 ==
'''Maemo Leste''' - ''Merlijn Wajer (Wizzup), Ivan Jelincic (parazyd)''
[https://www.openfest.org/2018/en/full-schedule/#lecture-360 Event info]
Video: [https://maedevu.maemo.org/media/openfest-2018-maemo-leste-wizzup-parazyd.webm WebM]
[https://maedevu.maemo.org/media/openfest-2018-maemo-leste.pdf Slides]
== OpenAlt 2018 - 3rd November 2018 ==
'''Maemo Leste - Debian do kapsy''' - ''Pavel Machek''
[https://openalt.cz/2018/program_detail.php#event_14 Event info]
Video: [https://www.youtube.com/watch?v=9C0j4M_AQ2I YouTube] (via [https://invidio.us/watch?v=9C0j4M_AQ2I Invidious])
[https://openalt.cz/2018/avatars/d96c9c95348879e4e6e2c27f665ca2b3-nokia_n900.pdf Slides]
eb5415178bb7131015d2cd06c14ec030be42ad5e
615
613
2020-02-03T19:23:13Z
Derby
3
/* FOSDEM 2020 - Freedom Main Track - 2nd February 2020 */ FOSDEM 2020 videos are now up
wikitext
text/x-wiki
== FOSDEM 2020 - Freedom Main Track - 2nd February 2020 ==
'''Regaining control of your smartphone with postmarketOS and Maemo Leste - Status of Linux on the smartphone''' - ''Merlijn Wajer (Wizzup), Bart Ribbers (PureTryOut)''
[https://fosdem.org/2020/schedule/event/smartphones/ Event info]
Video: [https://video.fosdem.org/2020/Janson/smartphones.webm WebM/VP9], [https://video.fosdem.org/2020/Janson/smartphones.mp4 MP4]
== OpenFest 2019 - 2nd November 2019==
'''GNU/Linux: coming to a phone near you''' - ''Merlijn Wajer (Wizzup)''
[https://www.openfest.org/2019/en/full-schedule/#lecture-471 Event info]
Video: [https://www.youtube.com/watch?v=heQmjP5tQn0 YouTube] (via [https://invidio.us/watch?v=heQmjP5tQn0 Invidious])
== OpenAlt 2019 - 2nd November 2019 ==
'''Debian v kapse''' - ''Pavel Machek''
[https://openalt.cz/2019/program_detail.php#event_32 Event info]
== Devuan Conference #1: “THE POWER OF CHOICE” - 7th April 2019 ==
'''Maemo Leste: Mobile Hacker OS''' - ''Ivan Jelincic (parazyd)''
Video: [https://www.youtube.com/watch?v=_ULy7jBnXdo&t=12304 YouTube] (via [https://invidio.us/watch?v=_ULy7jBnXdo&t=12304 Invidious])
== FOSDEM 2019 - Lightning Talk - 2nd February 2019 ==
'''Maemo Leste - A Debian/Devuan based mobile hacker OS''' - ''Merlijn Wajer (Wizzup)''
[https://archive.fosdem.org/2019/schedule/event/maemo_leste_mobile Event info]
Video: [https://video.fosdem.org/2019/H.2215/maemo_leste_mobile.webm WebM/VP9], [https://video.fosdem.org/2019/H.2215/maemo_leste_mobile.mp4 MP4]
[https://maedevu.maemo.org/media/fosdem-2019-maemo-leste.pdf Slides]
== OpenFest 2018 - 4th November 2018 ==
'''Maemo Leste''' - ''Merlijn Wajer (Wizzup), Ivan Jelincic (parazyd)''
[https://www.openfest.org/2018/en/full-schedule/#lecture-360 Event info]
Video: [https://maedevu.maemo.org/media/openfest-2018-maemo-leste-wizzup-parazyd.webm WebM]
[https://maedevu.maemo.org/media/openfest-2018-maemo-leste.pdf Slides]
== OpenAlt 2018 - 3rd November 2018 ==
'''Maemo Leste - Debian do kapsy''' - ''Pavel Machek''
[https://openalt.cz/2018/program_detail.php#event_14 Event info]
Video: [https://www.youtube.com/watch?v=9C0j4M_AQ2I YouTube] (via [https://invidio.us/watch?v=9C0j4M_AQ2I Invidious])
[https://openalt.cz/2018/avatars/d96c9c95348879e4e6e2c27f665ca2b3-nokia_n900.pdf Slides]
beae4a8b1c3c86cf19b145dd628ea9c8d8e39fb2
Leste FAQ
0
62
601
586
2020-02-02T02:01:22Z
Derby
3
/* Why do we need another mobile operating system? */ Improve answer
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is an operating system based on GNU/Linux that is currently in development. It is aimed at mobile devices with touch screens such as smartphones, tablets and PDAs.
It is built on top of '''[https://devuan.org/ Devuan]''', and thus indirectly based on [https://www.debian.org/ Debian]. Essentially, it is a modernised and liberated version of '''[https://en.wikipedia.org/wiki/Maemo#Maemo_5 Maemo 5/Fremantle]'''; the last version of the mobile Linux OS from Nokia that was released in 2009 for the [https://en.wikipedia.org/wiki/Nokia_N900 Nokia N900] internet tablet/smartphone. Unlike its predecessor which only ran on a single device, Maemo Leste runs on a variety of devices.
In Maemo Leste, closed-source packages that originate from Fremantle have been reversed engineered, liberated, updated and rebuilt; whilst open-source Fremantle packages have been updated to newer libraries and APIs, including [https://en.wikipedia.org/wiki/Hildon Hildon], the mobile user interface from Fremantle.
Maemo Leste aims to provide an unconstrained and free mobile Linux distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
Today's smartphone industry is dominated by the duopoly of Apple and Google with their iOS and Android operating systems. This leaves those of us who value information privacy and software freedoms with virtually no options when it comes to choosing a smartphone. Some pretenders have tried to change this but have ultimately [[#How_about_other_popular_non-Android_mobile_Linux_distributions.3F|fallen short in some areas]]. Maemo Leste aims to put an end to this dire situation. We provide a ''true'' GNU/Linux experience which evolves along with the base Linux distribution from which it is built on top of. Maemo Leste is the only multi-device mobile Linux distribution that prioritises the use of [[#What_is_mainline_Linux.3F|mainline Linux]]. We hope that Maemo Leste will help to raise awareness of the [[#Why_is_it_important_to_run_mainline_Linux.3F|importance of running mainline Linux]] which may eventually lead to increased consumer demand for devices that are compatible with mainline Linux, leading to improved options when choosing a smartphone.
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle.
We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired.
Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long term supported stable releases.
=== What's wrong with Android (vendor) kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained with very little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices on the market, all with kernels based on Linux; yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline].
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]).
=== How about other popular non-Android mobile Linux distributions? ===
The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided.
One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution.
Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland.
Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]], preferring to prioritise device compatibility and ease of device porting, instead of prioritising software freedoms.
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticeable in the project).
Maemo Fremantle uses the ''upstart'' init system. We initially chose Devuan because we figured Devuan might support upstart to some degree as well, so we would not have to deal with rewriting the init scripts (although we ended up rewriting them anyway as Maemo Leste now uses OpenRC). Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate; there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== Can Maemo Leste work with a Debian/systemd base? ===
Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
=== Are ARM packages Thumb-compiled? ===
Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb
b60483bb781819e247d4c5e8fcf5ff8f33e54c57
602
601
2020-02-02T02:03:08Z
Derby
3
/* Does Maemo Leste use Halium? */ Fix link
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is an operating system based on GNU/Linux that is currently in development. It is aimed at mobile devices with touch screens such as smartphones, tablets and PDAs.
It is built on top of '''[https://devuan.org/ Devuan]''', and thus indirectly based on [https://www.debian.org/ Debian]. Essentially, it is a modernised and liberated version of '''[https://en.wikipedia.org/wiki/Maemo#Maemo_5 Maemo 5/Fremantle]'''; the last version of the mobile Linux OS from Nokia that was released in 2009 for the [https://en.wikipedia.org/wiki/Nokia_N900 Nokia N900] internet tablet/smartphone. Unlike its predecessor which only ran on a single device, Maemo Leste runs on a variety of devices.
In Maemo Leste, closed-source packages that originate from Fremantle have been reversed engineered, liberated, updated and rebuilt; whilst open-source Fremantle packages have been updated to newer libraries and APIs, including [https://en.wikipedia.org/wiki/Hildon Hildon], the mobile user interface from Fremantle.
Maemo Leste aims to provide an unconstrained and free mobile Linux distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
Today's smartphone industry is dominated by the duopoly of Apple and Google with their iOS and Android operating systems. This leaves those of us who value information privacy and software freedoms with virtually no options when it comes to choosing a smartphone. Some pretenders have tried to change this but have ultimately [[#How_about_other_popular_non-Android_mobile_Linux_distributions.3F|fallen short in some areas]]. Maemo Leste aims to put an end to this dire situation. We provide a ''true'' GNU/Linux experience which evolves along with the base Linux distribution from which it is built on top of. Maemo Leste is the only multi-device mobile Linux distribution that prioritises the use of [[#What_is_mainline_Linux.3F|mainline Linux]]. We hope that Maemo Leste will help to raise awareness of the [[#Why_is_it_important_to_run_mainline_Linux.3F|importance of running mainline Linux]] which may eventually lead to increased consumer demand for devices that are compatible with mainline Linux, leading to improved options when choosing a smartphone.
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle.
We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired.
Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long term supported stable releases.
=== What's wrong with Android (vendor) kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained with very little effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices on the market, all with kernels based on Linux; yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline].
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]).
=== How about other popular non-Android mobile Linux distributions? ===
The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided.
One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution.
Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland.
Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]], preferring to prioritise device compatibility and ease of device porting, instead of prioritising software freedoms.
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticeable in the project).
Maemo Fremantle uses the ''upstart'' init system. We initially chose Devuan because we figured Devuan might support upstart to some degree as well, so we would not have to deal with rewriting the init scripts (although we ended up rewriting them anyway as Maemo Leste now uses OpenRC). Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate; there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== Can Maemo Leste work with a Debian/systemd base? ===
Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
=== Are ARM packages Thumb-compiled? ===
Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb
31aa2753a9c6abd9d45830d3db50fde009438b83
603
602
2020-02-02T02:05:41Z
Derby
3
/* What's wrong with Android (vendor) kernels? */ Improve wording
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is an operating system based on GNU/Linux that is currently in development. It is aimed at mobile devices with touch screens such as smartphones, tablets and PDAs.
It is built on top of '''[https://devuan.org/ Devuan]''', and thus indirectly based on [https://www.debian.org/ Debian]. Essentially, it is a modernised and liberated version of '''[https://en.wikipedia.org/wiki/Maemo#Maemo_5 Maemo 5/Fremantle]'''; the last version of the mobile Linux OS from Nokia that was released in 2009 for the [https://en.wikipedia.org/wiki/Nokia_N900 Nokia N900] internet tablet/smartphone. Unlike its predecessor which only ran on a single device, Maemo Leste runs on a variety of devices.
In Maemo Leste, closed-source packages that originate from Fremantle have been reversed engineered, liberated, updated and rebuilt; whilst open-source Fremantle packages have been updated to newer libraries and APIs, including [https://en.wikipedia.org/wiki/Hildon Hildon], the mobile user interface from Fremantle.
Maemo Leste aims to provide an unconstrained and free mobile Linux distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
Today's smartphone industry is dominated by the duopoly of Apple and Google with their iOS and Android operating systems. This leaves those of us who value information privacy and software freedoms with virtually no options when it comes to choosing a smartphone. Some pretenders have tried to change this but have ultimately [[#How_about_other_popular_non-Android_mobile_Linux_distributions.3F|fallen short in some areas]]. Maemo Leste aims to put an end to this dire situation. We provide a ''true'' GNU/Linux experience which evolves along with the base Linux distribution from which it is built on top of. Maemo Leste is the only multi-device mobile Linux distribution that prioritises the use of [[#What_is_mainline_Linux.3F|mainline Linux]]. We hope that Maemo Leste will help to raise awareness of the [[#Why_is_it_important_to_run_mainline_Linux.3F|importance of running mainline Linux]] which may eventually lead to increased consumer demand for devices that are compatible with mainline Linux, leading to improved options when choosing a smartphone.
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle.
We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired.
Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long term supported stable releases.
=== What's wrong with Android (vendor) kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained by vendors with almost no effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices on the market, all with kernels based on Linux; yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline].
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]).
=== How about other popular non-Android mobile Linux distributions? ===
The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided.
One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution.
Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland.
Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]], preferring to prioritise device compatibility and ease of device porting, instead of prioritising software freedoms.
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticeable in the project).
Maemo Fremantle uses the ''upstart'' init system. We initially chose Devuan because we figured Devuan might support upstart to some degree as well, so we would not have to deal with rewriting the init scripts (although we ended up rewriting them anyway as Maemo Leste now uses OpenRC). Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate; there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== Can Maemo Leste work with a Debian/systemd base? ===
Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
=== Are ARM packages Thumb-compiled? ===
Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb
d7c881e444deca0e4c25594601a447c063114828
604
603
2020-02-02T02:07:06Z
Derby
3
/* What is mainline Linux? */
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is an operating system based on GNU/Linux that is currently in development. It is aimed at mobile devices with touch screens such as smartphones, tablets and PDAs.
It is built on top of '''[https://devuan.org/ Devuan]''', and thus indirectly based on [https://www.debian.org/ Debian]. Essentially, it is a modernised and liberated version of '''[https://en.wikipedia.org/wiki/Maemo#Maemo_5 Maemo 5/Fremantle]'''; the last version of the mobile Linux OS from Nokia that was released in 2009 for the [https://en.wikipedia.org/wiki/Nokia_N900 Nokia N900] internet tablet/smartphone. Unlike its predecessor which only ran on a single device, Maemo Leste runs on a variety of devices.
In Maemo Leste, closed-source packages that originate from Fremantle have been reversed engineered, liberated, updated and rebuilt; whilst open-source Fremantle packages have been updated to newer libraries and APIs, including [https://en.wikipedia.org/wiki/Hildon Hildon], the mobile user interface from Fremantle.
Maemo Leste aims to provide an unconstrained and free mobile Linux distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
Today's smartphone industry is dominated by the duopoly of Apple and Google with their iOS and Android operating systems. This leaves those of us who value information privacy and software freedoms with virtually no options when it comes to choosing a smartphone. Some pretenders have tried to change this but have ultimately [[#How_about_other_popular_non-Android_mobile_Linux_distributions.3F|fallen short in some areas]]. Maemo Leste aims to put an end to this dire situation. We provide a ''true'' GNU/Linux experience which evolves along with the base Linux distribution from which it is built on top of. Maemo Leste is the only multi-device mobile Linux distribution that prioritises the use of [[#What_is_mainline_Linux.3F|mainline Linux]]. We hope that Maemo Leste will help to raise awareness of the [[#Why_is_it_important_to_run_mainline_Linux.3F|importance of running mainline Linux]] which may eventually lead to increased consumer demand for devices that are compatible with mainline Linux, leading to improved options when choosing a smartphone.
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle.
We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired.
Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long-term supported stable releases.
=== What's wrong with Android (vendor) kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained by vendors with almost no effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices on the market, all with kernels based on Linux; yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline].
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]).
=== How about other popular non-Android mobile Linux distributions? ===
The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided.
One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution.
Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland.
Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]], preferring to prioritise device compatibility and ease of device porting, instead of prioritising software freedoms.
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticeable in the project).
Maemo Fremantle uses the ''upstart'' init system. We initially chose Devuan because we figured Devuan might support upstart to some degree as well, so we would not have to deal with rewriting the init scripts (although we ended up rewriting them anyway as Maemo Leste now uses OpenRC). Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate; there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== Can Maemo Leste work with a Debian/systemd base? ===
Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
=== Are ARM packages Thumb-compiled? ===
Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb
8780eee998e4a8f6de67293d4f6a5f8acb2d3ee0
605
604
2020-02-02T03:00:55Z
Derby
3
Add "Does Maemo Leste run with pure mainline Linux?" question
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is an operating system based on GNU/Linux that is currently in development. It is aimed at mobile devices with touch screens such as smartphones, tablets and PDAs.
It is built on top of '''[https://devuan.org/ Devuan]''', and thus indirectly based on [https://www.debian.org/ Debian]. Essentially, it is a modernised and liberated version of '''[https://en.wikipedia.org/wiki/Maemo#Maemo_5 Maemo 5/Fremantle]'''; the last version of the mobile Linux OS from Nokia that was released in 2009 for the [https://en.wikipedia.org/wiki/Nokia_N900 Nokia N900] internet tablet/smartphone. Unlike its predecessor which only ran on a single device, Maemo Leste runs on a variety of devices.
In Maemo Leste, closed-source packages that originate from Fremantle have been reversed engineered, liberated, updated and rebuilt; whilst open-source Fremantle packages have been updated to newer libraries and APIs, including [https://en.wikipedia.org/wiki/Hildon Hildon], the mobile user interface from Fremantle.
Maemo Leste aims to provide an unconstrained and free mobile Linux distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
Today's smartphone industry is dominated by the duopoly of Apple and Google with their iOS and Android operating systems. This leaves those of us who value information privacy and software freedoms with virtually no options when it comes to choosing a smartphone. Some pretenders have tried to change this but have ultimately [[#How_about_other_popular_non-Android_mobile_Linux_distributions.3F|fallen short in some areas]]. Maemo Leste aims to put an end to this dire situation. We provide a ''true'' GNU/Linux experience which evolves along with the base Linux distribution from which it is built on top of. Maemo Leste is the only multi-device mobile Linux distribution that prioritises the use of [[#What_is_mainline_Linux.3F|mainline Linux]]. We hope that Maemo Leste will help to raise awareness of the [[#Why_is_it_important_to_run_mainline_Linux.3F|importance of running mainline Linux]] which may eventually lead to increased consumer demand for devices that are compatible with mainline Linux, leading to improved options when choosing a smartphone.
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle.
We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired.
Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long-term supported stable releases.
=== What's wrong with Android (vendor) kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained by vendors with almost no effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices on the market, all with kernels based on Linux; yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline].
=== Does Maemo Leste run with pure mainline Linux? ===
The primary devices that we support can run with a pure mainline Linux kernel, however right now our images use mainline plus a few patches. As we are still in the early phases of development, our current priority is to ensure that our supported devices are as fully functional as they can possibly be. We have already upstreamed some of our patches and our goal is to upstream the remaining ones to be able to run a 100% mainline kernel on our devices.
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]).
=== How about other popular non-Android mobile Linux distributions? ===
The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided.
One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution.
Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland.
Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]], preferring to prioritise device compatibility and ease of device porting, instead of prioritising software freedoms.
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticeable in the project).
Maemo Fremantle uses the ''upstart'' init system. We initially chose Devuan because we figured Devuan might support upstart to some degree as well, so we would not have to deal with rewriting the init scripts (although we ended up rewriting them anyway as Maemo Leste now uses OpenRC). Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate; there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== Can Maemo Leste work with a Debian/systemd base? ===
Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
=== Are ARM packages Thumb-compiled? ===
Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb
a4fb7ff3eae828754ea3813e6bce36b7723a6d67
606
605
2020-02-02T03:47:52Z
Derby
3
Add "Is Maemo Leste completely free?" question
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is an operating system based on GNU/Linux that is currently in development. It is aimed at mobile devices with touch screens such as smartphones, tablets and PDAs.
It is built on top of '''[https://devuan.org/ Devuan]''', and thus indirectly based on [https://www.debian.org/ Debian]. Essentially, it is a modernised and liberated version of '''[https://en.wikipedia.org/wiki/Maemo#Maemo_5 Maemo 5/Fremantle]'''; the last version of the mobile Linux OS from Nokia that was released in 2009 for the [https://en.wikipedia.org/wiki/Nokia_N900 Nokia N900] internet tablet/smartphone. Unlike its predecessor which only ran on a single device, Maemo Leste runs on a variety of devices.
In Maemo Leste, closed-source packages that originate from Fremantle have been reversed engineered, liberated, updated and rebuilt; whilst open-source Fremantle packages have been updated to newer libraries and APIs, including [https://en.wikipedia.org/wiki/Hildon Hildon], the mobile user interface from Fremantle.
Maemo Leste aims to provide an unconstrained and free mobile Linux distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
Today's smartphone industry is dominated by the duopoly of Apple and Google with their iOS and Android operating systems. This leaves those of us who value information privacy and software freedoms with virtually no options when it comes to choosing a smartphone. Some pretenders have tried to change this but have ultimately [[#How_about_other_popular_non-Android_mobile_Linux_distributions.3F|fallen short in some areas]]. Maemo Leste aims to put an end to this dire situation. We provide a ''true'' GNU/Linux experience which evolves along with the base Linux distribution from which it is built on top of. Maemo Leste is the only multi-device mobile Linux distribution that prioritises the use of [[#What_is_mainline_Linux.3F|mainline Linux]]. We hope that Maemo Leste will help to raise awareness of the [[#Why_is_it_important_to_run_mainline_Linux.3F|importance of running mainline Linux]] which may eventually lead to increased consumer demand for devices that are compatible with mainline Linux, leading to improved options when choosing a smartphone.
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle.
We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired.
Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long-term supported stable releases.
=== What's wrong with Android (vendor) kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained by vendors with almost no effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices on the market, all with kernels based on Linux; yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline].
=== Does Maemo Leste run with pure mainline Linux? ===
The primary devices that we support can run with a pure mainline Linux kernel, however right now our images use mainline plus a few patches. As we are still in the early phases of development, our current priority is to ensure that our supported devices are as fully functional as they can possibly be. We have already upstreamed some of our patches and our goal is to upstream the remaining ones to be able to run a 100% mainline kernel on our devices.
=== Is Maemo Leste completely free? ===
Unfortunately not. There is still no smartphone available that is fully functional without the use of [https://en.wikipedia.org/wiki/Proprietary_device_driver binary blobs]. Our primary supported devices currently require closed firmware to be able to use Wi-Fi and Bluetooth, and the TI OMAP-based devices have integrated PowerVR video hardware which require closed drivers for video acceleration. It's an unfortunate state of affairs, however progress is being made, and the PinePhone is a great example of this as it can have video acceleration with the Lima driver which is 100% free software.
Our current goal is to provide full functionality for our supported devices, however there are plans to additionally provide a blob-free, libre version of Maemo Leste with missing functionality where blobs are required.
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]).
=== How about other popular non-Android mobile Linux distributions? ===
The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided.
One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution.
Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland.
Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]], preferring to prioritise device compatibility and ease of device porting, instead of prioritising software freedoms.
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticeable in the project).
Maemo Fremantle uses the ''upstart'' init system. We initially chose Devuan because we figured Devuan might support upstart to some degree as well, so we would not have to deal with rewriting the init scripts (although we ended up rewriting them anyway as Maemo Leste now uses OpenRC). Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate; there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== Can Maemo Leste work with a Debian/systemd base? ===
Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
=== Are ARM packages Thumb-compiled? ===
Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb
eb9da47b7c7c3185c61687b84ad8c7bf05e6fc25
607
606
2020-02-02T03:50:42Z
Derby
3
Paragraph consistency
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is an operating system based on GNU/Linux that is currently in development. It is aimed at mobile devices with touch screens such as smartphones, tablets and PDAs.
It is built on top of '''[https://devuan.org/ Devuan]''', and thus indirectly based on [https://www.debian.org/ Debian]. Essentially, it is a modernised and liberated version of '''[https://en.wikipedia.org/wiki/Maemo#Maemo_5 Maemo 5/Fremantle]'''; the last version of the mobile Linux OS from Nokia that was released in 2009 for the [https://en.wikipedia.org/wiki/Nokia_N900 Nokia N900] internet tablet/smartphone. Unlike its predecessor which only ran on a single device, Maemo Leste runs on a variety of devices.
In Maemo Leste, closed-source packages that originate from Fremantle have been reversed engineered, liberated, updated and rebuilt; whilst open-source Fremantle packages have been updated to newer libraries and APIs, including [https://en.wikipedia.org/wiki/Hildon Hildon], the mobile user interface from Fremantle.
Maemo Leste aims to provide an unconstrained and free mobile Linux distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
Today's smartphone industry is dominated by the duopoly of Apple and Google with their iOS and Android operating systems. This leaves those of us who value information privacy and software freedoms with virtually no options when it comes to choosing a smartphone. Some pretenders have tried to change this but have ultimately [[#How_about_other_popular_non-Android_mobile_Linux_distributions.3F|fallen short in some areas]]. Maemo Leste aims to put an end to this dire situation. We provide a ''true'' GNU/Linux experience which evolves along with the base Linux distribution from which it is built on top of. Maemo Leste is the only multi-device mobile Linux distribution that prioritises the use of [[#What_is_mainline_Linux.3F|mainline Linux]]. We hope that Maemo Leste will help to raise awareness of the [[#Why_is_it_important_to_run_mainline_Linux.3F|importance of running mainline Linux]] which may eventually lead to increased consumer demand for devices that are compatible with mainline Linux, leading to improved options when choosing a smartphone.
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle.
We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired.
Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long-term supported stable releases.
=== What's wrong with Android (vendor) kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained by vendors with almost no effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices on the market, all with kernels based on Linux; yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline].
=== Does Maemo Leste run with pure mainline Linux? ===
The primary devices that we support can run with a pure mainline Linux kernel, however right now our images use mainline plus a few patches. As we are still in the early phases of development, our current priority is to ensure that our supported devices are as fully functional as they can possibly be. We have already upstreamed some of our patches and our goal is to upstream the remaining ones to be able to run a 100% mainline kernel on our devices.
=== Is Maemo Leste completely free? ===
Unfortunately not. There is still no smartphone available that is fully functional without the use of [https://en.wikipedia.org/wiki/Proprietary_device_driver binary blobs]. Our primary supported devices currently require closed firmware to be able to use Wi-Fi and Bluetooth, and the TI OMAP-based devices have integrated PowerVR video hardware which require closed drivers for video acceleration. It's an unfortunate state of affairs, however progress is being made, and the PinePhone is a great example of this as it can have video acceleration with the Lima driver which is 100% free software.
Our current goal is to provide full functionality for our supported devices, however there are plans to additionally provide a blob-free, libre version of Maemo Leste with missing functionality where blobs are required.
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]).
=== How about other popular non-Android mobile Linux distributions? ===
The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided.
One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution.
Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland.
Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]], preferring to prioritise device compatibility and ease of device porting, instead of prioritising software freedoms.
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticeable in the project).
Maemo Fremantle uses the ''upstart'' init system. We initially chose Devuan because we figured Devuan might support upstart to some degree as well, so we would not have to deal with rewriting the init scripts (although we ended up rewriting them anyway as Maemo Leste now uses OpenRC). Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate; there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== Can Maemo Leste work with a Debian/systemd base? ===
Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
=== Are ARM packages Thumb-compiled? ===
Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb
92737e3598dd8675a48086b3114d73da78df9c7d
608
607
2020-02-02T04:28:49Z
Derby
3
/* Does Maemo Leste run with pure mainline Linux? */
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is an operating system based on GNU/Linux that is currently in development. It is aimed at mobile devices with touch screens such as smartphones, tablets and PDAs.
It is built on top of '''[https://devuan.org/ Devuan]''', and thus indirectly based on [https://www.debian.org/ Debian]. Essentially, it is a modernised and liberated version of '''[https://en.wikipedia.org/wiki/Maemo#Maemo_5 Maemo 5/Fremantle]'''; the last version of the mobile Linux OS from Nokia that was released in 2009 for the [https://en.wikipedia.org/wiki/Nokia_N900 Nokia N900] internet tablet/smartphone. Unlike its predecessor which only ran on a single device, Maemo Leste runs on a variety of devices.
In Maemo Leste, closed-source packages that originate from Fremantle have been reversed engineered, liberated, updated and rebuilt; whilst open-source Fremantle packages have been updated to newer libraries and APIs, including [https://en.wikipedia.org/wiki/Hildon Hildon], the mobile user interface from Fremantle.
Maemo Leste aims to provide an unconstrained and free mobile Linux distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
Today's smartphone industry is dominated by the duopoly of Apple and Google with their iOS and Android operating systems. This leaves those of us who value information privacy and software freedoms with virtually no options when it comes to choosing a smartphone. Some pretenders have tried to change this but have ultimately [[#How_about_other_popular_non-Android_mobile_Linux_distributions.3F|fallen short in some areas]]. Maemo Leste aims to put an end to this dire situation. We provide a ''true'' GNU/Linux experience which evolves along with the base Linux distribution from which it is built on top of. Maemo Leste is the only multi-device mobile Linux distribution that prioritises the use of [[#What_is_mainline_Linux.3F|mainline Linux]]. We hope that Maemo Leste will help to raise awareness of the [[#Why_is_it_important_to_run_mainline_Linux.3F|importance of running mainline Linux]] which may eventually lead to increased consumer demand for devices that are compatible with mainline Linux, leading to improved options when choosing a smartphone.
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle.
We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired.
Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long-term supported stable releases.
=== What's wrong with Android (vendor) kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained by vendors with almost no effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices on the market, all with kernels based on Linux; yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline].
=== Does Maemo Leste run with pure mainline Linux? ===
The primary devices that we support can run with a pure mainline Linux kernel, however right now our images use mainline plus a few patches. As we are still in the early phases of development, our current priority is to ensure that our supported devices are as fully functional as they can possibly be, thus the additional patches help to achieve this. We have already upstreamed some of our patches and our goal is to upstream the remaining ones to be able to run a 100% mainline kernel on our devices.
=== Is Maemo Leste completely free? ===
Unfortunately not. There is still no smartphone available that is fully functional without the use of [https://en.wikipedia.org/wiki/Proprietary_device_driver binary blobs]. Our primary supported devices currently require closed firmware to be able to use Wi-Fi and Bluetooth, and the TI OMAP-based devices have integrated PowerVR video hardware which require closed drivers for video acceleration. It's an unfortunate state of affairs, however progress is being made, and the PinePhone is a great example of this as it can have video acceleration with the Lima driver which is 100% free software.
Our current goal is to provide full functionality for our supported devices, however there are plans to additionally provide a blob-free, libre version of Maemo Leste with missing functionality where blobs are required.
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]).
=== How about other popular non-Android mobile Linux distributions? ===
The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided.
One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution.
Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland.
Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]], preferring to prioritise device compatibility and ease of device porting, instead of prioritising software freedoms.
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticeable in the project).
Maemo Fremantle uses the ''upstart'' init system. We initially chose Devuan because we figured Devuan might support upstart to some degree as well, so we would not have to deal with rewriting the init scripts (although we ended up rewriting them anyway as Maemo Leste now uses OpenRC). Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate; there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== Can Maemo Leste work with a Debian/systemd base? ===
Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
=== Are ARM packages Thumb-compiled? ===
Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb
64ffe46c0f1aff53bf02f090992a0a92a3129cd3
609
608
2020-02-02T05:29:57Z
Derby
3
/* What is Maemo Leste? */ Add paragragh explaining the benefits of building on top of Devuan compared to Fremantle
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is an operating system based on GNU/Linux that is currently in development. It is aimed at mobile devices with touch screens such as smartphones, tablets and PDAs.
It is built on top of '''[https://devuan.org/ Devuan]''', and thus indirectly based on [https://www.debian.org/ Debian]. Essentially, it is a modernised and liberated version of '''[https://en.wikipedia.org/wiki/Maemo#Maemo_5 Maemo 5/Fremantle]'''; the last version of the mobile Linux OS from Nokia that was released in 2009 for the [https://en.wikipedia.org/wiki/Nokia_N900 Nokia N900] internet tablet/smartphone. Unlike its predecessor which only ran on a single device, Maemo Leste runs on a variety of devices.
In Maemo Leste, closed-source packages that originate from Fremantle have been reversed engineered, liberated, updated and rebuilt; whilst open-source Fremantle packages have been updated to newer libraries and APIs, including [https://en.wikipedia.org/wiki/Hildon Hildon], the mobile user interface from Fremantle.
Building on top an actively developed Linux distribution makes Maemo Leste maintenance sustainable. Fremantle was built on top of Debian packages forked from several versions of Debian, leaving the onus on Nokia to maintain every single package. Leste however, utilises Devuan's package repositories meaning that much of the heavy lifting is already done by upstream; we only have to manage and maintain a limited set of packages.
All in all, Maemo Leste aims to provide an unconstrained and free mobile Linux distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
Today's smartphone industry is dominated by the duopoly of Apple and Google with their iOS and Android operating systems. This leaves those of us who value information privacy and software freedoms with virtually no options when it comes to choosing a smartphone. Some pretenders have tried to change this but have ultimately [[#How_about_other_popular_non-Android_mobile_Linux_distributions.3F|fallen short in some areas]]. Maemo Leste aims to put an end to this dire situation. We provide a ''true'' GNU/Linux experience which evolves along with the base Linux distribution from which it is built on top of. Maemo Leste is the only multi-device mobile Linux distribution that prioritises the use of [[#What_is_mainline_Linux.3F|mainline Linux]]. We hope that Maemo Leste will help to raise awareness of the [[#Why_is_it_important_to_run_mainline_Linux.3F|importance of running mainline Linux]] which may eventually lead to increased consumer demand for devices that are compatible with mainline Linux, leading to improved options when choosing a smartphone.
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle.
We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired.
Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long-term supported stable releases.
=== What's wrong with Android (vendor) kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained by vendors with almost no effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices on the market, all with kernels based on Linux; yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline].
=== Does Maemo Leste run with pure mainline Linux? ===
The primary devices that we support can run with a pure mainline Linux kernel, however right now our images use mainline plus a few patches. As we are still in the early phases of development, our current priority is to ensure that our supported devices are as fully functional as they can possibly be, thus the additional patches help to achieve this. We have already upstreamed some of our patches and our goal is to upstream the remaining ones to be able to run a 100% mainline kernel on our devices.
=== Is Maemo Leste completely free? ===
Unfortunately not. There is still no smartphone available that is fully functional without the use of [https://en.wikipedia.org/wiki/Proprietary_device_driver binary blobs]. Our primary supported devices currently require closed firmware to be able to use Wi-Fi and Bluetooth, and the TI OMAP-based devices have integrated PowerVR video hardware which require closed drivers for video acceleration. It's an unfortunate state of affairs, however progress is being made, and the PinePhone is a great example of this as it can have video acceleration with the Lima driver which is 100% free software.
Our current goal is to provide full functionality for our supported devices, however there are plans to additionally provide a blob-free, libre version of Maemo Leste with missing functionality where blobs are required.
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]).
=== How about other popular non-Android mobile Linux distributions? ===
The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided.
One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution.
Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland.
Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]], preferring to prioritise device compatibility and ease of device porting, instead of prioritising software freedoms.
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticeable in the project).
Maemo Fremantle uses the ''upstart'' init system. We initially chose Devuan because we figured Devuan might support upstart to some degree as well, so we would not have to deal with rewriting the init scripts (although we ended up rewriting them anyway as Maemo Leste now uses OpenRC). Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate; there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== Can Maemo Leste work with a Debian/systemd base? ===
Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
=== Are ARM packages Thumb-compiled? ===
Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb
b838803e88248460a89c2a4e7dc1b1fae9e6b40a
610
609
2020-02-02T06:19:18Z
Derby
3
Add "Can I use Maemo Leste with musl?" question
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is an operating system based on GNU/Linux that is currently in development. It is aimed at mobile devices with touch screens such as smartphones, tablets and PDAs.
It is built on top of '''[https://devuan.org/ Devuan]''', and thus indirectly based on [https://www.debian.org/ Debian]. Essentially, it is a modernised and liberated version of '''[https://en.wikipedia.org/wiki/Maemo#Maemo_5 Maemo 5/Fremantle]'''; the last version of the mobile Linux OS from Nokia that was released in 2009 for the [https://en.wikipedia.org/wiki/Nokia_N900 Nokia N900] internet tablet/smartphone. Unlike its predecessor which only ran on a single device, Maemo Leste runs on a variety of devices.
In Maemo Leste, closed-source packages that originate from Fremantle have been reversed engineered, liberated, updated and rebuilt; whilst open-source Fremantle packages have been updated to newer libraries and APIs, including [https://en.wikipedia.org/wiki/Hildon Hildon], the mobile user interface from Fremantle.
Building on top an actively developed Linux distribution makes Maemo Leste maintenance sustainable. Fremantle was built on top of Debian packages forked from several versions of Debian, leaving the onus on Nokia to maintain every single package. Leste however, utilises Devuan's package repositories meaning that much of the heavy lifting is already done by upstream; we only have to manage and maintain a limited set of packages.
All in all, Maemo Leste aims to provide an unconstrained and free mobile Linux distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
Today's smartphone industry is dominated by the duopoly of Apple and Google with their iOS and Android operating systems. This leaves those of us who value information privacy and software freedoms with virtually no options when it comes to choosing a smartphone. Some pretenders have tried to change this but have ultimately [[#How_about_other_popular_non-Android_mobile_Linux_distributions.3F|fallen short in some areas]]. Maemo Leste aims to put an end to this dire situation. We provide a ''true'' GNU/Linux experience which evolves along with the base Linux distribution from which it is built on top of. Maemo Leste is the only multi-device mobile Linux distribution that prioritises the use of [[#What_is_mainline_Linux.3F|mainline Linux]]. We hope that Maemo Leste will help to raise awareness of the [[#Why_is_it_important_to_run_mainline_Linux.3F|importance of running mainline Linux]] which may eventually lead to increased consumer demand for devices that are compatible with mainline Linux, leading to improved options when choosing a smartphone.
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle.
We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired.
Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long-term supported stable releases.
=== What's wrong with Android (vendor) kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained by vendors with almost no effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices on the market, all with kernels based on Linux; yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline].
=== Does Maemo Leste run with pure mainline Linux? ===
The primary devices that we support can run with a pure mainline Linux kernel, however right now our images use mainline plus a few patches. As we are still in the early phases of development, our current priority is to ensure that our supported devices are as fully functional as they can possibly be, thus the additional patches help to achieve this. We have already upstreamed some of our patches and our goal is to upstream the remaining ones to be able to run a 100% mainline kernel on our devices.
=== Is Maemo Leste completely free? ===
Unfortunately not. There is still no smartphone available that is fully functional without the use of [https://en.wikipedia.org/wiki/Proprietary_device_driver binary blobs]. Our primary supported devices currently require closed firmware to be able to use Wi-Fi and Bluetooth, and the TI OMAP-based devices have integrated PowerVR video hardware which require closed drivers for video acceleration. It's an unfortunate state of affairs, however progress is being made, and the PinePhone is a great example of this as it can have video acceleration with the Lima driver which is 100% free software.
Our current goal is to provide full functionality for our supported devices, however there are plans to additionally provide a blob-free, libre version of Maemo Leste with missing functionality where blobs are required.
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]).
=== How about other popular non-Android mobile Linux distributions? ===
The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided.
One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution.
Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland.
Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]], preferring to prioritise device compatibility and ease of device porting, instead of prioritising software freedoms.
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticeable in the project).
Maemo Fremantle uses the ''upstart'' init system. We initially chose Devuan because we figured Devuan might support upstart to some degree as well, so we would not have to deal with rewriting the init scripts (although we ended up rewriting them anyway as Maemo Leste now uses OpenRC). Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate; there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== Can Maemo Leste work with a Debian/systemd base? ===
Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste.
=== musl libc kicks arse. Can I use Maemo Leste with musl? ===
We love musl libc too. musl provides a lean, efficient and standards-compliant implementation of libc. What's not to like? Well unfortunately a lot of software built for Linux is glibc-dependent and is not standards-compliant. Rebuilding this software with musl can result in unexpected runtime behaviour or bugs. musl would be an extra hurdle that we don't really need right now. Still, it would be nice to one day see Maemo Leste rebuilt against musl and might make for an interesting future project, but until then, make sure you check out postmarketOS.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
=== Are ARM packages Thumb-compiled? ===
Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb
d60f4bc4dcb8c179c6bb9cf15e45547541e7932d
611
610
2020-02-02T14:45:36Z
Derby
3
/* Is Maemo Leste completely free? */
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is an operating system based on GNU/Linux that is currently in development. It is aimed at mobile devices with touch screens such as smartphones, tablets and PDAs.
It is built on top of '''[https://devuan.org/ Devuan]''', and thus indirectly based on [https://www.debian.org/ Debian]. Essentially, it is a modernised and liberated version of '''[https://en.wikipedia.org/wiki/Maemo#Maemo_5 Maemo 5/Fremantle]'''; the last version of the mobile Linux OS from Nokia that was released in 2009 for the [https://en.wikipedia.org/wiki/Nokia_N900 Nokia N900] internet tablet/smartphone. Unlike its predecessor which only ran on a single device, Maemo Leste runs on a variety of devices.
In Maemo Leste, closed-source packages that originate from Fremantle have been reversed engineered, liberated, updated and rebuilt; whilst open-source Fremantle packages have been updated to newer libraries and APIs, including [https://en.wikipedia.org/wiki/Hildon Hildon], the mobile user interface from Fremantle.
Building on top an actively developed Linux distribution makes Maemo Leste maintenance sustainable. Fremantle was built on top of Debian packages forked from several versions of Debian, leaving the onus on Nokia to maintain every single package. Leste however, utilises Devuan's package repositories meaning that much of the heavy lifting is already done by upstream; we only have to manage and maintain a limited set of packages.
All in all, Maemo Leste aims to provide an unconstrained and free mobile Linux distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
Today's smartphone industry is dominated by the duopoly of Apple and Google with their iOS and Android operating systems. This leaves those of us who value information privacy and software freedoms with virtually no options when it comes to choosing a smartphone. Some pretenders have tried to change this but have ultimately [[#How_about_other_popular_non-Android_mobile_Linux_distributions.3F|fallen short in some areas]]. Maemo Leste aims to put an end to this dire situation. We provide a ''true'' GNU/Linux experience which evolves along with the base Linux distribution from which it is built on top of. Maemo Leste is the only multi-device mobile Linux distribution that prioritises the use of [[#What_is_mainline_Linux.3F|mainline Linux]]. We hope that Maemo Leste will help to raise awareness of the [[#Why_is_it_important_to_run_mainline_Linux.3F|importance of running mainline Linux]] which may eventually lead to increased consumer demand for devices that are compatible with mainline Linux, leading to improved options when choosing a smartphone.
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle.
We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired.
Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long-term supported stable releases.
=== What's wrong with Android (vendor) kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained by vendors with almost no effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices on the market, all with kernels based on Linux; yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline].
=== Does Maemo Leste run with pure mainline Linux? ===
The primary devices that we support can run with a pure mainline Linux kernel, however right now our images use mainline plus a few patches. As we are still in the early phases of development, our current priority is to ensure that our supported devices are as fully functional as they can possibly be, thus the additional patches help to achieve this. We have already upstreamed some of our patches and our goal is to upstream the remaining ones to be able to run a 100% mainline kernel on our devices.
=== Is Maemo Leste completely free? ===
Unfortunately not. There is still no smartphone available that is fully functional without the use of [https://en.wikipedia.org/wiki/Proprietary_device_driver binary blobs]. Our primary supported devices currently require closed firmware to be able to use Wi-Fi and Bluetooth, and the TI OMAP-based devices have integrated PowerVR video hardware which require closed user space drivers for video acceleration. It's an unfortunate state of affairs, however progress is being made, and the PinePhone is a great example of this as it can have video acceleration with the Lima driver which is 100% free software.
Our current goal is to provide full functionality for our supported devices, however there are plans to additionally provide a blob-free, libre version of Maemo Leste with missing functionality where blobs are required.
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]).
=== How about other popular non-Android mobile Linux distributions? ===
The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided.
One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution.
Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland.
Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]], preferring to prioritise device compatibility and ease of device porting, instead of prioritising software freedoms.
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticeable in the project).
Maemo Fremantle uses the ''upstart'' init system. We initially chose Devuan because we figured Devuan might support upstart to some degree as well, so we would not have to deal with rewriting the init scripts (although we ended up rewriting them anyway as Maemo Leste now uses OpenRC). Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate; there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== Can Maemo Leste work with a Debian/systemd base? ===
Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste.
=== musl libc kicks arse. Can I use Maemo Leste with musl? ===
We love musl libc too. musl provides a lean, efficient and standards-compliant implementation of libc. What's not to like? Well unfortunately a lot of software built for Linux is glibc-dependent and is not standards-compliant. Rebuilding this software with musl can result in unexpected runtime behaviour or bugs. musl would be an extra hurdle that we don't really need right now. Still, it would be nice to one day see Maemo Leste rebuilt against musl and might make for an interesting future project, but until then, make sure you check out postmarketOS.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
=== Are ARM packages Thumb-compiled? ===
Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb
9d78866ee0d1dec170333b162eaaaed89f74c15f
612
611
2020-02-02T14:55:00Z
Derby
3
/* What is Maemo Leste? */ Add comment on available upstream packages
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is an operating system based on GNU/Linux that is currently in development. It is aimed at mobile devices with touch screens such as smartphones, tablets and PDAs.
It is built on top of '''[https://devuan.org/ Devuan]''', and thus indirectly based on [https://www.debian.org/ Debian]. Essentially, it is a modernised and liberated version of '''[https://en.wikipedia.org/wiki/Maemo#Maemo_5 Maemo 5/Fremantle]'''; the last version of the mobile Linux OS from Nokia that was released in 2009 for the [https://en.wikipedia.org/wiki/Nokia_N900 Nokia N900] internet tablet/smartphone. Unlike its predecessor which only ran on a single device, Maemo Leste runs on a variety of devices.
In Maemo Leste, closed-source packages that originate from Fremantle have been reversed engineered, liberated, updated and rebuilt; whilst open-source Fremantle packages have been updated to newer libraries and APIs, including [https://en.wikipedia.org/wiki/Hildon Hildon], the mobile user interface from Fremantle.
Building on top an actively developed Linux distribution makes Maemo Leste maintenance sustainable. Fremantle was built on top of Debian packages forked from several versions of Debian, leaving the onus on Nokia to maintain every single package. Leste however, utilises Devuan's package repositories meaning that much of the heavy lifting is already done by upstream; we only have to manage and maintain a limited set of packages. This also gives us the benefit of having access to over 20,000 packages from upstream, immediately available for installation in Maemo Leste.
All in all, Maemo Leste aims to provide an unconstrained and free mobile Linux distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
Today's smartphone industry is dominated by the duopoly of Apple and Google with their iOS and Android operating systems. This leaves those of us who value information privacy and software freedoms with virtually no options when it comes to choosing a smartphone. Some pretenders have tried to change this but have ultimately [[#How_about_other_popular_non-Android_mobile_Linux_distributions.3F|fallen short in some areas]]. Maemo Leste aims to put an end to this dire situation. We provide a ''true'' GNU/Linux experience which evolves along with the base Linux distribution from which it is built on top of. Maemo Leste is the only multi-device mobile Linux distribution that prioritises the use of [[#What_is_mainline_Linux.3F|mainline Linux]]. We hope that Maemo Leste will help to raise awareness of the [[#Why_is_it_important_to_run_mainline_Linux.3F|importance of running mainline Linux]] which may eventually lead to increased consumer demand for devices that are compatible with mainline Linux, leading to improved options when choosing a smartphone.
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle.
We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired.
Halium uses Linux kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long-term supported stable releases.
=== What's wrong with Android (vendor) kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained by vendors with almost no effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices on the market, all with kernels based on Linux; yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline].
=== Does Maemo Leste run with pure mainline Linux? ===
The primary devices that we support can run with a pure mainline Linux kernel, however right now our images use mainline plus a few patches. As we are still in the early phases of development, our current priority is to ensure that our supported devices are as fully functional as they can possibly be, thus the additional patches help to achieve this. We have already upstreamed some of our patches and our goal is to upstream the remaining ones to be able to run a 100% mainline kernel on our devices.
=== Is Maemo Leste completely free? ===
Unfortunately not. There is still no smartphone available that is fully functional without the use of [https://en.wikipedia.org/wiki/Proprietary_device_driver binary blobs]. Our primary supported devices currently require closed firmware to be able to use Wi-Fi and Bluetooth, and the TI OMAP-based devices have integrated PowerVR video hardware which require closed user space drivers for video acceleration. It's an unfortunate state of affairs, however progress is being made, and the PinePhone is a great example of this as it can have video acceleration with the Lima driver which is 100% free software.
Our current goal is to provide full functionality for our supported devices, however there are plans to additionally provide a blob-free, libre version of Maemo Leste with missing functionality where blobs are required.
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]).
=== How about other popular non-Android mobile Linux distributions? ===
The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided.
One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution.
Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland.
Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]], preferring to prioritise device compatibility and ease of device porting, instead of prioritising software freedoms.
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticeable in the project).
Maemo Fremantle uses the ''upstart'' init system. We initially chose Devuan because we figured Devuan might support upstart to some degree as well, so we would not have to deal with rewriting the init scripts (although we ended up rewriting them anyway as Maemo Leste now uses OpenRC). Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate; there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== Can Maemo Leste work with a Debian/systemd base? ===
Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste.
=== musl libc kicks arse. Can I use Maemo Leste with musl? ===
We love musl libc too. musl provides a lean, efficient and standards-compliant implementation of libc. What's not to like? Well unfortunately a lot of software built for Linux is glibc-dependent and is not standards-compliant. Rebuilding this software with musl can result in unexpected runtime behaviour or bugs. musl would be an extra hurdle that we don't really need right now. Still, it would be nice to one day see Maemo Leste rebuilt against musl and might make for an interesting future project, but until then, make sure you check out postmarketOS.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
=== Are ARM packages Thumb-compiled? ===
Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb
0b74aedc82d94bf6672aa6e5bc560d408cb5e0c8
614
612
2020-02-02T16:01:38Z
Derby
3
/* Does Maemo Leste use Halium? */
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is an operating system based on GNU/Linux that is currently in development. It is aimed at mobile devices with touch screens such as smartphones, tablets and PDAs.
It is built on top of '''[https://devuan.org/ Devuan]''', and thus indirectly based on [https://www.debian.org/ Debian]. Essentially, it is a modernised and liberated version of '''[https://en.wikipedia.org/wiki/Maemo#Maemo_5 Maemo 5/Fremantle]'''; the last version of the mobile Linux OS from Nokia that was released in 2009 for the [https://en.wikipedia.org/wiki/Nokia_N900 Nokia N900] internet tablet/smartphone. Unlike its predecessor which only ran on a single device, Maemo Leste runs on a variety of devices.
In Maemo Leste, closed-source packages that originate from Fremantle have been reversed engineered, liberated, updated and rebuilt; whilst open-source Fremantle packages have been updated to newer libraries and APIs, including [https://en.wikipedia.org/wiki/Hildon Hildon], the mobile user interface from Fremantle.
Building on top an actively developed Linux distribution makes Maemo Leste maintenance sustainable. Fremantle was built on top of Debian packages forked from several versions of Debian, leaving the onus on Nokia to maintain every single package. Leste however, utilises Devuan's package repositories meaning that much of the heavy lifting is already done by upstream; we only have to manage and maintain a limited set of packages. This also gives us the benefit of having access to over 20,000 packages from upstream, immediately available for installation in Maemo Leste.
All in all, Maemo Leste aims to provide an unconstrained and free mobile Linux distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
Today's smartphone industry is dominated by the duopoly of Apple and Google with their iOS and Android operating systems. This leaves those of us who value information privacy and software freedoms with virtually no options when it comes to choosing a smartphone. Some pretenders have tried to change this but have ultimately [[#How_about_other_popular_non-Android_mobile_Linux_distributions.3F|fallen short in some areas]]. Maemo Leste aims to put an end to this dire situation. We provide a ''true'' GNU/Linux experience which evolves along with the base Linux distribution from which it is built on top of. Maemo Leste is the only multi-device mobile Linux distribution that prioritises the use of [[#What_is_mainline_Linux.3F|mainline Linux]]. We hope that Maemo Leste will help to raise awareness of the [[#Why_is_it_important_to_run_mainline_Linux.3F|importance of running mainline Linux]] which may eventually lead to increased consumer demand for devices that are compatible with mainline Linux, leading to improved options when choosing a smartphone.
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle.
We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired.
Halium uses kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long-term supported stable releases.
=== What's wrong with Android (vendor) kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained by vendors with almost no effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices on the market, all with kernels based on Linux; yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline].
=== Does Maemo Leste run with pure mainline Linux? ===
The primary devices that we support can run with a pure mainline Linux kernel, however right now our images use mainline plus a few patches. As we are still in the early phases of development, our current priority is to ensure that our supported devices are as fully functional as they can possibly be, thus the additional patches help to achieve this. We have already upstreamed some of our patches and our goal is to upstream the remaining ones to be able to run a 100% mainline kernel on our devices.
=== Is Maemo Leste completely free? ===
Unfortunately not. There is still no smartphone available that is fully functional without the use of [https://en.wikipedia.org/wiki/Proprietary_device_driver binary blobs]. Our primary supported devices currently require closed firmware to be able to use Wi-Fi and Bluetooth, and the TI OMAP-based devices have integrated PowerVR video hardware which require closed user space drivers for video acceleration. It's an unfortunate state of affairs, however progress is being made, and the PinePhone is a great example of this as it can have video acceleration with the Lima driver which is 100% free software.
Our current goal is to provide full functionality for our supported devices, however there are plans to additionally provide a blob-free, libre version of Maemo Leste with missing functionality where blobs are required.
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]).
=== How about other popular non-Android mobile Linux distributions? ===
The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided.
One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution.
Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland.
Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_Linux_kernels.3F|Android kernels]], preferring to prioritise device compatibility and ease of device porting, instead of prioritising software freedoms.
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticeable in the project).
Maemo Fremantle uses the ''upstart'' init system. We initially chose Devuan because we figured Devuan might support upstart to some degree as well, so we would not have to deal with rewriting the init scripts (although we ended up rewriting them anyway as Maemo Leste now uses OpenRC). Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate; there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== Can Maemo Leste work with a Debian/systemd base? ===
Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste.
=== musl libc kicks arse. Can I use Maemo Leste with musl? ===
We love musl libc too. musl provides a lean, efficient and standards-compliant implementation of libc. What's not to like? Well unfortunately a lot of software built for Linux is glibc-dependent and is not standards-compliant. Rebuilding this software with musl can result in unexpected runtime behaviour or bugs. musl would be an extra hurdle that we don't really need right now. Still, it would be nice to one day see Maemo Leste rebuilt against musl and might make for an interesting future project, but until then, make sure you check out postmarketOS.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
=== Are ARM packages Thumb-compiled? ===
Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb
d457be4876c6508a7be05627b9c105f7587a02ee
626
614
2020-02-17T13:35:21Z
Derby
3
/* How about other popular non-Android mobile Linux distributions? */ Fix broken link
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is an operating system based on GNU/Linux that is currently in development. It is aimed at mobile devices with touch screens such as smartphones, tablets and PDAs.
It is built on top of '''[https://devuan.org/ Devuan]''', and thus indirectly based on [https://www.debian.org/ Debian]. Essentially, it is a modernised and liberated version of '''[https://en.wikipedia.org/wiki/Maemo#Maemo_5 Maemo 5/Fremantle]'''; the last version of the mobile Linux OS from Nokia that was released in 2009 for the [https://en.wikipedia.org/wiki/Nokia_N900 Nokia N900] internet tablet/smartphone. Unlike its predecessor which only ran on a single device, Maemo Leste runs on a variety of devices.
In Maemo Leste, closed-source packages that originate from Fremantle have been reversed engineered, liberated, updated and rebuilt; whilst open-source Fremantle packages have been updated to newer libraries and APIs, including [https://en.wikipedia.org/wiki/Hildon Hildon], the mobile user interface from Fremantle.
Building on top an actively developed Linux distribution makes Maemo Leste maintenance sustainable. Fremantle was built on top of Debian packages forked from several versions of Debian, leaving the onus on Nokia to maintain every single package. Leste however, utilises Devuan's package repositories meaning that much of the heavy lifting is already done by upstream; we only have to manage and maintain a limited set of packages. This also gives us the benefit of having access to over 20,000 packages from upstream, immediately available for installation in Maemo Leste.
All in all, Maemo Leste aims to provide an unconstrained and free mobile Linux distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
Today's smartphone industry is dominated by the duopoly of Apple and Google with their iOS and Android operating systems. This leaves those of us who value information privacy and software freedoms with virtually no options when it comes to choosing a smartphone. Some pretenders have tried to change this but have ultimately [[#How_about_other_popular_non-Android_mobile_Linux_distributions.3F|fallen short in some areas]]. Maemo Leste aims to put an end to this dire situation. We provide a ''true'' GNU/Linux experience which evolves along with the base Linux distribution from which it is built on top of. Maemo Leste is the only multi-device mobile Linux distribution that prioritises the use of [[#What_is_mainline_Linux.3F|mainline Linux]]. We hope that Maemo Leste will help to raise awareness of the [[#Why_is_it_important_to_run_mainline_Linux.3F|importance of running mainline Linux]] which may eventually lead to increased consumer demand for devices that are compatible with mainline Linux, leading to improved options when choosing a smartphone.
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle.
We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired.
Halium uses kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long-term supported stable releases.
=== What's wrong with Android (vendor) kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained by vendors with almost no effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices on the market, all with kernels based on Linux; yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline].
=== Does Maemo Leste run with pure mainline Linux? ===
The primary devices that we support can run with a pure mainline Linux kernel, however right now our images use mainline plus a few patches. As we are still in the early phases of development, our current priority is to ensure that our supported devices are as fully functional as they can possibly be, thus the additional patches help to achieve this. We have already upstreamed some of our patches and our goal is to upstream the remaining ones to be able to run a 100% mainline kernel on our devices.
=== Is Maemo Leste completely free? ===
Unfortunately not. There is still no smartphone available that is fully functional without the use of [https://en.wikipedia.org/wiki/Proprietary_device_driver binary blobs]. Our primary supported devices currently require closed firmware to be able to use Wi-Fi and Bluetooth, and the TI OMAP-based devices have integrated PowerVR video hardware which require closed user space drivers for video acceleration. It's an unfortunate state of affairs, however progress is being made, and the PinePhone is a great example of this as it can have video acceleration with the Lima driver which is 100% free software.
Our current goal is to provide full functionality for our supported devices, however there are plans to additionally provide a blob-free, libre version of Maemo Leste with missing functionality where blobs are required.
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]).
=== How about other popular non-Android mobile Linux distributions? ===
The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided.
One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution.
Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland.
Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_kernels.3F|Android kernels]], preferring to prioritise device compatibility and ease of device porting, instead of prioritising software freedoms.
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticeable in the project).
Maemo Fremantle uses the ''upstart'' init system. We initially chose Devuan because we figured Devuan might support upstart to some degree as well, so we would not have to deal with rewriting the init scripts (although we ended up rewriting them anyway as Maemo Leste now uses OpenRC). Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate; there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== Can Maemo Leste work with a Debian/systemd base? ===
Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste.
=== musl libc kicks arse. Can I use Maemo Leste with musl? ===
We love musl libc too. musl provides a lean, efficient and standards-compliant implementation of libc. What's not to like? Well unfortunately a lot of software built for Linux is glibc-dependent and is not standards-compliant. Rebuilding this software with musl can result in unexpected runtime behaviour or bugs. musl would be an extra hurdle that we don't really need right now. Still, it would be nice to one day see Maemo Leste rebuilt against musl and might make for an interesting future project, but until then, make sure you check out postmarketOS.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
=== Are ARM packages Thumb-compiled? ===
Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb
6f4c0ab5645df99f74afbc3a1dc718b21d0fb13c
630
626
2020-02-19T13:20:13Z
Derby
3
/* Does Maemo Leste run with pure mainline Linux? */ Improve wording as "running" is already possible.
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is an operating system based on GNU/Linux that is currently in development. It is aimed at mobile devices with touch screens such as smartphones, tablets and PDAs.
It is built on top of '''[https://devuan.org/ Devuan]''', and thus indirectly based on [https://www.debian.org/ Debian]. Essentially, it is a modernised and liberated version of '''[https://en.wikipedia.org/wiki/Maemo#Maemo_5 Maemo 5/Fremantle]'''; the last version of the mobile Linux OS from Nokia that was released in 2009 for the [https://en.wikipedia.org/wiki/Nokia_N900 Nokia N900] internet tablet/smartphone. Unlike its predecessor which only ran on a single device, Maemo Leste runs on a variety of devices.
In Maemo Leste, closed-source packages that originate from Fremantle have been reversed engineered, liberated, updated and rebuilt; whilst open-source Fremantle packages have been updated to newer libraries and APIs, including [https://en.wikipedia.org/wiki/Hildon Hildon], the mobile user interface from Fremantle.
Building on top an actively developed Linux distribution makes Maemo Leste maintenance sustainable. Fremantle was built on top of Debian packages forked from several versions of Debian, leaving the onus on Nokia to maintain every single package. Leste however, utilises Devuan's package repositories meaning that much of the heavy lifting is already done by upstream; we only have to manage and maintain a limited set of packages. This also gives us the benefit of having access to over 20,000 packages from upstream, immediately available for installation in Maemo Leste.
All in all, Maemo Leste aims to provide an unconstrained and free mobile Linux distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
Today's smartphone industry is dominated by the duopoly of Apple and Google with their iOS and Android operating systems. This leaves those of us who value information privacy and software freedoms with virtually no options when it comes to choosing a smartphone. Some pretenders have tried to change this but have ultimately [[#How_about_other_popular_non-Android_mobile_Linux_distributions.3F|fallen short in some areas]]. Maemo Leste aims to put an end to this dire situation. We provide a ''true'' GNU/Linux experience which evolves along with the base Linux distribution from which it is built on top of. Maemo Leste is the only multi-device mobile Linux distribution that prioritises the use of [[#What_is_mainline_Linux.3F|mainline Linux]]. We hope that Maemo Leste will help to raise awareness of the [[#Why_is_it_important_to_run_mainline_Linux.3F|importance of running mainline Linux]] which may eventually lead to increased consumer demand for devices that are compatible with mainline Linux, leading to improved options when choosing a smartphone.
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle.
We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired.
Halium uses kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long-term supported stable releases.
=== What's wrong with Android (vendor) kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained by vendors with almost no effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices on the market, all with kernels based on Linux; yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline].
=== Does Maemo Leste run with pure mainline Linux? ===
The primary devices that we support can run with a pure mainline Linux kernel, however right now our images use mainline plus a few patches. As we are still in the early phases of development, our current priority is to ensure that our supported devices are as fully functional as they can possibly be, thus the additional patches help to achieve this. We have already upstreamed some of our patches and our goal is to upstream the remaining ones to be able to switch to using a 100% mainline kernel on our devices.
=== Is Maemo Leste completely free? ===
Unfortunately not. There is still no smartphone available that is fully functional without the use of [https://en.wikipedia.org/wiki/Proprietary_device_driver binary blobs]. Our primary supported devices currently require closed firmware to be able to use Wi-Fi and Bluetooth, and the TI OMAP-based devices have integrated PowerVR video hardware which require closed user space drivers for video acceleration. It's an unfortunate state of affairs, however progress is being made, and the PinePhone is a great example of this as it can have video acceleration with the Lima driver which is 100% free software.
Our current goal is to provide full functionality for our supported devices, however there are plans to additionally provide a blob-free, libre version of Maemo Leste with missing functionality where blobs are required.
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]).
=== How about other popular non-Android mobile Linux distributions? ===
The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided.
One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution.
Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland.
Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_kernels.3F|Android kernels]], preferring to prioritise device compatibility and ease of device porting, instead of prioritising software freedoms.
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticeable in the project).
Maemo Fremantle uses the ''upstart'' init system. We initially chose Devuan because we figured Devuan might support upstart to some degree as well, so we would not have to deal with rewriting the init scripts (although we ended up rewriting them anyway as Maemo Leste now uses OpenRC). Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate; there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== Can Maemo Leste work with a Debian/systemd base? ===
Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste.
=== musl libc kicks arse. Can I use Maemo Leste with musl? ===
We love musl libc too. musl provides a lean, efficient and standards-compliant implementation of libc. What's not to like? Well unfortunately a lot of software built for Linux is glibc-dependent and is not standards-compliant. Rebuilding this software with musl can result in unexpected runtime behaviour or bugs. musl would be an extra hurdle that we don't really need right now. Still, it would be nice to one day see Maemo Leste rebuilt against musl and might make for an interesting future project, but until then, make sure you check out postmarketOS.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve, As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
=== Are ARM packages Thumb-compiled? ===
Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb
13f10f5e5ed27435453916c34c6909583981f9b0
631
630
2020-02-20T02:44:22Z
Derby
3
/* What devices does Maemo Leste work on? */ Fix punctuation
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is an operating system based on GNU/Linux that is currently in development. It is aimed at mobile devices with touch screens such as smartphones, tablets and PDAs.
It is built on top of '''[https://devuan.org/ Devuan]''', and thus indirectly based on [https://www.debian.org/ Debian]. Essentially, it is a modernised and liberated version of '''[https://en.wikipedia.org/wiki/Maemo#Maemo_5 Maemo 5/Fremantle]'''; the last version of the mobile Linux OS from Nokia that was released in 2009 for the [https://en.wikipedia.org/wiki/Nokia_N900 Nokia N900] internet tablet/smartphone. Unlike its predecessor which only ran on a single device, Maemo Leste runs on a variety of devices.
In Maemo Leste, closed-source packages that originate from Fremantle have been reversed engineered, liberated, updated and rebuilt; whilst open-source Fremantle packages have been updated to newer libraries and APIs, including [https://en.wikipedia.org/wiki/Hildon Hildon], the mobile user interface from Fremantle.
Building on top an actively developed Linux distribution makes Maemo Leste maintenance sustainable. Fremantle was built on top of Debian packages forked from several versions of Debian, leaving the onus on Nokia to maintain every single package. Leste however, utilises Devuan's package repositories meaning that much of the heavy lifting is already done by upstream; we only have to manage and maintain a limited set of packages. This also gives us the benefit of having access to over 20,000 packages from upstream, immediately available for installation in Maemo Leste.
All in all, Maemo Leste aims to provide an unconstrained and free mobile Linux distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
Today's smartphone industry is dominated by the duopoly of Apple and Google with their iOS and Android operating systems. This leaves those of us who value information privacy and software freedoms with virtually no options when it comes to choosing a smartphone. Some pretenders have tried to change this but have ultimately [[#How_about_other_popular_non-Android_mobile_Linux_distributions.3F|fallen short in some areas]]. Maemo Leste aims to put an end to this dire situation. We provide a ''true'' GNU/Linux experience which evolves along with the base Linux distribution from which it is built on top of. Maemo Leste is the only multi-device mobile Linux distribution that prioritises the use of [[#What_is_mainline_Linux.3F|mainline Linux]]. We hope that Maemo Leste will help to raise awareness of the [[#Why_is_it_important_to_run_mainline_Linux.3F|importance of running mainline Linux]] which may eventually lead to increased consumer demand for devices that are compatible with mainline Linux, leading to improved options when choosing a smartphone.
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle.
We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired.
Halium uses kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long-term supported stable releases.
=== What's wrong with Android (vendor) kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained by vendors with almost no effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices on the market, all with kernels based on Linux; yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline].
=== Does Maemo Leste run with pure mainline Linux? ===
The primary devices that we support can run with a pure mainline Linux kernel, however right now our images use mainline plus a few patches. As we are still in the early phases of development, our current priority is to ensure that our supported devices are as fully functional as they can possibly be, thus the additional patches help to achieve this. We have already upstreamed some of our patches and our goal is to upstream the remaining ones to be able to switch to using a 100% mainline kernel on our devices.
=== Is Maemo Leste completely free? ===
Unfortunately not. There is still no smartphone available that is fully functional without the use of [https://en.wikipedia.org/wiki/Proprietary_device_driver binary blobs]. Our primary supported devices currently require closed firmware to be able to use Wi-Fi and Bluetooth, and the TI OMAP-based devices have integrated PowerVR video hardware which require closed user space drivers for video acceleration. It's an unfortunate state of affairs, however progress is being made, and the PinePhone is a great example of this as it can have video acceleration with the Lima driver which is 100% free software.
Our current goal is to provide full functionality for our supported devices, however there are plans to additionally provide a blob-free, libre version of Maemo Leste with missing functionality where blobs are required.
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]).
=== How about other popular non-Android mobile Linux distributions? ===
The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided.
One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution.
Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland.
Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_kernels.3F|Android kernels]], preferring to prioritise device compatibility and ease of device porting, instead of prioritising software freedoms.
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticeable in the project).
Maemo Fremantle uses the ''upstart'' init system. We initially chose Devuan because we figured Devuan might support upstart to some degree as well, so we would not have to deal with rewriting the init scripts (although we ended up rewriting them anyway as Maemo Leste now uses OpenRC). Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate; there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== Can Maemo Leste work with a Debian/systemd base? ===
Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste.
=== musl libc kicks arse. Can I use Maemo Leste with musl? ===
We love musl libc too. musl provides a lean, efficient and standards-compliant implementation of libc. What's not to like? Well unfortunately a lot of software built for Linux is glibc-dependent and is not standards-compliant. Rebuilding this software with musl can result in unexpected runtime behaviour or bugs. musl would be an extra hurdle that we don't really need right now. Still, it would be nice to one day see Maemo Leste rebuilt against musl and might make for an interesting future project, but until then, make sure you check out postmarketOS.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve. As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
=== Are ARM packages Thumb-compiled? ===
Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb
01a3b140a3b85f34cc70257f895626c88cefe106
Development/Tasks
0
92
616
525
2020-02-04T10:55:59Z
Wizzup
4
wikitext
text/x-wiki
== Applications ==
This page lists some of the more important open issues for Maemo Leste. We have a complete list here, on github, but it's a bit hard to navigate: https://github.com/maemo-leste/bugtracker/issues
{| class="wikitable"
! Task
! Description
! Task Status
! User(s) working on task
! GH Bug
! URLs
! Notes
|-
| Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || WIP || [[User:ThomasAH]] || https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda). mer-core (sailfish/nemomobile) has keyboard monitoring integrated into mce, so we could also look at (using) that
|-
| Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. <b>Funding is available for this task</b> || WIP/TODO || || https://github.com/maemo-leste/bugtracker/issues/261 || || Some work was done in the past
|-
| Qt5 of theme and hildon widgets || Big task, port hildon widgets and theme from qt4 to qt5. <b>Funding is available for this task</b> || WIP || [[User:freemangordon]] made a start || || https://github.com/maemo-leste/qtstyleplugins/ ||
|-
| Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 ? || *MAYBE* Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || TODO || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches ||
|-
| libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || TODO || || || ||
|-
| Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || TODO || || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 ||
|-
| Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || DONE || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ ||
|-
| Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || https://github.com/maemo-leste/bugtracker/issues/256 || https://github.com/maemo-leste/connui-cellular ||
|-
| Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || TODO || [[User:Wizzup]], [[User:Sicelo]] || || ||
|-
| Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || TODO || ? || || ||
|-
|"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || TODO || ? || || ||
|-
| Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || TODO || [[User:Wizzup]], tmlind || || || Let's do the same for Droid4. :)
|-
| osso-abook || We need osso-abook in place for all applications that need contacts (phone ui, sms ui, email ui, more) || WIP || [[User:freemangordon]] || || ||
|-
| hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || WIP || [[User:minicom]]? || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc.
|-
| Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || TODO || || || ||
|-
| Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || WIP? || [[User:freemangordon]] || || ||
|-
| Port all packages for maemo-leste to debhelper 9 or higher || Requires for us to migrate to a newer Debian (Buster) / Devuan (Beowulf) || WIP, help needed || [[User:Parazyd]], [[User:Wizzup]], ? || https://github.com/maemo-leste/bugtracker/issues/234 || ||
|-
|}
97f2cbad8116452501fb25f4b881e6d039ace35f
617
616
2020-02-04T10:57:21Z
Wizzup
4
wikitext
text/x-wiki
== Applications ==
This page lists some of the more important open issues for Maemo Leste. We have a complete list here, on github, but it's a bit hard to navigate: https://github.com/maemo-leste/bugtracker/issues
{| class="wikitable"
! Task
! Description
! Task Status
! User(s) working on task
! GH Bug
! URLs
! Notes
|-
| Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || MOSTLY DONE || [[User:ThomasAH]], Spinal84 || https://github.com/maemo-leste/ke-recv/pull/2 ; https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || ke-recv part for slide monitoring is in place, we just need live keyboard-attached monitoring now. https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda). mer-core (sailfish/nemomobile) has keyboard monitoring integrated into mce, so we could also look at (using) that
|-
| Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. <b>Funding is available for this task</b> || WIP/TODO || || https://github.com/maemo-leste/bugtracker/issues/261 || || Some work was done in the past
|-
| Qt5 of theme and hildon widgets || Big task, port hildon widgets and theme from qt4 to qt5. <b>Funding is available for this task</b> || WIP || [[User:freemangordon]] made a start || || https://github.com/maemo-leste/qtstyleplugins/ ||
|-
| Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 ? || *MAYBE* Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || TODO || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches ||
|-
| libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || TODO || || || ||
|-
| Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || TODO || || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 ||
|-
| Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || DONE || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ ||
|-
| Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || https://github.com/maemo-leste/bugtracker/issues/256 || https://github.com/maemo-leste/connui-cellular ||
|-
| Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || TODO || [[User:Wizzup]], [[User:Sicelo]] || || ||
|-
| Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || TODO || ? || || ||
|-
|"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || TODO || ? || || ||
|-
| Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || TODO || [[User:Wizzup]], tmlind || || || Let's do the same for Droid4. :)
|-
| osso-abook || We need osso-abook in place for all applications that need contacts (phone ui, sms ui, email ui, more) || WIP || [[User:freemangordon]] || || ||
|-
| hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || WIP || [[User:minicom]]? || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc.
|-
| Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || TODO || || || ||
|-
| Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || WIP? || [[User:freemangordon]] || || ||
|-
| Port all packages for maemo-leste to debhelper 9 or higher || Requires for us to migrate to a newer Debian (Buster) / Devuan (Beowulf) || WIP, help needed || [[User:Parazyd]], [[User:Wizzup]], ? || https://github.com/maemo-leste/bugtracker/issues/234 || ||
|-
|}
76abd76257da77898f9b014ff30f9ba2211c6846
Motorola Droid 4
0
50
618
592
2020-02-05T03:32:57Z
Spinal
13
/* Wifi */ Bluetooth firmware is also required for WiFi
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux/tree/maemo-5.4
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Not yet || PowerVR SGX540 (closed driver) - see [[Motorola Droid 4/PowerVR]]
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Reported to work, no UI yet
|-
| Phone calls || WIP || Reported to work, no UI yet
|-
| Bluetooth || Yes || Needs firmware - see [[#Bluetooth|below]]. See also https://github.com/maemo-leste/bugtracker/issues/290.
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes ||
|-
|Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi)
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Now go to the working directory and run:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
The device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.
== Postinstall notes for 20200112 image ==
=== Wifi ===
Requires wpasupplicant and firmware-ti-connectivity from ascii-backports (needs to get added to sources.list)
deb http://pkgmaster.devuan.org/merged ascii-backports main contrib non-free
apt install -t ascii-backports wpasupplicant
apt install -t ascii-backports firmware-ti-connectivity
Installing Bluetooth firmware in order to have working Wi-Fi is also required.
=== Bluetooth ===
Requires https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts to go in /lib/firmware/ti-connectivity/
=== Sound ===
This needs to be executed after each boot by hand ;
modprobe snd-soc-cpcap
modprobe snd-soc-motmdm
modprobe snd-soc-audio-graph-card
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
</gallery>
[[Category:Device]]
5dd19b53fe859405c087df2c4534e7a0d45ada2e
619
618
2020-02-05T17:31:28Z
BuZz
32
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux/tree/maemo-5.4
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Not yet || PowerVR SGX540 (closed driver) - see [[Motorola Droid 4/PowerVR]]
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Reported to work, no UI yet
|-
| Phone calls || WIP || Reported to work, no UI yet
|-
| Bluetooth || Yes || Needs firmware - see [[#Bluetooth|below]]. See also https://github.com/maemo-leste/bugtracker/issues/290.
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes ||
|-
|Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi)
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Now go to the working directory and run:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
The device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.
== Postinstall notes for 20200112 image ==
=== Wifi ===
Requires wpasupplicant and firmware-ti-connectivity from ascii-backports (needs to get added to sources.list)
deb http://pkgmaster.devuan.org/merged ascii-backports main contrib non-free
apt install -t ascii-backports wpasupplicant
apt install -t ascii-backports firmware-ti-connectivity
Installing Bluetooth firmware in order to have working Wi-Fi is also required.
=== Bluetooth ===
Requires https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts to go in /lib/firmware/ti-connectivity/
$ sha256sum TIInit_10.6.15.bts
85dc6539436319fa1301277c171f9fd65b716279900bc686a76578ab24cc7793 TIInit_10.6.15.bts
=== Sound ===
This needs to be executed after each boot by hand ;
modprobe snd-soc-cpcap
modprobe snd-soc-motmdm
modprobe snd-soc-audio-graph-card
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
</gallery>
[[Category:Device]]
4df5cabe58437f4e6e98e87a9b4d75347502c37a
621
619
2020-02-13T20:45:50Z
Spinal
13
/* Installation */ Add "Updating Android" back
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux/tree/maemo-5.4
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Not yet || PowerVR SGX540 (closed driver) - see [[Motorola Droid 4/PowerVR]]
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Reported to work, no UI yet
|-
| Phone calls || WIP || Reported to work, no UI yet
|-
| Bluetooth || Yes || Needs firmware - see [[#Bluetooth|below]]. See also https://github.com/maemo-leste/bugtracker/issues/290.
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes ||
|-
|Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi)
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.
== Postinstall notes for 20200112 image ==
=== Wifi ===
Requires wpasupplicant and firmware-ti-connectivity from ascii-backports (needs to get added to sources.list)
deb http://pkgmaster.devuan.org/merged ascii-backports main contrib non-free
apt install -t ascii-backports wpasupplicant
apt install -t ascii-backports firmware-ti-connectivity
Installing Bluetooth firmware in order to have working Wi-Fi is also required.
=== Bluetooth ===
Requires https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts to go in /lib/firmware/ti-connectivity/
$ sha256sum TIInit_10.6.15.bts
85dc6539436319fa1301277c171f9fd65b716279900bc686a76578ab24cc7793 TIInit_10.6.15.bts
=== Sound ===
This needs to be executed after each boot by hand ;
modprobe snd-soc-cpcap
modprobe snd-soc-motmdm
modprobe snd-soc-audio-graph-card
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
</gallery>
[[Category:Device]]
f177b2ab99f6594d898bca3a640f5b0d948665d9
622
621
2020-02-14T19:13:30Z
Spinal
13
/* Postinstall notes for 20200112 image */ Add the link to the issue which describes common problems and their solutions
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux/tree/maemo-5.4
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Not yet || PowerVR SGX540 (closed driver) - see [[Motorola Droid 4/PowerVR]]
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Reported to work, no UI yet
|-
| Phone calls || WIP || Reported to work, no UI yet
|-
| Bluetooth || Yes || Needs firmware - see [[#Bluetooth|below]]. See also https://github.com/maemo-leste/bugtracker/issues/290.
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes ||
|-
|Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi)
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.
== Postinstall notes for 20200112 image ==
The image has some erratas which can be fixed by following the instructions found in this post:
https://github.com/maemo-leste/bugtracker/issues/302#issuecomment-576277674
=== Wifi ===
Requires wpasupplicant and firmware-ti-connectivity from ascii-backports (needs to get added to sources.list)
deb http://pkgmaster.devuan.org/merged ascii-backports main contrib non-free
apt install -t ascii-backports wpasupplicant
apt install -t ascii-backports firmware-ti-connectivity
Installing Bluetooth firmware in order to have working Wi-Fi is also required.
=== Bluetooth ===
Requires https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts to go in /lib/firmware/ti-connectivity/
$ sha256sum TIInit_10.6.15.bts
85dc6539436319fa1301277c171f9fd65b716279900bc686a76578ab24cc7793 TIInit_10.6.15.bts
=== Sound ===
This needs to be executed after each boot by hand ;
modprobe snd-soc-cpcap
modprobe snd-soc-motmdm
modprobe snd-soc-audio-graph-card
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
</gallery>
[[Category:Device]]
66d56f85fc6d55997e0ab65d56d5b97ba7661c84
623
622
2020-02-14T19:22:28Z
Spinal
13
/* Postinstall notes for 20200112 image */ Update bluetooth + wifi info
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux/tree/maemo-5.4
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Not yet || PowerVR SGX540 (closed driver) - see [[Motorola Droid 4/PowerVR]]
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Reported to work, no UI yet
|-
| Phone calls || WIP || Reported to work, no UI yet
|-
| Bluetooth || Yes || Needs firmware - see [[#Bluetooth|below]]. See also https://github.com/maemo-leste/bugtracker/issues/290.
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes ||
|-
|Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi)
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.
== Postinstall notes for 20200112 image ==
Current image has some erratas which can be fixed by following the instructions found in this post:
https://github.com/maemo-leste/bugtracker/issues/302#issuecomment-576277674
=== Wifi ===
Requires wpasupplicant and firmware-ti-connectivity from ascii-backports (needs to get added to sources.list)
deb http://pkgmaster.devuan.org/merged ascii-backports main contrib non-free
apt install -t ascii-backports wpasupplicant
apt install -t ascii-backports firmware-ti-connectivity
=== Bluetooth ===
Requires https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts to go in /lib/firmware/ti-connectivity/
$ sha256sum TIInit_10.6.15.bts
85dc6539436319fa1301277c171f9fd65b716279900bc686a76578ab24cc7793 TIInit_10.6.15.bts
Note: some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" > /etc/modprobe.d/blacklist.conf
=== Sound ===
This needs to be executed after each boot by hand ;
modprobe snd-soc-cpcap
modprobe snd-soc-motmdm
modprobe snd-soc-audio-graph-card
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
</gallery>
[[Category:Device]]
a71408f9cd26e19a87acd949e2c9866a4ffb1581
624
623
2020-02-14T19:24:40Z
Spinal
13
/* Sound */ Minor fixes
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux/tree/maemo-5.4
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Not yet || PowerVR SGX540 (closed driver) - see [[Motorola Droid 4/PowerVR]]
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Reported to work, no UI yet
|-
| Phone calls || WIP || Reported to work, no UI yet
|-
| Bluetooth || Yes || Needs firmware - see [[#Bluetooth|below]]. See also https://github.com/maemo-leste/bugtracker/issues/290.
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes ||
|-
|Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi)
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.
== Postinstall notes for 20200112 image ==
Current image has some erratas which can be fixed by following the instructions found in this post:
https://github.com/maemo-leste/bugtracker/issues/302#issuecomment-576277674
=== Wifi ===
Requires wpasupplicant and firmware-ti-connectivity from ascii-backports (needs to get added to sources.list)
deb http://pkgmaster.devuan.org/merged ascii-backports main contrib non-free
apt install -t ascii-backports wpasupplicant
apt install -t ascii-backports firmware-ti-connectivity
=== Bluetooth ===
Requires https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts to go in /lib/firmware/ti-connectivity/
$ sha256sum TIInit_10.6.15.bts
85dc6539436319fa1301277c171f9fd65b716279900bc686a76578ab24cc7793 TIInit_10.6.15.bts
Note: some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" > /etc/modprobe.d/blacklist.conf
=== Sound ===
This needs to be executed to enable the sound:
modprobe snd-soc-cpcap
modprobe snd-soc-motmdm
modprobe snd-soc-audio-graph-card
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
</gallery>
[[Category:Device]]
ad0615ff9eba6f14e89046d3df59e215ddd7f432
627
624
2020-02-17T14:03:16Z
Wizzup
4
/* Bluetooth */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux/tree/maemo-5.4
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Not yet || PowerVR SGX540 (closed driver) - see [[Motorola Droid 4/PowerVR]]
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Reported to work, no UI yet
|-
| Phone calls || WIP || Reported to work, no UI yet
|-
| Bluetooth || Yes || Needs firmware - see [[#Bluetooth|below]]. See also https://github.com/maemo-leste/bugtracker/issues/290.
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes ||
|-
|Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi)
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.
== Postinstall notes for 20200112 image ==
Current image has some erratas which can be fixed by following the instructions found in this post:
https://github.com/maemo-leste/bugtracker/issues/302#issuecomment-576277674
=== Wifi ===
Requires wpasupplicant and firmware-ti-connectivity from ascii-backports (needs to get added to sources.list)
deb http://pkgmaster.devuan.org/merged ascii-backports main contrib non-free
apt install -t ascii-backports wpasupplicant
apt install -t ascii-backports firmware-ti-connectivity
=== Bluetooth ===
Requires https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts to go in /lib/firmware/ti-connectivity/
$ sha256sum TIInit_10.6.15.bts
85dc6539436319fa1301277c171f9fd65b716279900bc686a76578ab24cc7793 TIInit_10.6.15.bts
Note: some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
=== Sound ===
This needs to be executed to enable the sound:
modprobe snd-soc-cpcap
modprobe snd-soc-motmdm
modprobe snd-soc-audio-graph-card
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
</gallery>
[[Category:Device]]
ab13e66c00a6da9c31016df9074ccc507a2075c2
628
627
2020-02-17T14:03:53Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux/tree/maemo-5.4
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || WIP || PowerVR SGX540 (closed driver) - see [[Motorola Droid 4/PowerVR]]
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Reported to work, no UI yet
|-
| Phone calls || WIP || Reported to work, no UI yet
|-
| Bluetooth || Yes || Needs firmware - see [[#Bluetooth|below]]. See also https://github.com/maemo-leste/bugtracker/issues/290.
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes ||
|-
|Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi)
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.
== Postinstall notes for 20200112 image ==
Current image has some erratas which can be fixed by following the instructions found in this post:
https://github.com/maemo-leste/bugtracker/issues/302#issuecomment-576277674
=== Wifi ===
Requires wpasupplicant and firmware-ti-connectivity from ascii-backports (needs to get added to sources.list)
deb http://pkgmaster.devuan.org/merged ascii-backports main contrib non-free
apt install -t ascii-backports wpasupplicant
apt install -t ascii-backports firmware-ti-connectivity
=== Bluetooth ===
Requires https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts to go in /lib/firmware/ti-connectivity/
$ sha256sum TIInit_10.6.15.bts
85dc6539436319fa1301277c171f9fd65b716279900bc686a76578ab24cc7793 TIInit_10.6.15.bts
Note: some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
=== Sound ===
This needs to be executed to enable the sound:
modprobe snd-soc-cpcap
modprobe snd-soc-motmdm
modprobe snd-soc-audio-graph-card
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
</gallery>
[[Category:Device]]
f481d0d18698166d3cc3649d3106092dee808622
Nokia N900
0
48
620
556
2020-02-07T11:02:25Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The original Nokia N900.
== Notes ==
* If your battery is not calibrated, the battery applet will not give you any data. Charge the battery fully, and then let it discharge (almost) completely.
* Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful.
Also see: https://elinux.org/N900
Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.0 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip-5.0.y
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing non-free firmware
|-
| Ethernet || N/A ||
|-
| Bluetooth || Not yet || Driver problems in mainline
|-
| Infrared || Yes || TX only (hardware limitation).
|-
| (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || Yes || Works fast(!)
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters)
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on Bluetooth. [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/staging?id=757c2bf597a8e9f859f8efceda9c5108607fd98d Removed in Linux 5.4-rc1.]
|-
| Accelerometer || Not yet || Available as input device, needs MCE work
|-
| Proximity sensor || Not yet ||
|-
| Vibration Motor || Yes || No integration yet
|-
| TV-out || Not yet || Should work in kernel, didn't get it to work yet
|-
| GPS || WIP || Works using gps3 and gpsd, needs integration still
|}
== Installation ==
Images: http://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to use/install Fremantle, or want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''.
To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Power Management ==
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
[[Category:Device]]
11b6ec1669d02d106c6dd5d95f691e5d962b526e
639
620
2020-03-01T02:14:44Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The original Nokia N900.
== Notes ==
* If your battery is not calibrated, the battery applet will not give you any data. Charge the battery fully, and then let it discharge (almost) completely.
* Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful.
Also see: https://elinux.org/N900
Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.0 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip-5.0.y
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing non-free firmware
|-
| Ethernet || N/A ||
|-
| Bluetooth || Not yet || Driver problems in mainline
|-
| Infrared || Yes || TX only (hardware limitation).
|-
| (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || Yes || Works fast(!)
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters)
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on Bluetooth. [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/staging?id=757c2bf597a8e9f859f8efceda9c5108607fd98d Removed in Linux 5.4-rc1.]
|-
| Accelerometer || Not yet || Available as input device, needs MCE work
|-
| Proximity sensor || Not yet ||
|-
| Vibration Motor || Yes || No integration yet
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with xrandr (xrandr --output TV --mode 800x480 --same-as LCD). Set PAL/NTSC with "xrandr --output TV --set SignalProperties PAL", and scale with "randr --output TV --set TVScale 90"
|-
| GPS || WIP || Works using gps3 and gpsd, needs integration still
|}
== Installation ==
Images: http://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to use/install Fremantle, or want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''.
To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Power Management ==
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
[[Category:Device]]
dca3ed078cb71923e88963b3d3e83babeb21d4fc
640
639
2020-03-01T02:17:40Z
Wizzup
4
Use code tags for xrandr in TV out
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The original Nokia N900.
== Notes ==
* If your battery is not calibrated, the battery applet will not give you any data. Charge the battery fully, and then let it discharge (almost) completely.
* Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful.
Also see: https://elinux.org/N900
Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.0 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip-5.0.y
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing non-free firmware
|-
| Ethernet || N/A ||
|-
| Bluetooth || Not yet || Driver problems in mainline
|-
| Infrared || Yes || TX only (hardware limitation).
|-
| (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || Yes || Works fast(!)
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters)
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on Bluetooth. [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/staging?id=757c2bf597a8e9f859f8efceda9c5108607fd98d Removed in Linux 5.4-rc1.]
|-
| Accelerometer || Not yet || Available as input device, needs MCE work
|-
| Proximity sensor || Not yet ||
|-
| Vibration Motor || Yes || No integration yet
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>randr --output TV --set TVScale 90</code>.
|-
| GPS || WIP || Works using gps3 and gpsd, needs integration still
|}
== Installation ==
Images: http://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to use/install Fremantle, or want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''.
To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Power Management ==
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
[[Category:Device]]
215b457b9ab0be6e73b8ec2df8ef609abaa06afd
641
640
2020-03-01T02:17:52Z
Wizzup
4
/* Status */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The original Nokia N900.
== Notes ==
* If your battery is not calibrated, the battery applet will not give you any data. Charge the battery fully, and then let it discharge (almost) completely.
* Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful.
Also see: https://elinux.org/N900
Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.0 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip-5.0.y
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing non-free firmware
|-
| Ethernet || N/A ||
|-
| Bluetooth || Not yet || Driver problems in mainline
|-
| Infrared || Yes || TX only (hardware limitation).
|-
| (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || Yes || Works fast(!)
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters)
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on Bluetooth. [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/staging?id=757c2bf597a8e9f859f8efceda9c5108607fd98d Removed in Linux 5.4-rc1.]
|-
| Accelerometer || Not yet || Available as input device, needs MCE work
|-
| Proximity sensor || Not yet ||
|-
| Vibration Motor || Yes || No integration yet
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || WIP || Works using gps3 and gpsd, needs integration still
|}
== Installation ==
Images: http://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to use/install Fremantle, or want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''.
To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Power Management ==
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
[[Category:Device]]
8c2c6a9d32b5d61325801c3713e2ca81fbb858cd
Wishlist
0
89
625
529
2020-02-16T20:24:48Z
Sicelo
5
/* Applications */
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
{| class="wikitable"http://maemo.org/packages/view/orecchiette/
! Package name
! Done
! Reason
! User
! URL
! Notes
|-
| osso-notes || Yes (quicknote) || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Quicknote currently packaged. Usage notes - http://wiki.maemo.org/Quicknote
|-
| pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation.
|-
| scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please
|-
| [[Games/Brainparty|brainparty]] || Yes || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ ||
|-
| Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || http://maemo.org/packages/view/orecchiette/(has also Psycho Pinball installable)
|-
| Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||http://maemo.org/packages/view/orecchiette/
|-
| Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend
|-
| PDF reader || Yes || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || libhildonfm has bugs regarding file opening dialogs that need to be fixed
|-
| Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port.
|-
| Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI
|-
| Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/
|-
| Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel
|-
|Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0
|-
| Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ ||
|-
| Image viewer/editor || No || || [[User:Maemish]] || ||
|-
| Mail with imap support || No || || [[User:Maemish]] || ||
|-
| RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || ||
|-
| Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ ||
|-
| OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer ||
|-
| SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net ||
|-
| Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ ||
|-
| D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ ||
|-
| Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ ||
|-
| MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms ||
|-
| Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ ||
|-
| Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed.
|-
| Firewall || No || || [[User:Maemish]] || || Something with easy configuration.
|-
| Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ ||
|-
|bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ ||
|-
| cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ ||
|-
| gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ ||
|-|-
| hamsterfiler || No || utilities/files || [[User:ric9k]] || http://maemo.org/packages/view/hamsterfiler/ ||
|-|-
| alarmed (or cron?) || No || utilities || [[User:ric9k]] || http://maemo.org/packages/view/alarmed/ ||
|-|-
| user friendly tracker || No || utilities? || [[User:ric9k]] || n/a :-) ||
|-|-
| Maps (offline) || No || Navigation || [[User:Sicelo]] || || Ideally something like https://f-droid.org/en/packages/com.github.axet.maps/ from Android, but Modrana, https://github.com/M4rtinK/modrana may be easier as a start
|-
| Orecchiette || No || calls recording || [[User:capitannemo]] || http://maemo.org/packages/view/orecchiette/ ||
|-
| Panucci || No || audiobook || [[User:capitannemo]] || http://maemo.org/packages/view/panucci/ ||
|-
| gPodder || No || podcast || [[User:capitannemo]] || http://maemo.org/packages/view/gpodder/ ||
|-
| Symfonie || No || directory-based audioplayer || [[User:capitannemo]] || http://maemo.org/packages/view/symfonie/ ||
|-
| osso-clock || No || clock and alarms application || pavel || ||
|-
| freecell4maemo || No || freecell game || pavel || ||
|
| || No || || [[User:]] || ||
|-
| || No || || [[User:]] || ||
|)
1416f16061430971e555f40c43f21cce11383744
Motorola Droid 4/PowerVR
0
68
629
245
2020-02-17T14:05:20Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
'''THIS PAGE IS OUT OF DATE IN MANY REGARDS, PLEASE SEE https://github.com/openpvrsgx-devgroup AND http://lists.letux.org/pipermail/openpvrsgx-devgroup/'''
This page attempts to document useful links or other info to get powervr to work on Droid 4 with mainline kernel.
TI releases: http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/gfxsdk/ ; perhaps also this: http://git.ti.com/graphics/omap5-sgx-ddk-um-linux.
According to Release Notes, the last SDK to support SGX540 is 4.04.00.04 (SGX core revision 1.2.0, gfx_dbg_es7.x / gfx_rel_es7.x folders).
The last SDK with X11 support (DRI/DRM Xorg driver) is 4.10.00.01.
Pandaboard (ES) might be a suitable test platform since it is very similar to the Droid 4, and there are/were Ubuntu releases for it:
https://nl.mouser.com/new/pandaboardorg/pandaboardES/
Ubuntu resources:
https://wiki.ubuntu.com/ARM/OmapDesktopInstall
https://wiki.ubuntu.com/ARM/OMAP
https://launchpad.net/~tiomap-dev/+archive/ubuntu/omap-trunk - TI OMAP-related packages, including PowerVR drivers
Ubuntu kernel module mirror:
https://github.com/mobiaqua/pvr-omap4-dkms
Way to use TI drivers with modern X modesetting driver + glamor? https://github.com/TexasInstruments/dri3wsegl ;
There also exists leaked Android SGX540 DDK source code for OMAP4 device by LG, which is not linked here, but is easy to find and could be used as last resort.
Some notes from irc:
<pre>
20:57 < Wizzup> NeKit: I made a stub page here - https://leste.maemo.org/Motorola_Droid_4/PowerVR
20:57 < Wizzup> feel free to add ideas, links/resources, etc
21:37 < NeKit> edited page a bit
21:37 < NeKit> so support was cut after 4.04.00.04 SDK release, makes me wonder why
21:39 < Wizzup> for what, for xorg or the older omap
21:40 < Wizzup> or sgx :)
21:40 < Wizzup> (all these names confuse me)
21:40 < NeKit> SGX540
21:42 < Wizzup> we should also involve nikolaus perhaps
21:42 < NeKit> it has SGX core 1.2.0 and folder suffix is es7.x
21:42 < Wizzup> ah, ok, I didn't realise it had that core
21:43 < NeKit> http://processors.wiki.ti.com/index.php/Graphics_SDK_Quick_installation_and_user_guide#About_Graphics_SDK - notice 7.x is missing in
table
21:44 < Wizzup> what sgx does n900 have? I don't even remember
21:44 < NeKit> SGX530, not sure for core revision
21:44 < Wizzup> ok
21:44 < NeKit> N9/N950 is also SGX530
21:46 < Wizzup> http://www.ti.com/sitesearch/docs/universalsearch.tsp?searchTerm=SGX540&linkId=10&src=top&m=dd
21:46 < Wizzup> seems this is the latest pandaboard release http://processors.wiki.ti.com/index.php/RN_4_04_00_04?keyMatch=SGX540&tisearch=Search-EN
21:47 < Wizzup> this is last non internal - http://processors.wiki.ti.com/index.php/RN_4_04_00_03?keyMatch=SGX540&tisearch=Search-EN
21:50 < Wizzup> not sure why it was dropped :)
21:51 < Wizzup> SDOCM00085667 - Removal of non supported/deprecated devices - OMAP35x with SGX Core 1.0.3(OMAPES=2.x while building) and
AM45x(Panda board- OMAPES=7.x)
21:51 < Wizzup> here: http://processors.wiki.ti.com/index.php/RN_4_05_00_01?keyMatch=panda&tisearch=Search-EN
</pre>
Wizzup plans to take the following steps:
1. Boot mainline on pandaboard
2. Boot latest ubuntu pvr supported kernel on pandaboard
3. See if https://github.com/TexasInstruments/dri3wsegl works on latest ubuntu pvr kernel - if not, ouch
4. See if there are newer releases from ti (kernel and userspace) that might work
5. Port to mainline
6. See if it works on droid4
7. See if various mainline forward ports can be merged (Nikolaus' work)
All of this is assuming omapdrmfb, not omapfb
8903f39970178f04de483e934b06ff113ed7d84d
PinePhone
0
93
632
508
2020-02-22T17:24:45Z
Wizzup
4
WIP
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
The first Pinephone (braveheart) phone
== Notes ==
First testing image can be found here: (TODO)
What you can do with this image:
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* (With not yet finished userspace) connect to 2G/3G/4G data connections
* Develop for Maemo Leste and work on applications that interface with modems
Note that:
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Screen brightness adjustments in UI do not work on the Pinephone yet.
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!)
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A ||
|-
| Bluetooth || ? ||
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || N/A || !
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || lima (!)
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Should work on the modem
|}
== Installation ==
[[Category:Device]]
6d8e2ad7291a64215f945ba83d1c319f10a27525
633
632
2020-02-22T17:25:33Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
The first Pinephone (braveheart) phone
== Notes ==
First testing image can be found here: (TODO)
What you can do with this image:
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* (With not yet finished userspace) connect to 2G/3G/4G data connections
* Develop for Maemo Leste and work on applications that interface with modems
Note that:
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now.
* Screen brightness adjustments in UI do not work on the Pinephone yet.
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!)
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A ||
|-
| Bluetooth || ? ||
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || N/A || !
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || lima (!)
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Should work on the modem
|}
== Installation ==
[[Category:Device]]
2f1b7550848a1181777ac23fb23baa22d8e03e4b
634
633
2020-02-22T17:28:32Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
The first Pinephone (braveheart) phone
== Notes ==
First testing image can be found here: (TODO)
What you can do with this image:
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* (With not yet finished userspace) connect to 2G/3G/4G data connections
* Develop for Maemo Leste and work on applications that interface with modems
TODO mention/link to:
* usb peripheral
*
Note that:
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now.
* Screen brightness adjustments in UI do not work on the Pinephone yet.
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!)
* many "games" packages in the Application Manager don't work well yet
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A ||
|-
| Bluetooth || ? ||
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || N/A || !
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || lima (!)
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Should work on the modem
|}
== Installation ==
[[Category:Device]]
280599047c12f101c6a20880321a829fbbb2f2c6
635
634
2020-02-23T21:09:13Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
The first Pinephone (braveheart) phone
== Notes ==
First testing image can be found here: (TODO)
What you can do with this image:
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* (With not yet finished userspace) connect to 2G/3G/4G data connections
* Develop for Maemo Leste and work on applications that interface with modems
TODO mention/link to:
* usb peripheral
*
Note that:
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now.
* Screen brightness adjustments in UI do not work on the Pinephone yet.
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!)
* many "games" packages in the Application Manager don't work well yet
* For some reason the X cursor is still shows (usually it's hidden)
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A ||
|-
| Bluetooth || ? ||
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || N/A || !
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || lima (!)
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Should work on the modem
|}
== Installation ==
[[Category:Device]]
c6bb57d606747f6b78ae859fde4695205e99aa7e
638
635
2020-02-23T22:04:53Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
The first Pinephone (braveheart) phone
== Notes ==
First testing image can be found here: (TODO)
What you can do with this image:
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* (With not yet finished userspace) connect to 2G/3G/4G data connections
* Develop for Maemo Leste and work on applications that interface with modems
TODO mention/link to:
* usb peripheral
*
Note that:
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now.
* Screen brightness adjustments in UI do not work on the Pinephone yet.
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!)
* many "games" packages in the Application Manager don't work well yet
* For some reason the X cursor is still shows (usually it's hidden)
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A ||
|-
| Bluetooth || ? ||
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || N/A || !
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || lima (!)
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, not enabled by default, community is quite far along, needs to work package their work
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Should work on the modem
|}
== Installation ==
[[Category:Device]]
9321d95ec2534308c7a9a7b53331ad9f86a71793
642
638
2020-03-01T20:14:01Z
Buffer
35
/* Notes */ ported feedback from pine64 wiki (not yet formatted)
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
The first Pinephone (braveheart) phone
== Notes ==
First testing image can be found here: (TODO)
What you can do with this image:
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* (With not yet finished userspace) connect to 2G/3G/4G data connections
* Develop for Maemo Leste and work on applications that interface with modems
TODO mention/link to:
* usb peripheral
*
Note that:
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now.
* Screen brightness adjustments in UI do not work on the Pinephone yet.
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!)
* many "games" packages in the Application Manager don't work well yet
* For some reason the X cursor is still shows (usually it's hidden)
A few remarks based on the 20200223 build:
Default virtual keyboard currently only works with gtk2 applications(not yet in gtk3 and qt, but this is coming)
Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
WiFi and terminal work.
Screen brightness adjustments in UI does not work. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with command.
e.g. "xrandr --output DSI-1 --brightness 0.5"
There is rendering bug so default desktop orientation is landscape (xrandr -o right). Please note that if orientation is changed (e.g. with "xrandr -o normal") the ui will still be reading original key positions."
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A ||
|-
| Bluetooth || ? ||
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || N/A || !
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || lima (!)
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, not enabled by default, community is quite far along, needs to work package their work
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Should work on the modem
|}
== Installation ==
[[Category:Device]]
3804a1bce9fdf50c5e187cbcdcde60a3ff04b3db
643
642
2020-03-01T20:32:30Z
Buffer
35
/* Notes */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
The first Pinephone (braveheart) phone
== Notes ==
[https://maedevu.maemo.org/images/pinephone/ Testing images repo.]
''' What you can do with the 20200223 image:'''
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* (With not yet finished userspace, terminal only) connect to 2G/3G/4G data connections
''' TODO mention/link to:'''
* USB peripheral
* Develop for Maemo Leste and work on applications that interface with modems
* Make it work on latest pine64 kernel
''' Note that: '''
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!)
* Many "games" packages in the Application Manager don't work well yet.
* For some reason the X cursor is still shows (usually it's hidden)
*
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A ||
|-
| Bluetooth || ? ||
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || N/A || !
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || lima (!)
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, not enabled by default, community is quite far along, needs to work package their work
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Should work on the modem
|}
== Installation ==
[[Category:Device]]
e63409dd49002ea76e2a90fc6f5e0260086a2214
644
643
2020-03-01T20:33:08Z
Buffer
35
/* Notes */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
The first Pinephone (braveheart) phone
== Notes ==
''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] '''
''' What you can do with the 20200223 image:'''
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* (With not yet finished userspace, terminal only) connect to 2G/3G/4G data connections
''' TODO mention/link to:'''
* USB peripheral
* Develop for Maemo Leste and work on applications that interface with modems
* Make it work on latest pine64 kernel
''' Note that: '''
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!)
* Many "games" packages in the Application Manager don't work well yet.
* For some reason the X cursor is still shows (usually it's hidden)
*
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A ||
|-
| Bluetooth || ? ||
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || N/A || !
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || lima (!)
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, not enabled by default, community is quite far along, needs to work package their work
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Should work on the modem
|}
== Installation ==
[[Category:Device]]
ebe5f8bdd831d76b03122367028021ce6a2cca5f
Status/USB Peripheral
0
73
636
415
2020-02-23T21:46:51Z
Wizzup
4
wikitext
text/x-wiki
Currently, devices that are supported by Maemo Leste will automatically set up USB networking if you plug them into a PC.
Mass Storage may show as an option, but doesn't do anything useful yet.
== Bringing up network on your PC ==
After plugging USB from your device into your PC, issue:
<pre>
ifconfig usb0 up 192.168.42.1
ssh root@192.168.42.2
</pre>
== Share PC network with Leste device ==
To also have the devices use your PC network, log into the devices:
The default password is <code>toor</code>.
And then add the following route on the device:
<pre>
ip route add default via 192.168.42.1
# if this fails, first run ip route del default
</pre>
On your PC, issue:
<pre>
# (Maybe only one of these two echos is necessary)
echo 1 > /proc/sys/net/ipv4/conf/usb0/forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -A POSTROUTING -t nat -s 192.168.42.2/32 -j MASQUERADE
</pre>
Make sure that forwarding is also allowed within iptables itself, enable it with <code>iptables --policy FORWARD ACCEPT</code>
Now your Leste device should be able to use your PC network
== Notes ==
* The default IP address is configured in <code>/usr/sbin/pcsuite-enable.sh</code>
77784db17ae3bbbd258e1eb2ad4ffa0c97409029
637
636
2020-02-23T21:47:15Z
Wizzup
4
wikitext
text/x-wiki
Currently, devices that are supported by Maemo Leste will automatically set up USB networking if you plug them into a PC.
Mass Storage may show as an option, but doesn't do anything useful yet.
== Bringing up network on your PC ==
After plugging USB from your device into your PC, issue:
<pre>
ifconfig usb0 up 192.168.42.1
ssh root@192.168.42.2
</pre>
== Share PC network with Leste device ==
To also have the devices use your PC network, log into the devices:
The default password is <code>toor</code>. (user: <code>root</code>)
And then add the following route on the device:
<pre>
ip route add default via 192.168.42.1
# if this fails, first run ip route del default
</pre>
On your PC, issue:
<pre>
# (Maybe only one of these two echos is necessary)
echo 1 > /proc/sys/net/ipv4/conf/usb0/forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -A POSTROUTING -t nat -s 192.168.42.2/32 -j MASQUERADE
</pre>
Make sure that forwarding is also allowed within iptables itself, enable it with <code>iptables --policy FORWARD ACCEPT</code>
Now your Leste device should be able to use your PC network
== Notes ==
* The default IP address is configured in <code>/usr/sbin/pcsuite-enable.sh</code>
a9b9aab73e1e7c52374d91ec733e6d34b5ae3b93
Virtual Machine
0
60
645
423
2020-03-02T18:49:23Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Generic
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
Generic virtual machine target. This is particularly useful when doing development and testing.
== Installation ==
https://maedevu.maemo.org/images/virtual-machines/
There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration.
Converting the qcow2 image to raw allows it to be used on real hardware.
=== VirtualBox ===
Download latest .vdi.xz image, unpack it with "xz -d" command.
Create new Virtual Machine, select "Debian (64-bit)" and 1024MB RAM. Use the downloaded file as virtual hard disk.
You are done!
=== QEMU ===
In general something like
qemu-system-x86_64 -hda maemo-leste-1.0-amd64.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024
should work. But there seem to be issues with some QEMU versions, for more details see [https://github.com/maemo-leste/bugtracker/issues/198 issue#198].
To set up a port forward for SSH, add:
-nic user,hostfwd=tcp:127.0.0.1:7722-:22
And then log in like this (password: <code>toor</code>):
ssh root@localhost -p 7722
=== Real hardware ===
The contents of the <code>qcow2</code> file can be extracted and copied into hard drives for bare metal BIOS/Legacy CSM booting.
To extract the contents of the <code>qcow2</code> file, decompress it first and convert it into <code>raw</code> format.
$ xz -d maemo-leste-1.0-amd64-virtual-20180425.qcow2.xz
$ qemu-img convert -f qcow2 -O raw maemo-leste-1.0-amd64-virtual-20180425.qcow2 maemo-leste-1.0-amd64-virtual-20180425.raw
The raw image that it yields, can then be setup as a loopback device, and its partitions mounted.
# losetup --partscan -f maemo-leste-1.0-amd64-virtual-20180425.raw
# mkdir /mnt/maemo-virt
# mount /dev/loop0p1 /mnt/maemo-virt
Setup one <code>Linux</code> partition on the device to be used for booting, format it with a GRUB-compatible filesystem (<i>ext4</i>, for example), then mount it as well.
# cfdisk /dev/sdb
# ...
# mkfs.ext4 /dev/sdb1
# mkdir /mnt/maemo-bare
# mount /dev/sdb1 /mnt/maemo-bare
Change directory to the loop partition, the copy over its contents into the bare metal partition.
# cd /mnt/maemo-virt
# rsync -aAHXv * /mnt/maemo-bare
Once finished copying, bind mount special filesystems into the bare metal Maemo partition, then change root.
# mount --bind /dev /mnt/maemo-bare/dev
# mount --bind /proc /mnt/maemo-bare/proc
# mount --bind /sys /mnt/maemo-bare/sys
# chroot /mnt/maemo-bare /bin/bash
Load the new root's shell profile, install GRUB to the bare metal boot device (<i>/dev/sdb</i>, in this example), then regenerate the GRUB configuration file.
# . /etc/profile
# grub-install /dev/sdb
# grub-mkconfig -o /boot/grub/grub.cfg
After that, you may exit the chroot environment (Ctrl+D), unmount all the filesystems, then reboot the system into your new bare metal Maemo Leste installation.
# umount /mnt/maemo-virt
# umount -AR /mnt/maemo-bare
# reboot
== Initial configuration ==
On the first run you may want to generate ssh host keys and set the timezone. To do so open the "X Terminal" application and run:
sudo su -
dpkg-reconfigure openssh-server
dpkg-reconfigure tzdata
Make the system up-to-date:
apt update
apt upgrade
apt install linux-image-amd64
reboot
To get networking to work (at least in virtualbox), launch a shell and do
sudo ifconfig eth0 up
sudo dhclient eth0
[[Category:Device]]
fa3d2cb58d23328c1458492103cae03ec59c57bc
Status
0
64
646
518
2020-03-02T18:52:15Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
For Device specific status pages, see See [[:Category:Device]]
The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device
{| class="wikitable"
! Feature
! Status
! Leste software
! Notes
|-
| Desktop environment || OK || hildon || hildon home, hildon desktop, .
|-
| Terminal || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] ||
|-
| [[Status/VirtualKeyboard|Virtual keyboard]] || OK || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work fine for all devices
|-
| [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Works out of the box. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7
|-
| Bluetooth || No(t yet) || ? ||
|-
| [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily. Some also use netsurf-gtk.
|-
| Audio || WIP || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio ; will need to import alsa-policy-enforcement, port OHM
|-
| Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] ||
|-
| [[Status/USB Peripheral|USB Peripheral]] || OK || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv
|-
| LED control || OK || mce || Works on the N900 - make sure the notifications are enabled in settings.
|-
| [[Status/Mobile Data|Mobile Data]] || WIP || [https://github.com/maemo-leste/connui-cellular connui-cellular] [https://github.com/maemo-leste/libicd-network-ofono libicd-network-ofono] || There is basic libicd-network-ofono, connui-cellular is being ported to ofono
|-
| [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed
|-
| [[Status/SMS|SMS]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue]
|-
| [[Status/Phone Calls|Phone Calls]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue]
|-
| [[Status/Application Manager|Application Manager]] || OK || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || Mostly works, but needs serious testing [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue]
|-
| [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue]
|-
| [[Status/PDF Viewer|PDF Viewer]] || Mostly works || osso-pdf-viewer || [https://github.com/maemo-leste/osso-pdf-viewer osso-pdf-viewer]
|-
| [[Status/Games|Games & Entertainment]] || OK || Works (available in [[Leste Extras]] || [https://github.com/maemo-leste/bugtracker/issues/18 sdl fullscreen] [https://github.com/maemo-leste/bugtracker/issues/238 game importing]
|}
64a0eaa3a2ec5499a95a0bb31700641feff21944
Wishlist
0
89
647
625
2020-03-02T21:48:03Z
Buffer
35
/* Applications */
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
{| class="wikitable"http://maemo.org/packages/view/orecchiette/
! Package name
! Done
! Reason
! User
! URL
! Notes
|-
| osso-notes || Yes (quicknote) || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Quicknote currently packaged. Usage notes - http://wiki.maemo.org/Quicknote
|-
| pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation.
|-
| scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please
|-
| [[Games/Brainparty|brainparty]] || Yes || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ ||
|-
| Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || http://maemo.org/packages/view/orecchiette/(has also Psycho Pinball installable)
|-
| Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||http://maemo.org/packages/view/orecchiette/
|-
| Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend
|-
| PDF reader || Yes || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || libhildonfm has bugs regarding file opening dialogs that need to be fixed
|-
| Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port.
|-
| Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI
|-
| Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/
|-
| Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel
|-
|Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0
|-
| Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ ||
|-
| Image viewer/editor || No || || [[User:Maemish]] || ||
|-
| Mail with imap support || No || || [[User:Maemish]] || ||
|-
| RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || ||
|-
| Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ ||
|-
| OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer ||
|-
| SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net ||
|-
| Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ ||
|-
| D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ ||
|-
| Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ ||
|-
| MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms ||
|-
| Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ ||
|-
| Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed.
|-
| Firewall || No || || [[User:Maemish]] || || Something with easy configuration.
|-
| Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ ||
|-
|bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ ||
|-
| cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ ||
|-
| gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ ||
|-|-
| hamsterfiler || No || utilities/files || [[User:ric9k]] || http://maemo.org/packages/view/hamsterfiler/ ||
|-|-
| alarmed (or cron?) || No || utilities || [[User:ric9k]] || http://maemo.org/packages/view/alarmed/ ||
|-|-
| user friendly tracker || No || utilities? || [[User:ric9k]] || n/a :-) ||
|-|-
| Maps (offline) || No || Navigation || [[User:Sicelo]] || || Ideally something like https://f-droid.org/en/packages/com.github.axet.maps/ from Android, but Modrana, https://github.com/M4rtinK/modrana may be easier as a start
|-
| Orecchiette || No || calls recording || [[User:capitannemo]] || http://maemo.org/packages/view/orecchiette/ ||
|-
| Panucci || No || audiobook || [[User:capitannemo]] || http://maemo.org/packages/view/panucci/ ||
|-
| gPodder || No || podcast || [[User:capitannemo]] || http://maemo.org/packages/view/gpodder/ ||
|-
| Symfonie || No || directory-based audioplayer || [[User:capitannemo]] || http://maemo.org/packages/view/symfonie/ ||
|-
| osso-clock || No || clock and alarms application || pavel || ||
|-
| freecell4maemo || No || freecell game || pavel || ||
|-
| [http://festvox.org/index.html CMU Flite] || ? || Accessibility (TTS) || [[User:Buffer|Buffer]] ([[User talk:Buffer|talk]]) 21:48, 2 March 2020 (UTC) || https://github.com/festvox/flite ||
|)
f922c7ff82cdfd45693611166d1f4d14ae736afc
Image Builder
0
100
648
2020-03-03T00:01:24Z
Buffer
35
document image building procedure
wikitext
text/x-wiki
= How to build your own images =
== Maemo 7 Leste ==
# Install the following packages: <pre>curl git wget qemu-user-static build-essential rsync gcc-arm-none-eabi gcc-multilib lib32z1 u-boot-tools device-tree-compiler lzop dosfstools vboot-utils vboot-kernel-utils libftdi-dev libfdt-dev swig libpython-dev bc bison flex libssl-dev</pre>
# In your terminal, run the following commands:
$ git clone --recurse-submodules https://github.com/maemo-leste/image-builder.git
$ cd image-builder/arm-sdk
$ ./init.sh # (only needed on first run)
$ zsh -f
$ source sdk
$ load devuan DEVICE_NAME maemo
$ build_image_dist
Note: replace <code>DEVICE_NAME</code> with your board name:
* n900
* n950
* n9
* droid4
* odroidxu
* odroidxu4
* ouya
* raspi1
* raspi2
* raspi3
* rock64
* pinephone-dontbeevil
* sunxi
* turbox-twister
0d81a27d0f2d4d4300dcb8ed708fdec28e660768
649
648
2020-03-03T00:05:47Z
Buffer
35
/* How to build your own images */
wikitext
text/x-wiki
= How to build your own images =
===[https://github.com/maemo-leste/image-builder Github]===
== Maemo 7 Leste ==
# Install the following packages: <pre>curl git wget qemu-user-static build-essential rsync gcc-arm-none-eabi gcc-multilib lib32z1 u-boot-tools device-tree-compiler lzop dosfstools vboot-utils vboot-kernel-utils libftdi-dev libfdt-dev swig libpython-dev bc bison flex libssl-dev</pre>
# In your terminal, run the following commands:
$ git clone --recurse-submodules https://github.com/maemo-leste/image-builder.git
$ cd image-builder/arm-sdk
$ ./init.sh # (only needed on first run)
$ zsh -f
$ source sdk
$ load devuan DEVICE_NAME maemo
$ build_image_dist
Note: replace <code>DEVICE_NAME</code> with your board name:
* n900
* n950
* n9
* droid4
* odroidxu
* odroidxu4
* ouya
* raspi1
* raspi2
* raspi3
* rock64
* pinephone-dontbeevil
* sunxi
* turbox-twister
6650556621c36b1c68b54ed14c07360b224b32e9
650
649
2020-03-03T00:06:19Z
Buffer
35
/* How to build your own images */
wikitext
text/x-wiki
= How to build your own images =
== Maemo 7 Leste ==
===[https://github.com/maemo-leste/image-builder Github]===
# Install the following packages: <pre>curl git wget qemu-user-static build-essential rsync gcc-arm-none-eabi gcc-multilib lib32z1 u-boot-tools device-tree-compiler lzop dosfstools vboot-utils vboot-kernel-utils libftdi-dev libfdt-dev swig libpython-dev bc bison flex libssl-dev</pre>
# In your terminal, run the following commands:
$ git clone --recurse-submodules https://github.com/maemo-leste/image-builder.git
$ cd image-builder/arm-sdk
$ ./init.sh # (only needed on first run)
$ zsh -f
$ source sdk
$ load devuan DEVICE_NAME maemo
$ build_image_dist
Note: replace <code>DEVICE_NAME</code> with your board name:
* n900
* n950
* n9
* droid4
* odroidxu
* odroidxu4
* ouya
* raspi1
* raspi2
* raspi3
* rock64
* pinephone-dontbeevil
* sunxi
* turbox-twister
2e4b706d4fbb877e362e2ed8775f4f679390c901
651
650
2020-03-03T00:07:18Z
Buffer
35
/* Github */
wikitext
text/x-wiki
= How to build your own images =
== Maemo 7 Leste ==
'''[https://github.com/maemo-leste/image-builder Github]'''
# Install the following packages: <pre>curl git wget qemu-user-static build-essential rsync gcc-arm-none-eabi gcc-multilib lib32z1 u-boot-tools device-tree-compiler lzop dosfstools vboot-utils vboot-kernel-utils libftdi-dev libfdt-dev swig libpython-dev bc bison flex libssl-dev</pre>
# In your terminal, run the following commands:
$ git clone --recurse-submodules https://github.com/maemo-leste/image-builder.git
$ cd image-builder/arm-sdk
$ ./init.sh # (only needed on first run)
$ zsh -f
$ source sdk
$ load devuan DEVICE_NAME maemo
$ build_image_dist
Note: replace <code>DEVICE_NAME</code> with your board name:
* n900
* n950
* n9
* droid4
* odroidxu
* odroidxu4
* ouya
* raspi1
* raspi2
* raspi3
* rock64
* pinephone-dontbeevil
* sunxi
* turbox-twister
1e4a1c383219617816f427051c001162f3ca05a5
Development
0
61
652
538
2020-03-03T00:39:00Z
Spinal
13
/* Crossbuilding */ Update for new repository schema
wikitext
text/x-wiki
Maemo Leste development is split up in a few different places.
== Communication and organising ==
* Our https://maemo-leste.github.io website is where we post (news) updates, as well as on talk.maemo.org (see this subforum https://talk.maemo.org/forumdisplay.php?f=66 and this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192)
* There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker
* The day-to-day development and user chatter mostly takes place in the [[IRC channel]]
* We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
* This wiki: for documenting the status of various long-running projects, status per device, etc.
== Task Summary ==
For current (semi) impactful tasks, see
[[Development/Tasks]]
== Codename ==
* Maemo Leste is currently based on Devuan Ascii, which is based on Debian Stretch.
* Maemo Leste will be rebased (in the near future) to Devuan Beowulf, which is based on Debian Buster.
== Guides ==
* [[Development/Porting Packages]]
* [[Development/Building Packages]]
* [[Development/Modified Software]]
* [[Development/Device Bringup]]
== Technical ==
All our git repositories can be found here: https://github.com/maemo-leste
=== Jenkins ===
To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/
=== Developing on a device ===
Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM)
The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]].
=== Crossbuilding ===
Multiarch is an ability present on modern Debian systems that allows you to build native packages for different architectures. This is nice because you can build packages for an ARM based phone using the full power of your x86 based PC/Mac/Notebook or a server.
Here we show how you can easily setup a multiarch environment and build a native package for Maemo Leste running on Nokia N900. We are going to make a container (chroot) for this job. It's because we don't want to pollute our main system.
# Make a container for our development system
DIR=/var/lib/container/stretch
sudo apt-get install qemu-user-static debootstrap &&
sudo debootstrap stretch $DIR http://deb.debian.org/debian &&
echo "strech_cross" | sudo tee $DIR/etc/debian_chroot &&
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR
# Setup build environment inside the container
cat >> ~/.bashrc << EOF &&
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
export CC=arm-linux-gnueabihf-gcc
EOF
dpkg --add-architecture armhf &&
apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates &&
cat >> /etc/apt/sources.list << "EOF" &&
deb http://maedevu.maemo.org/leste ascii main contrib non-free n900
deb http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900
deb-src http://deb.debian.org/debian stretch main
deb-src http://maedevu.maemo.org/leste ascii main contrib non-free n900
deb-src http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900
EOF
wget https://maedevu.maemo.org/testing-key.asc &&
apt-key add testing-key.asc &&
rm -f testing-key.asc &&
rm -f /var/cache/apt/archives/*.deb &&
apt-get update &&
exec bash
# Build Xorg for Nokia N900
apt-get source xserver-xorg-core &&
cd xorg-server-1.19.2 &&
wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch &&
mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches &&
echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series &&
apt-get -y build-dep -a armhf . &&
time dpkg-buildpackage -aarmhf -j4 -b &&
echo OK || echo FAIL
To login the container later:
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch
To remove the container:
sudo rm -fr /var/lib/container/stretch
=== Cross-distro solution for development inside an ARM/ARM64 chroot on a PC ===
It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices.
1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]:
$ sudo apt-get install qemu-user-static binfmt-support
The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''':
$ sudo update-binfmts --display qemu-arm
qemu-arm (enabled):
package = qemu-user-static
type = magic
offset = 0
magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00
mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff
interpreter = /usr/bin/qemu-arm-static
detector =
2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it:
$ mkdir leste-arm64
$ cd leste-arm64
$ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf -
3. From the same directory, configure the chroot with a few resources from your host system:
$ sudo mount -t proc proc proc
$ sudo mount -o bind /dev dev
$ sudo mount -o bind /dev/pts dev/pts
4. From the same directory, create a symlink for the mount table:
$ sudo ln -s /proc/mounts etc/mtab
5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user:
$ sudo LC_ALL=C chroot . /bin/su - user
You'll now be ready to use your Maemo Leste ARM64 development environment:
$ uname -m
aarch64
Once you have finished with it, you can exit and unmount the resources you previously mounted:
$ exit
$ sudo umount dev/pts dev proc
=== TODO ===
* Discuss where people look to pick up issues (clear answer is the bugtracker, but still)
* How people can make changes and how to send them in
c68359da0950b5b63dacd0626b603cd9f9866ea1
653
652
2020-03-03T00:49:08Z
Spinal
13
/* Crossbuilding */ Don't hardcode jobs count for the package building example
wikitext
text/x-wiki
Maemo Leste development is split up in a few different places.
== Communication and organising ==
* Our https://maemo-leste.github.io website is where we post (news) updates, as well as on talk.maemo.org (see this subforum https://talk.maemo.org/forumdisplay.php?f=66 and this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192)
* There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker
* The day-to-day development and user chatter mostly takes place in the [[IRC channel]]
* We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
* This wiki: for documenting the status of various long-running projects, status per device, etc.
== Task Summary ==
For current (semi) impactful tasks, see
[[Development/Tasks]]
== Codename ==
* Maemo Leste is currently based on Devuan Ascii, which is based on Debian Stretch.
* Maemo Leste will be rebased (in the near future) to Devuan Beowulf, which is based on Debian Buster.
== Guides ==
* [[Development/Porting Packages]]
* [[Development/Building Packages]]
* [[Development/Modified Software]]
* [[Development/Device Bringup]]
== Technical ==
All our git repositories can be found here: https://github.com/maemo-leste
=== Jenkins ===
To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/
=== Developing on a device ===
Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM)
The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]].
=== Crossbuilding ===
Multiarch is an ability present on modern Debian systems that allows you to build native packages for different architectures. This is nice because you can build packages for an ARM based phone using the full power of your x86 based PC/Mac/Notebook or a server.
Here we show how you can easily setup a multiarch environment and build a native package for Maemo Leste running on Nokia N900. We are going to make a container (chroot) for this job. It's because we don't want to pollute our main system.
# Make a container for our development system
DIR=/var/lib/container/stretch
sudo apt-get install qemu-user-static debootstrap &&
sudo debootstrap stretch $DIR http://deb.debian.org/debian &&
echo "strech_cross" | sudo tee $DIR/etc/debian_chroot &&
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR
# Setup build environment inside the container
cat >> ~/.bashrc << EOF &&
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
export CC=arm-linux-gnueabihf-gcc
EOF
dpkg --add-architecture armhf &&
apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates &&
cat >> /etc/apt/sources.list << "EOF" &&
deb http://maedevu.maemo.org/leste ascii main contrib non-free n900
deb http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900
deb-src http://deb.debian.org/debian stretch main
deb-src http://maedevu.maemo.org/leste ascii main contrib non-free n900
deb-src http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900
EOF
wget https://maedevu.maemo.org/testing-key.asc &&
apt-key add testing-key.asc &&
rm -f testing-key.asc &&
rm -f /var/cache/apt/archives/*.deb &&
apt-get update &&
exec bash
# Build Xorg for Nokia N900
JOBS=$(grep processor /proc/cpuinfo | wc -l) &&
apt-get source xserver-xorg-core &&
cd xorg-server-1.19.2 &&
wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch &&
mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches &&
echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series &&
apt-get -y build-dep -a armhf . &&
time dpkg-buildpackage -aarmhf -j$JOBS -b &&
echo OK || echo FAIL
To login the container later:
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch
To remove the container:
sudo rm -fr /var/lib/container/stretch
=== Cross-distro solution for development inside an ARM/ARM64 chroot on a PC ===
It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices.
1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]:
$ sudo apt-get install qemu-user-static binfmt-support
The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''':
$ sudo update-binfmts --display qemu-arm
qemu-arm (enabled):
package = qemu-user-static
type = magic
offset = 0
magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00
mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff
interpreter = /usr/bin/qemu-arm-static
detector =
2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it:
$ mkdir leste-arm64
$ cd leste-arm64
$ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf -
3. From the same directory, configure the chroot with a few resources from your host system:
$ sudo mount -t proc proc proc
$ sudo mount -o bind /dev dev
$ sudo mount -o bind /dev/pts dev/pts
4. From the same directory, create a symlink for the mount table:
$ sudo ln -s /proc/mounts etc/mtab
5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user:
$ sudo LC_ALL=C chroot . /bin/su - user
You'll now be ready to use your Maemo Leste ARM64 development environment:
$ uname -m
aarch64
Once you have finished with it, you can exit and unmount the resources you previously mounted:
$ exit
$ sudo umount dev/pts dev proc
=== TODO ===
* Discuss where people look to pick up issues (clear answer is the bugtracker, but still)
* How people can make changes and how to send them in
f8a81147af44e186a4275e1cd5f5daa3f853b9c3
654
653
2020-03-03T00:52:13Z
Spinal
13
/* Crossbuilding */ Move jobs count calculation to .bashrc
wikitext
text/x-wiki
Maemo Leste development is split up in a few different places.
== Communication and organising ==
* Our https://maemo-leste.github.io website is where we post (news) updates, as well as on talk.maemo.org (see this subforum https://talk.maemo.org/forumdisplay.php?f=66 and this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192)
* There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker
* The day-to-day development and user chatter mostly takes place in the [[IRC channel]]
* We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
* This wiki: for documenting the status of various long-running projects, status per device, etc.
== Task Summary ==
For current (semi) impactful tasks, see
[[Development/Tasks]]
== Codename ==
* Maemo Leste is currently based on Devuan Ascii, which is based on Debian Stretch.
* Maemo Leste will be rebased (in the near future) to Devuan Beowulf, which is based on Debian Buster.
== Guides ==
* [[Development/Porting Packages]]
* [[Development/Building Packages]]
* [[Development/Modified Software]]
* [[Development/Device Bringup]]
== Technical ==
All our git repositories can be found here: https://github.com/maemo-leste
=== Jenkins ===
To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/
=== Developing on a device ===
Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM)
The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]].
=== Crossbuilding ===
Multiarch is an ability present on modern Debian systems that allows you to build native packages for different architectures. This is nice because you can build packages for an ARM based phone using the full power of your x86 based PC/Mac/Notebook or a server.
Here we show how you can easily setup a multiarch environment and build a native package for Maemo Leste running on Nokia N900. We are going to make a container (chroot) for this job. It's because we don't want to pollute our main system.
# Make a container for our development system
DIR=/var/lib/container/stretch
sudo apt-get install qemu-user-static debootstrap &&
sudo debootstrap stretch $DIR http://deb.debian.org/debian &&
echo "strech_cross" | sudo tee $DIR/etc/debian_chroot &&
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR
# Setup build environment inside the container
cat >> ~/.bashrc << EOF &&
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
export CC=arm-linux-gnueabihf-gcc
export JOBS=$(grep processor /proc/cpuinfo | wc -l)
EOF
dpkg --add-architecture armhf &&
apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates &&
cat >> /etc/apt/sources.list << "EOF" &&
deb http://maedevu.maemo.org/leste ascii main contrib non-free n900
deb http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900
deb-src http://deb.debian.org/debian stretch main
deb-src http://maedevu.maemo.org/leste ascii main contrib non-free n900
deb-src http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900
EOF
wget https://maedevu.maemo.org/testing-key.asc &&
apt-key add testing-key.asc &&
rm -f testing-key.asc &&
rm -f /var/cache/apt/archives/*.deb &&
apt-get update &&
exec bash
# Build Xorg for Nokia N900
apt-get source xserver-xorg-core &&
cd xorg-server-1.19.2 &&
wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch &&
mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches &&
echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series &&
apt-get -y build-dep -a armhf . &&
time dpkg-buildpackage -aarmhf -j$JOBS -b &&
echo OK || echo FAIL
To login the container later:
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch
To remove the container:
sudo rm -fr /var/lib/container/stretch
=== Cross-distro solution for development inside an ARM/ARM64 chroot on a PC ===
It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices.
1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]:
$ sudo apt-get install qemu-user-static binfmt-support
The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''':
$ sudo update-binfmts --display qemu-arm
qemu-arm (enabled):
package = qemu-user-static
type = magic
offset = 0
magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00
mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff
interpreter = /usr/bin/qemu-arm-static
detector =
2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it:
$ mkdir leste-arm64
$ cd leste-arm64
$ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf -
3. From the same directory, configure the chroot with a few resources from your host system:
$ sudo mount -t proc proc proc
$ sudo mount -o bind /dev dev
$ sudo mount -o bind /dev/pts dev/pts
4. From the same directory, create a symlink for the mount table:
$ sudo ln -s /proc/mounts etc/mtab
5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user:
$ sudo LC_ALL=C chroot . /bin/su - user
You'll now be ready to use your Maemo Leste ARM64 development environment:
$ uname -m
aarch64
Once you have finished with it, you can exit and unmount the resources you previously mounted:
$ exit
$ sudo umount dev/pts dev proc
=== TODO ===
* Discuss where people look to pick up issues (clear answer is the bugtracker, but still)
* How people can make changes and how to send them in
46d4e25ebba633613a19bce268e8b32ca23bf634
687
654
2020-03-06T17:08:29Z
Spinal
13
/* Guides */ Add link to Maemo 5 developer guide
wikitext
text/x-wiki
Maemo Leste development is split up in a few different places.
== Communication and organising ==
* Our https://maemo-leste.github.io website is where we post (news) updates, as well as on talk.maemo.org (see this subforum https://talk.maemo.org/forumdisplay.php?f=66 and this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192)
* There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker
* The day-to-day development and user chatter mostly takes place in the [[IRC channel]]
* We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
* This wiki: for documenting the status of various long-running projects, status per device, etc.
== Task Summary ==
For current (semi) impactful tasks, see
[[Development/Tasks]]
== Codename ==
* Maemo Leste is currently based on Devuan Ascii, which is based on Debian Stretch.
* Maemo Leste will be rebased (in the near future) to Devuan Beowulf, which is based on Debian Buster.
== Guides ==
* [[Development/Porting Packages]]
* [[Development/Building Packages]]
* [[Development/Modified Software]]
* [[Development/Device Bringup]]
* https://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide
== Technical ==
All our git repositories can be found here: https://github.com/maemo-leste
=== Jenkins ===
To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/
=== Developing on a device ===
Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM)
The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]].
=== Crossbuilding ===
Multiarch is an ability present on modern Debian systems that allows you to build native packages for different architectures. This is nice because you can build packages for an ARM based phone using the full power of your x86 based PC/Mac/Notebook or a server.
Here we show how you can easily setup a multiarch environment and build a native package for Maemo Leste running on Nokia N900. We are going to make a container (chroot) for this job. It's because we don't want to pollute our main system.
# Make a container for our development system
DIR=/var/lib/container/stretch
sudo apt-get install qemu-user-static debootstrap &&
sudo debootstrap stretch $DIR http://deb.debian.org/debian &&
echo "strech_cross" | sudo tee $DIR/etc/debian_chroot &&
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR
# Setup build environment inside the container
cat >> ~/.bashrc << EOF &&
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
export CC=arm-linux-gnueabihf-gcc
export JOBS=$(grep processor /proc/cpuinfo | wc -l)
EOF
dpkg --add-architecture armhf &&
apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates &&
cat >> /etc/apt/sources.list << "EOF" &&
deb http://maedevu.maemo.org/leste ascii main contrib non-free n900
deb http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900
deb-src http://deb.debian.org/debian stretch main
deb-src http://maedevu.maemo.org/leste ascii main contrib non-free n900
deb-src http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900
EOF
wget https://maedevu.maemo.org/testing-key.asc &&
apt-key add testing-key.asc &&
rm -f testing-key.asc &&
rm -f /var/cache/apt/archives/*.deb &&
apt-get update &&
exec bash
# Build Xorg for Nokia N900
apt-get source xserver-xorg-core &&
cd xorg-server-1.19.2 &&
wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch &&
mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches &&
echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series &&
apt-get -y build-dep -a armhf . &&
time dpkg-buildpackage -aarmhf -j$JOBS -b &&
echo OK || echo FAIL
To login the container later:
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch
To remove the container:
sudo rm -fr /var/lib/container/stretch
=== Cross-distro solution for development inside an ARM/ARM64 chroot on a PC ===
It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices.
1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]:
$ sudo apt-get install qemu-user-static binfmt-support
The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''':
$ sudo update-binfmts --display qemu-arm
qemu-arm (enabled):
package = qemu-user-static
type = magic
offset = 0
magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00
mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff
interpreter = /usr/bin/qemu-arm-static
detector =
2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it:
$ mkdir leste-arm64
$ cd leste-arm64
$ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf -
3. From the same directory, configure the chroot with a few resources from your host system:
$ sudo mount -t proc proc proc
$ sudo mount -o bind /dev dev
$ sudo mount -o bind /dev/pts dev/pts
4. From the same directory, create a symlink for the mount table:
$ sudo ln -s /proc/mounts etc/mtab
5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user:
$ sudo LC_ALL=C chroot . /bin/su - user
You'll now be ready to use your Maemo Leste ARM64 development environment:
$ uname -m
aarch64
Once you have finished with it, you can exit and unmount the resources you previously mounted:
$ exit
$ sudo umount dev/pts dev proc
=== TODO ===
* Discuss where people look to pick up issues (clear answer is the bugtracker, but still)
* How people can make changes and how to send them in
0b3da235366b1be18ee6064e7b63bf2bf5c05b75
Main Page
0
1
655
600
2020-03-03T14:00:16Z
Halftux
7
/* Links */ added rss feed link
wikitext
text/x-wiki
= Description =
Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more.
You can find us on '''freenode''', channel '''#maemo-leste'''.
For an overview of the current status, you might want to check out: [[Status]]
Maemo Leste is based on Devuan Ascii (Debian Stretch) and all the "supported" devices ship with recent Linux (mainline-based) kernels.
The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers.
For some devices, we have development images available, such as the N900. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software.
= Frequently Asked Questions =
See [[Leste_FAQ|FAQ]]
= Supported Devices =
See [[:Category:Device]]
= Development =
See [[Development]]
= Roadmap =
== Project milestones ==
https://github.com/maemo-leste/bugtracker/milestones
== Wishlist ==
You have an application you want to see in Leste? Please let us know [[Wishlist|here]].
= Talks =
See [[Talks]]
= Links =
<div>
The central point of meeting and talking is IRC (irc.freenode.net in #maemo-leste) and this thread: https://talk.maemo.org/showthread.php?t=100192.
*Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io]
*Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues]
*Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/]
*Our Extras Github: [https://github.com/maemo-leste-extras/ https://github.com/maemo-leste-extras/]
*Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/]
*Our Jenkins build server: [https://phoenix.maemo.org/ https://phoenix.maemo.org/]
*Our IRC history: [http://maedevu.maemo.org/irc.txt http://maedevu.maemo.org/irc.txt]
*Our YouTube channel: [https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w] (via [https://www.invidio.us/channel/UCgAWiHvWSuJAg5hjk7JYn1w Invidious] )
*Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
*RSS feed: [https://maemo-leste.github.io/feeds/all.atom.xml https://maemo-leste.github.io/feeds/all.atom.xml]
*[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)]
</div>
35e8c716df1ebdf20df6df73157c7a86f0ed7ff3
Development/Building Packages
0
80
656
383
2020-03-03T21:06:54Z
Parazyd
1
Update for new repository structure
wikitext
text/x-wiki
= How you can build package =
Building a packages is easier than one might think, it requires roughly the following steps:
#. Access to a Devuan/Debian system (you can use a [[Virtual_Machine|VM running Maemo Leste]] or a [[:Category:Device|Device running Maemo Leste]].
#. Source code of a package, obtain either via '''git''' or '''apt source <packagename>'''.
#. Build a package using '''dpkg-buildpackage -uc -b''' (run from source directory)
#. Optionally install build dependencies with '''apt''' (dpkg-buildpackage will tell you)
You can now install the package you have just built with '''dpkg -i somename.deb'''.
Also see: https://wiki.debian.org/HowToPackageForDebian
== Submitting changes ==
If you make changes to a package, please submit a pull request for the repository of that package, likely: https://github.com/maemo-leste/PACKAGENAME
For now, we will take care of updating tags and branches.
= How packages end up in the repository =
There are currently two repositories:
* The main repository: https://maedevu.maemo.org/leste
* The extras repository: https://maedevu.maemo.org/extras
The packages in the extras repository are not core, but useful applications nonetheless.
The codenames and an /etc/apt/sources.list file entry would look like the following:
<code>
deb https://maedevu.maemo.org/leste ascii main contrib non-free
deb https://maedevu.maemo.org/extras ascii main contrib non-free
</code>
Packages in this repository get build by Jenkins, to which a select group of people has access. (Parazyd, Wizzup, Spinal84)
== How packages are built using Jenkins ==
Read only access to the http frontend: https://phoenix.maemo.org/ (write-access can be granted)
All packages are hosted on https://github.com/maemo-leste and a current list of all the packages in Jenkins can be found here:
https://github.com/maemo-leste/jenkins-integration/blob/master/config.py
Every repository has a branch for each release, for example:
# maemo/ascii - main branch for Devuan Ascii target
# maemo/ascii-devel - main branch for Devuan Ascii, but possibly with unstable version
# maemo/beowulf - main branch for Devuan Beowulf version of the package
See [[Development/Branches]] for more information on the usual branches flow.
8f51670ff4e0ec59fd34d3b240d02618f62746ee
657
656
2020-03-03T21:08:28Z
Parazyd
1
Typo fix
wikitext
text/x-wiki
= How you can build packages =
Building a packages is easier than one might think, it requires roughly the following steps:
#. Access to a Devuan/Debian system (you can use a [[Virtual_Machine|VM running Maemo Leste]] or a [[:Category:Device|Device running Maemo Leste]].
#. Source code of a package, obtain either via '''git''' or '''apt source <packagename>'''.
#. Build a package using '''dpkg-buildpackage -uc -b''' (run from source directory)
#. Optionally install build dependencies with '''apt''' (dpkg-buildpackage will tell you)
You can now install the package you have just built with '''dpkg -i somename.deb'''.
Also see: https://wiki.debian.org/HowToPackageForDebian
== Submitting changes ==
If you make changes to a package, please submit a pull request for the repository of that package, likely: https://github.com/maemo-leste/PACKAGENAME
For now, we will take care of updating tags and branches.
= How packages end up in the repository =
There are currently two repositories:
* The main repository: https://maedevu.maemo.org/leste
* The extras repository: https://maedevu.maemo.org/extras
The packages in the extras repository are not core, but useful applications nonetheless.
The codenames and an /etc/apt/sources.list file entry would look like the following:
<code>
deb https://maedevu.maemo.org/leste ascii main contrib non-free
deb https://maedevu.maemo.org/extras ascii main contrib non-free
</code>
Packages in this repository get build by Jenkins, to which a select group of people has access. (Parazyd, Wizzup, Spinal84)
== How packages are built using Jenkins ==
Read only access to the http frontend: https://phoenix.maemo.org/ (write-access can be granted)
All packages are hosted on https://github.com/maemo-leste and a current list of all the packages in Jenkins can be found here:
https://github.com/maemo-leste/jenkins-integration/blob/master/config.py
Every repository has a branch for each release, for example:
# maemo/ascii - main branch for Devuan Ascii target
# maemo/ascii-devel - main branch for Devuan Ascii, but possibly with unstable version
# maemo/beowulf - main branch for Devuan Beowulf version of the package
See [[Development/Branches]] for more information on the usual branches flow.
01d0864f0faccef67146980ad6fd84745db29655
658
657
2020-03-03T21:20:40Z
Parazyd
1
Add maintenance workflow instructions
wikitext
text/x-wiki
= Maintenance workflow =
Each package in Maemo Leste uses a specific git-based workflow which makes it easy to track history and maintain in an easy way.
Taking the https://github.com/maemo-leste/libcal/ package as an example - a valid repository contains at least two git branches:
# master
# maemo/ascii
Ideally, the branches should have no difference, but sometimes this may vary.
Your git repository should contain your code, and a '''debian''' directory - which contains the debian package build logic.
The <i>compat</i> level of the package should be no less than '''9''' and preferably it should use '''debhelper'''.
Once you have your package ready and it builds locally on your Maemo Leste VM/device, there are just a couple more things to
do to make it ready for building on Jenkins:
== The git tag ==
In '''debian/changelog''' you should have your package version. It is very important to have a git tag that reflects this version
so Jenkins and jenkins-debian-glue can figure out which revision to build.
Keep in mind that the git tag should '''only''' contain the upstream version and no package revisions, for example if we have:
<code>libcal (0.3-2) unstable; urgency=medium</code>
Our git tag would be <i>0.3</i>, and '''not''' <i>0.3-1</i>
Once tagged, push the tag to git.
== gbp.conf ===
Your '''debian''' directory should contain a file called '''gbp.conf''' with the following contents:
<code>
[DEFAULT]
upstream-tag=%(version)s
</code>
Once all this is in place, make sure that you have a '''maemo/$codename''' branch containing all this ready and pushed.
= How you can build packages =
Building a packages is easier than one might think, it requires roughly the following steps:
#. Access to a Devuan/Debian system (you can use a [[Virtual_Machine|VM running Maemo Leste]] or a [[:Category:Device|Device running Maemo Leste]].
#. Source code of a package, obtain either via '''git''' or '''apt source <packagename>'''.
#. Build a package using '''dpkg-buildpackage -uc -b''' (run from source directory)
#. Optionally install build dependencies with '''apt''' (dpkg-buildpackage will tell you)
You can now install the package you have just built with '''dpkg -i somename.deb'''.
Also see: https://wiki.debian.org/HowToPackageForDebian
== Submitting changes ==
If you make changes to a package, please submit a pull request for the repository of that package, likely: https://github.com/maemo-leste/PACKAGENAME
For now, we will take care of updating tags and branches.
= How packages end up in the repository =
There are currently two repositories:
* The main repository: https://maedevu.maemo.org/leste
* The extras repository: https://maedevu.maemo.org/extras
The packages in the extras repository are not core, but useful applications nonetheless.
The codenames and an /etc/apt/sources.list file entry would look like the following:
<code>
deb https://maedevu.maemo.org/leste ascii main contrib non-free
deb https://maedevu.maemo.org/extras ascii main contrib non-free
</code>
Packages in this repository get build by Jenkins, to which a select group of people has access. (Parazyd, Wizzup, Spinal84)
== How packages are built using Jenkins ==
Read only access to the http frontend: https://phoenix.maemo.org/ (write-access can be granted)
All packages are hosted on https://github.com/maemo-leste and a current list of all the packages in Jenkins can be found here:
https://github.com/maemo-leste/jenkins-integration/blob/master/config.py
Every repository has a branch for each release, for example:
# maemo/ascii - main branch for Devuan Ascii target
# maemo/ascii-devel - main branch for Devuan Ascii, but possibly with unstable version
# maemo/beowulf - main branch for Devuan Beowulf version of the package
See [[Development/Branches]] for more information on the usual branches flow.
e93393e872638a9eed6aadbb70321e0031507f89
659
658
2020-03-03T21:23:27Z
Parazyd
1
Typo fix
wikitext
text/x-wiki
= Maintenance workflow =
Each package in Maemo Leste uses a specific git-based workflow which makes it easy to track history and maintain in an easy way.
Taking the https://github.com/maemo-leste/libcal/ package as an example - a valid repository contains at least two git branches:
# master
# maemo/ascii
Ideally, the branches should have no difference, but sometimes this may vary.
Your git repository should contain your code, and a '''debian''' directory - which contains the debian package build logic.
The <i>compat</i> level of the package should be no less than '''9''' and preferably it should use '''debhelper'''.
Once you have your package ready and it builds locally on your Maemo Leste VM/device, there are just a couple more things to
do to make it ready for building on Jenkins:
== The git tag ==
In '''debian/changelog''' you should have your package version. It is very important to have a git tag that reflects this version
so Jenkins and jenkins-debian-glue can figure out which revision to build.
Keep in mind that the git tag should '''only''' contain the upstream version and no package revisions, for example if we have:
<code>libcal (0.3-2) unstable; urgency=medium</code>
Our git tag would be <i>0.3</i>, and '''not''' <i>0.3-1</i>
Once tagged, push the tag to git.
== gbp.conf ==
Your '''debian''' directory should contain a file called '''gbp.conf''' with the following contents:
<code>
[DEFAULT]
upstream-tag=%(version)s
</code>
Once all this is in place, make sure that you have a '''maemo/$codename''' branch containing all this ready and pushed.
= How you can build packages =
Building a packages is easier than one might think, it requires roughly the following steps:
#. Access to a Devuan/Debian system (you can use a [[Virtual_Machine|VM running Maemo Leste]] or a [[:Category:Device|Device running Maemo Leste]].
#. Source code of a package, obtain either via '''git''' or '''apt source <packagename>'''.
#. Build a package using '''dpkg-buildpackage -uc -b''' (run from source directory)
#. Optionally install build dependencies with '''apt''' (dpkg-buildpackage will tell you)
You can now install the package you have just built with '''dpkg -i somename.deb'''.
Also see: https://wiki.debian.org/HowToPackageForDebian
== Submitting changes ==
If you make changes to a package, please submit a pull request for the repository of that package, likely: https://github.com/maemo-leste/PACKAGENAME
For now, we will take care of updating tags and branches.
= How packages end up in the repository =
There are currently two repositories:
* The main repository: https://maedevu.maemo.org/leste
* The extras repository: https://maedevu.maemo.org/extras
The packages in the extras repository are not core, but useful applications nonetheless.
The codenames and an /etc/apt/sources.list file entry would look like the following:
<code>
deb https://maedevu.maemo.org/leste ascii main contrib non-free
deb https://maedevu.maemo.org/extras ascii main contrib non-free
</code>
Packages in this repository get build by Jenkins, to which a select group of people has access. (Parazyd, Wizzup, Spinal84)
== How packages are built using Jenkins ==
Read only access to the http frontend: https://phoenix.maemo.org/ (write-access can be granted)
All packages are hosted on https://github.com/maemo-leste and a current list of all the packages in Jenkins can be found here:
https://github.com/maemo-leste/jenkins-integration/blob/master/config.py
Every repository has a branch for each release, for example:
# maemo/ascii - main branch for Devuan Ascii target
# maemo/ascii-devel - main branch for Devuan Ascii, but possibly with unstable version
# maemo/beowulf - main branch for Devuan Beowulf version of the package
See [[Development/Branches]] for more information on the usual branches flow.
02ef33ba0e14680c6b9e27e2988bfac2e5b6a4d8
660
659
2020-03-03T21:23:48Z
Parazyd
1
/* The git tag */
wikitext
text/x-wiki
= Maintenance workflow =
Each package in Maemo Leste uses a specific git-based workflow which makes it easy to track history and maintain in an easy way.
Taking the https://github.com/maemo-leste/libcal/ package as an example - a valid repository contains at least two git branches:
# master
# maemo/ascii
Ideally, the branches should have no difference, but sometimes this may vary.
Your git repository should contain your code, and a '''debian''' directory - which contains the debian package build logic.
The <i>compat</i> level of the package should be no less than '''9''' and preferably it should use '''debhelper'''.
Once you have your package ready and it builds locally on your Maemo Leste VM/device, there are just a couple more things to
do to make it ready for building on Jenkins:
== The git tag ==
In '''debian/changelog''' you should have your package version. It is very important to have a git tag that reflects this version
so Jenkins and jenkins-debian-glue can figure out which revision to build.
Keep in mind that the git tag should '''only''' contain the upstream version and no package revisions, for example if we have:
<code>libcal (0.3-2) unstable; urgency=medium</code>
Our git tag would be <i>0.3</i>, and '''not''' <i>0.3-1</i>
Once tagged, push the tag to git origin.
== gbp.conf ==
Your '''debian''' directory should contain a file called '''gbp.conf''' with the following contents:
<code>
[DEFAULT]
upstream-tag=%(version)s
</code>
Once all this is in place, make sure that you have a '''maemo/$codename''' branch containing all this ready and pushed.
= How you can build packages =
Building a packages is easier than one might think, it requires roughly the following steps:
#. Access to a Devuan/Debian system (you can use a [[Virtual_Machine|VM running Maemo Leste]] or a [[:Category:Device|Device running Maemo Leste]].
#. Source code of a package, obtain either via '''git''' or '''apt source <packagename>'''.
#. Build a package using '''dpkg-buildpackage -uc -b''' (run from source directory)
#. Optionally install build dependencies with '''apt''' (dpkg-buildpackage will tell you)
You can now install the package you have just built with '''dpkg -i somename.deb'''.
Also see: https://wiki.debian.org/HowToPackageForDebian
== Submitting changes ==
If you make changes to a package, please submit a pull request for the repository of that package, likely: https://github.com/maemo-leste/PACKAGENAME
For now, we will take care of updating tags and branches.
= How packages end up in the repository =
There are currently two repositories:
* The main repository: https://maedevu.maemo.org/leste
* The extras repository: https://maedevu.maemo.org/extras
The packages in the extras repository are not core, but useful applications nonetheless.
The codenames and an /etc/apt/sources.list file entry would look like the following:
<code>
deb https://maedevu.maemo.org/leste ascii main contrib non-free
deb https://maedevu.maemo.org/extras ascii main contrib non-free
</code>
Packages in this repository get build by Jenkins, to which a select group of people has access. (Parazyd, Wizzup, Spinal84)
== How packages are built using Jenkins ==
Read only access to the http frontend: https://phoenix.maemo.org/ (write-access can be granted)
All packages are hosted on https://github.com/maemo-leste and a current list of all the packages in Jenkins can be found here:
https://github.com/maemo-leste/jenkins-integration/blob/master/config.py
Every repository has a branch for each release, for example:
# maemo/ascii - main branch for Devuan Ascii target
# maemo/ascii-devel - main branch for Devuan Ascii, but possibly with unstable version
# maemo/beowulf - main branch for Devuan Beowulf version of the package
See [[Development/Branches]] for more information on the usual branches flow.
8804d2fc9b690473a1dc3af8f661f25da7cf3a0b
661
660
2020-03-03T21:29:53Z
Parazyd
1
Add extras stub
wikitext
text/x-wiki
= Maintenance workflow =
Each package in Maemo Leste uses a specific git-based workflow which makes it easy to track history and maintain in an easy way.
Taking the https://github.com/maemo-leste/libcal/ package as an example - a valid repository contains at least two git branches:
# master
# maemo/ascii
Ideally, the branches should have no difference, but sometimes this may vary.
Your git repository should contain your code, and a '''debian''' directory - which contains the debian package build logic.
The <i>compat</i> level of the package should be no less than '''9''' and preferably it should use '''debhelper'''.
Once you have your package ready and it builds locally on your Maemo Leste VM/device, there are just a couple more things to
do to make it ready for building on Jenkins:
== The git tag ==
In '''debian/changelog''' you should have your package version. It is very important to have a git tag that reflects this version
so Jenkins and jenkins-debian-glue can figure out which revision to build.
Keep in mind that the git tag should '''only''' contain the upstream version and no package revisions, for example if we have:
<code>libcal (0.3-2) unstable; urgency=medium</code>
Our git tag would be <i>0.3</i>, and '''not''' <i>0.3-1</i>
Once tagged, push the tag to git origin.
== gbp.conf ==
Your '''debian''' directory should contain a file called '''gbp.conf''' with the following contents:
<code>
[DEFAULT]
upstream-tag=%(version)s
</code>
Once all this is in place, make sure that you have a '''maemo/$codename''' branch containing all this ready and pushed.
= How you can build packages =
Building a packages is easier than one might think, it requires roughly the following steps:
#. Access to a Devuan/Debian system (you can use a [[Virtual_Machine|VM running Maemo Leste]] or a [[:Category:Device|Device running Maemo Leste]].
#. Source code of a package, obtain either via '''git''' or '''apt source <packagename>'''.
#. Build a package using '''dpkg-buildpackage -uc -b''' (run from source directory)
#. Optionally install build dependencies with '''apt''' (dpkg-buildpackage will tell you)
You can now install the package you have just built with '''dpkg -i somename.deb'''.
Also see: https://wiki.debian.org/HowToPackageForDebian
== Submitting changes ==
If you make changes to a package, please submit a pull request for the repository of that package, likely: https://github.com/maemo-leste/PACKAGENAME
For now, we will take care of updating tags and branches.
= How packages end up in the repository =
There are currently two repositories:
* The main repository: https://maedevu.maemo.org/leste
* The extras repository: https://maedevu.maemo.org/extras
The packages in the extras repository are not core, but useful applications nonetheless.
The codenames and an /etc/apt/sources.list file entry would look like the following:
<code>
deb https://maedevu.maemo.org/leste ascii main contrib non-free
deb https://maedevu.maemo.org/extras ascii main contrib non-free
</code>
Packages in this repository get build by Jenkins, to which a select group of people has access. (Parazyd, Wizzup, Spinal84)
== How packages are built using Jenkins ==
Read only access to the http frontend: https://phoenix.maemo.org/ (write-access can be granted)
All packages are hosted on https://github.com/maemo-leste and a current list of all the packages in Jenkins can be found here:
https://github.com/maemo-leste/jenkins-integration/blob/master/config.py
Every repository has a branch for each release, for example:
# maemo/ascii - main branch for Devuan Ascii target
# maemo/ascii-devel - main branch for Devuan Ascii, but possibly with unstable version
# maemo/beowulf - main branch for Devuan Beowulf version of the package
See [[Development/Branches]] for more information on the usual branches flow.
= Maemo Leste Extras =
If you wish to maintain your own package in Maemo Leste, you can apply a package at https://github.com/maemo-leste-extras/bugtracker
Have a look at the README in that repository and open a ticket.
84c48c42ac3c4eca2ae9f1406a920cd913d56129
662
661
2020-03-04T03:54:43Z
Spinal
13
/* How you can build packages */ Add instruction to help installing build deps automatically
wikitext
text/x-wiki
= Maintenance workflow =
Each package in Maemo Leste uses a specific git-based workflow which makes it easy to track history and maintain in an easy way.
Taking the https://github.com/maemo-leste/libcal/ package as an example - a valid repository contains at least two git branches:
# master
# maemo/ascii
Ideally, the branches should have no difference, but sometimes this may vary.
Your git repository should contain your code, and a '''debian''' directory - which contains the debian package build logic.
The <i>compat</i> level of the package should be no less than '''9''' and preferably it should use '''debhelper'''.
Once you have your package ready and it builds locally on your Maemo Leste VM/device, there are just a couple more things to
do to make it ready for building on Jenkins:
== The git tag ==
In '''debian/changelog''' you should have your package version. It is very important to have a git tag that reflects this version
so Jenkins and jenkins-debian-glue can figure out which revision to build.
Keep in mind that the git tag should '''only''' contain the upstream version and no package revisions, for example if we have:
<code>libcal (0.3-2) unstable; urgency=medium</code>
Our git tag would be <i>0.3</i>, and '''not''' <i>0.3-1</i>
Once tagged, push the tag to git origin.
== gbp.conf ==
Your '''debian''' directory should contain a file called '''gbp.conf''' with the following contents:
<code>
[DEFAULT]
upstream-tag=%(version)s
</code>
Once all this is in place, make sure that you have a '''maemo/$codename''' branch containing all this ready and pushed.
= How you can build packages =
Building a packages is easier than one might think, it requires roughly the following steps:
#. Access to a Devuan/Debian system (you can use a [[Virtual_Machine|VM running Maemo Leste]] or a [[:Category:Device|Device running Maemo Leste]].
#. Source code of a package, obtain either via '''git''' or '''apt source <packagename>'''.
#. Build a package using '''dpkg-buildpackage -uc -b''' (run from source directory)
#. Optionally install build dependencies with '''apt''' (dpkg-buildpackage will tell you). To install build deps automatically:
<code>sudo apt-get build-dep <PACKAGE_DIR></code>
You can now install the package you have just built with '''dpkg -i somename.deb'''.
Also see: https://wiki.debian.org/HowToPackageForDebian
== Submitting changes ==
If you make changes to a package, please submit a pull request for the repository of that package, likely: https://github.com/maemo-leste/PACKAGENAME
For now, we will take care of updating tags and branches.
= How packages end up in the repository =
There are currently two repositories:
* The main repository: https://maedevu.maemo.org/leste
* The extras repository: https://maedevu.maemo.org/extras
The packages in the extras repository are not core, but useful applications nonetheless.
The codenames and an /etc/apt/sources.list file entry would look like the following:
<code>
deb https://maedevu.maemo.org/leste ascii main contrib non-free
deb https://maedevu.maemo.org/extras ascii main contrib non-free
</code>
Packages in this repository get build by Jenkins, to which a select group of people has access. (Parazyd, Wizzup, Spinal84)
== How packages are built using Jenkins ==
Read only access to the http frontend: https://phoenix.maemo.org/ (write-access can be granted)
All packages are hosted on https://github.com/maemo-leste and a current list of all the packages in Jenkins can be found here:
https://github.com/maemo-leste/jenkins-integration/blob/master/config.py
Every repository has a branch for each release, for example:
# maemo/ascii - main branch for Devuan Ascii target
# maemo/ascii-devel - main branch for Devuan Ascii, but possibly with unstable version
# maemo/beowulf - main branch for Devuan Beowulf version of the package
See [[Development/Branches]] for more information on the usual branches flow.
= Maemo Leste Extras =
If you wish to maintain your own package in Maemo Leste, you can apply a package at https://github.com/maemo-leste-extras/bugtracker
Have a look at the README in that repository and open a ticket.
2770831ce56963920285042d28130d48ea0215e8
663
662
2020-03-04T03:56:33Z
Spinal
13
/* How you can build packages */ Change order: first install build deps, then build the package
wikitext
text/x-wiki
= Maintenance workflow =
Each package in Maemo Leste uses a specific git-based workflow which makes it easy to track history and maintain in an easy way.
Taking the https://github.com/maemo-leste/libcal/ package as an example - a valid repository contains at least two git branches:
# master
# maemo/ascii
Ideally, the branches should have no difference, but sometimes this may vary.
Your git repository should contain your code, and a '''debian''' directory - which contains the debian package build logic.
The <i>compat</i> level of the package should be no less than '''9''' and preferably it should use '''debhelper'''.
Once you have your package ready and it builds locally on your Maemo Leste VM/device, there are just a couple more things to
do to make it ready for building on Jenkins:
== The git tag ==
In '''debian/changelog''' you should have your package version. It is very important to have a git tag that reflects this version
so Jenkins and jenkins-debian-glue can figure out which revision to build.
Keep in mind that the git tag should '''only''' contain the upstream version and no package revisions, for example if we have:
<code>libcal (0.3-2) unstable; urgency=medium</code>
Our git tag would be <i>0.3</i>, and '''not''' <i>0.3-1</i>
Once tagged, push the tag to git origin.
== gbp.conf ==
Your '''debian''' directory should contain a file called '''gbp.conf''' with the following contents:
<code>
[DEFAULT]
upstream-tag=%(version)s
</code>
Once all this is in place, make sure that you have a '''maemo/$codename''' branch containing all this ready and pushed.
= How you can build packages =
Building a packages is easier than one might think, it requires roughly the following steps:
#. Access to a Devuan/Debian system (you can use a [[Virtual_Machine|VM running Maemo Leste]] or a [[:Category:Device|Device running Maemo Leste]].
#. Source code of a package, obtain either via '''git''' or '''apt source <packagename>'''.
#. Install build dependencies (run from source directory):
<code>sudo apt-get build-dep .</code>
#. Build a package using '''dpkg-buildpackage -uc -b'''
You can now install the package you have just built with '''dpkg -i somename.deb'''.
Also see: https://wiki.debian.org/HowToPackageForDebian
== Submitting changes ==
If you make changes to a package, please submit a pull request for the repository of that package, likely: https://github.com/maemo-leste/PACKAGENAME
For now, we will take care of updating tags and branches.
= How packages end up in the repository =
There are currently two repositories:
* The main repository: https://maedevu.maemo.org/leste
* The extras repository: https://maedevu.maemo.org/extras
The packages in the extras repository are not core, but useful applications nonetheless.
The codenames and an /etc/apt/sources.list file entry would look like the following:
<code>
deb https://maedevu.maemo.org/leste ascii main contrib non-free
deb https://maedevu.maemo.org/extras ascii main contrib non-free
</code>
Packages in this repository get build by Jenkins, to which a select group of people has access. (Parazyd, Wizzup, Spinal84)
== How packages are built using Jenkins ==
Read only access to the http frontend: https://phoenix.maemo.org/ (write-access can be granted)
All packages are hosted on https://github.com/maemo-leste and a current list of all the packages in Jenkins can be found here:
https://github.com/maemo-leste/jenkins-integration/blob/master/config.py
Every repository has a branch for each release, for example:
# maemo/ascii - main branch for Devuan Ascii target
# maemo/ascii-devel - main branch for Devuan Ascii, but possibly with unstable version
# maemo/beowulf - main branch for Devuan Beowulf version of the package
See [[Development/Branches]] for more information on the usual branches flow.
= Maemo Leste Extras =
If you wish to maintain your own package in Maemo Leste, you can apply a package at https://github.com/maemo-leste-extras/bugtracker
Have a look at the README in that repository and open a ticket.
b3da7d53779890615a2888e5eab356767c073ea1
664
663
2020-03-04T03:57:44Z
Spinal
13
/* How you can build packages */ Fix formatting
wikitext
text/x-wiki
= Maintenance workflow =
Each package in Maemo Leste uses a specific git-based workflow which makes it easy to track history and maintain in an easy way.
Taking the https://github.com/maemo-leste/libcal/ package as an example - a valid repository contains at least two git branches:
# master
# maemo/ascii
Ideally, the branches should have no difference, but sometimes this may vary.
Your git repository should contain your code, and a '''debian''' directory - which contains the debian package build logic.
The <i>compat</i> level of the package should be no less than '''9''' and preferably it should use '''debhelper'''.
Once you have your package ready and it builds locally on your Maemo Leste VM/device, there are just a couple more things to
do to make it ready for building on Jenkins:
== The git tag ==
In '''debian/changelog''' you should have your package version. It is very important to have a git tag that reflects this version
so Jenkins and jenkins-debian-glue can figure out which revision to build.
Keep in mind that the git tag should '''only''' contain the upstream version and no package revisions, for example if we have:
<code>libcal (0.3-2) unstable; urgency=medium</code>
Our git tag would be <i>0.3</i>, and '''not''' <i>0.3-1</i>
Once tagged, push the tag to git origin.
== gbp.conf ==
Your '''debian''' directory should contain a file called '''gbp.conf''' with the following contents:
<code>
[DEFAULT]
upstream-tag=%(version)s
</code>
Once all this is in place, make sure that you have a '''maemo/$codename''' branch containing all this ready and pushed.
= How you can build packages =
Building a packages is easier than one might think, it requires roughly the following steps:
#. Access to a Devuan/Debian system (you can use a [[Virtual_Machine|VM running Maemo Leste]] or a [[:Category:Device|Device running Maemo Leste]].
#. Source code of a package, obtain either via '''git''' or '''apt source <packagename>'''
#. Install build dependencies (run from source directory): '''sudo apt-get build-dep .'''
#. Build a package using '''dpkg-buildpackage -uc -b'''
You can now install the package you have just built with '''dpkg -i somename.deb'''
Also see: https://wiki.debian.org/HowToPackageForDebian
== Submitting changes ==
If you make changes to a package, please submit a pull request for the repository of that package, likely: https://github.com/maemo-leste/PACKAGENAME
For now, we will take care of updating tags and branches.
= How packages end up in the repository =
There are currently two repositories:
* The main repository: https://maedevu.maemo.org/leste
* The extras repository: https://maedevu.maemo.org/extras
The packages in the extras repository are not core, but useful applications nonetheless.
The codenames and an /etc/apt/sources.list file entry would look like the following:
<code>
deb https://maedevu.maemo.org/leste ascii main contrib non-free
deb https://maedevu.maemo.org/extras ascii main contrib non-free
</code>
Packages in this repository get build by Jenkins, to which a select group of people has access. (Parazyd, Wizzup, Spinal84)
== How packages are built using Jenkins ==
Read only access to the http frontend: https://phoenix.maemo.org/ (write-access can be granted)
All packages are hosted on https://github.com/maemo-leste and a current list of all the packages in Jenkins can be found here:
https://github.com/maemo-leste/jenkins-integration/blob/master/config.py
Every repository has a branch for each release, for example:
# maemo/ascii - main branch for Devuan Ascii target
# maemo/ascii-devel - main branch for Devuan Ascii, but possibly with unstable version
# maemo/beowulf - main branch for Devuan Beowulf version of the package
See [[Development/Branches]] for more information on the usual branches flow.
= Maemo Leste Extras =
If you wish to maintain your own package in Maemo Leste, you can apply a package at https://github.com/maemo-leste-extras/bugtracker
Have a look at the README in that repository and open a ticket.
20459118d6c8d672a834d4090969fd2b1806e8fc
665
664
2020-03-04T04:01:58Z
Spinal
13
/* The git tag */ Package epoch should be omitted too
wikitext
text/x-wiki
= Maintenance workflow =
Each package in Maemo Leste uses a specific git-based workflow which makes it easy to track history and maintain in an easy way.
Taking the https://github.com/maemo-leste/libcal/ package as an example - a valid repository contains at least two git branches:
# master
# maemo/ascii
Ideally, the branches should have no difference, but sometimes this may vary.
Your git repository should contain your code, and a '''debian''' directory - which contains the debian package build logic.
The <i>compat</i> level of the package should be no less than '''9''' and preferably it should use '''debhelper'''.
Once you have your package ready and it builds locally on your Maemo Leste VM/device, there are just a couple more things to
do to make it ready for building on Jenkins:
== The git tag ==
In '''debian/changelog''' you should have your package version. It is very important to have a git tag that reflects this version
so Jenkins and jenkins-debian-glue can figure out which revision to build.
Keep in mind that the git tag should '''only''' contain the upstream version and no package revisions or epochs, for example if we have:
<code>libcal (0.3-2) unstable; urgency=medium</code>
Our git tag would be <i>0.3</i>, and '''not''' <i>0.3-1</i>
Once tagged, push the tag to git origin.
== gbp.conf ==
Your '''debian''' directory should contain a file called '''gbp.conf''' with the following contents:
<code>
[DEFAULT]
upstream-tag=%(version)s
</code>
Once all this is in place, make sure that you have a '''maemo/$codename''' branch containing all this ready and pushed.
= How you can build packages =
Building a packages is easier than one might think, it requires roughly the following steps:
#. Access to a Devuan/Debian system (you can use a [[Virtual_Machine|VM running Maemo Leste]] or a [[:Category:Device|Device running Maemo Leste]].
#. Source code of a package, obtain either via '''git''' or '''apt source <packagename>'''
#. Install build dependencies (run from source directory): '''sudo apt-get build-dep .'''
#. Build a package using '''dpkg-buildpackage -uc -b'''
You can now install the package you have just built with '''dpkg -i somename.deb'''
Also see: https://wiki.debian.org/HowToPackageForDebian
== Submitting changes ==
If you make changes to a package, please submit a pull request for the repository of that package, likely: https://github.com/maemo-leste/PACKAGENAME
For now, we will take care of updating tags and branches.
= How packages end up in the repository =
There are currently two repositories:
* The main repository: https://maedevu.maemo.org/leste
* The extras repository: https://maedevu.maemo.org/extras
The packages in the extras repository are not core, but useful applications nonetheless.
The codenames and an /etc/apt/sources.list file entry would look like the following:
<code>
deb https://maedevu.maemo.org/leste ascii main contrib non-free
deb https://maedevu.maemo.org/extras ascii main contrib non-free
</code>
Packages in this repository get build by Jenkins, to which a select group of people has access. (Parazyd, Wizzup, Spinal84)
== How packages are built using Jenkins ==
Read only access to the http frontend: https://phoenix.maemo.org/ (write-access can be granted)
All packages are hosted on https://github.com/maemo-leste and a current list of all the packages in Jenkins can be found here:
https://github.com/maemo-leste/jenkins-integration/blob/master/config.py
Every repository has a branch for each release, for example:
# maemo/ascii - main branch for Devuan Ascii target
# maemo/ascii-devel - main branch for Devuan Ascii, but possibly with unstable version
# maemo/beowulf - main branch for Devuan Beowulf version of the package
See [[Development/Branches]] for more information on the usual branches flow.
= Maemo Leste Extras =
If you wish to maintain your own package in Maemo Leste, you can apply a package at https://github.com/maemo-leste-extras/bugtracker
Have a look at the README in that repository and open a ticket.
a5219efe10f929077d8c16a46f960f0669df94c6
666
665
2020-03-04T04:02:34Z
Spinal
13
/* The git tag */ Minor fix
wikitext
text/x-wiki
= Maintenance workflow =
Each package in Maemo Leste uses a specific git-based workflow which makes it easy to track history and maintain in an easy way.
Taking the https://github.com/maemo-leste/libcal/ package as an example - a valid repository contains at least two git branches:
# master
# maemo/ascii
Ideally, the branches should have no difference, but sometimes this may vary.
Your git repository should contain your code, and a '''debian''' directory - which contains the debian package build logic.
The <i>compat</i> level of the package should be no less than '''9''' and preferably it should use '''debhelper'''.
Once you have your package ready and it builds locally on your Maemo Leste VM/device, there are just a couple more things to
do to make it ready for building on Jenkins:
== The git tag ==
In '''debian/changelog''' you should have your package version. It is very important to have a git tag that reflects this version
so Jenkins and jenkins-debian-glue can figure out which revision to build.
Keep in mind that the git tag should '''only''' contain the upstream version and no package revisions or epochs, for example if we have:
<code>libcal (0.3-2) unstable; urgency=medium</code>
Our git tag would be <i>0.3</i>, and '''not''' <i>0.3-2</i>
Once tagged, push the tag to git origin.
== gbp.conf ==
Your '''debian''' directory should contain a file called '''gbp.conf''' with the following contents:
<code>
[DEFAULT]
upstream-tag=%(version)s
</code>
Once all this is in place, make sure that you have a '''maemo/$codename''' branch containing all this ready and pushed.
= How you can build packages =
Building a packages is easier than one might think, it requires roughly the following steps:
#. Access to a Devuan/Debian system (you can use a [[Virtual_Machine|VM running Maemo Leste]] or a [[:Category:Device|Device running Maemo Leste]].
#. Source code of a package, obtain either via '''git''' or '''apt source <packagename>'''
#. Install build dependencies (run from source directory): '''sudo apt-get build-dep .'''
#. Build a package using '''dpkg-buildpackage -uc -b'''
You can now install the package you have just built with '''dpkg -i somename.deb'''
Also see: https://wiki.debian.org/HowToPackageForDebian
== Submitting changes ==
If you make changes to a package, please submit a pull request for the repository of that package, likely: https://github.com/maemo-leste/PACKAGENAME
For now, we will take care of updating tags and branches.
= How packages end up in the repository =
There are currently two repositories:
* The main repository: https://maedevu.maemo.org/leste
* The extras repository: https://maedevu.maemo.org/extras
The packages in the extras repository are not core, but useful applications nonetheless.
The codenames and an /etc/apt/sources.list file entry would look like the following:
<code>
deb https://maedevu.maemo.org/leste ascii main contrib non-free
deb https://maedevu.maemo.org/extras ascii main contrib non-free
</code>
Packages in this repository get build by Jenkins, to which a select group of people has access. (Parazyd, Wizzup, Spinal84)
== How packages are built using Jenkins ==
Read only access to the http frontend: https://phoenix.maemo.org/ (write-access can be granted)
All packages are hosted on https://github.com/maemo-leste and a current list of all the packages in Jenkins can be found here:
https://github.com/maemo-leste/jenkins-integration/blob/master/config.py
Every repository has a branch for each release, for example:
# maemo/ascii - main branch for Devuan Ascii target
# maemo/ascii-devel - main branch for Devuan Ascii, but possibly with unstable version
# maemo/beowulf - main branch for Devuan Beowulf version of the package
See [[Development/Branches]] for more information on the usual branches flow.
= Maemo Leste Extras =
If you wish to maintain your own package in Maemo Leste, you can apply a package at https://github.com/maemo-leste-extras/bugtracker
Have a look at the README in that repository and open a ticket.
f859018092f5360f293028b0587846bf266b86a6
667
666
2020-03-04T04:08:42Z
Spinal
13
/* How packages are built using Jenkins */ Fix maemo/ascii-devel branch description
wikitext
text/x-wiki
= Maintenance workflow =
Each package in Maemo Leste uses a specific git-based workflow which makes it easy to track history and maintain in an easy way.
Taking the https://github.com/maemo-leste/libcal/ package as an example - a valid repository contains at least two git branches:
# master
# maemo/ascii
Ideally, the branches should have no difference, but sometimes this may vary.
Your git repository should contain your code, and a '''debian''' directory - which contains the debian package build logic.
The <i>compat</i> level of the package should be no less than '''9''' and preferably it should use '''debhelper'''.
Once you have your package ready and it builds locally on your Maemo Leste VM/device, there are just a couple more things to
do to make it ready for building on Jenkins:
== The git tag ==
In '''debian/changelog''' you should have your package version. It is very important to have a git tag that reflects this version
so Jenkins and jenkins-debian-glue can figure out which revision to build.
Keep in mind that the git tag should '''only''' contain the upstream version and no package revisions or epochs, for example if we have:
<code>libcal (0.3-2) unstable; urgency=medium</code>
Our git tag would be <i>0.3</i>, and '''not''' <i>0.3-2</i>
Once tagged, push the tag to git origin.
== gbp.conf ==
Your '''debian''' directory should contain a file called '''gbp.conf''' with the following contents:
<code>
[DEFAULT]
upstream-tag=%(version)s
</code>
Once all this is in place, make sure that you have a '''maemo/$codename''' branch containing all this ready and pushed.
= How you can build packages =
Building a packages is easier than one might think, it requires roughly the following steps:
#. Access to a Devuan/Debian system (you can use a [[Virtual_Machine|VM running Maemo Leste]] or a [[:Category:Device|Device running Maemo Leste]].
#. Source code of a package, obtain either via '''git''' or '''apt source <packagename>'''
#. Install build dependencies (run from source directory): '''sudo apt-get build-dep .'''
#. Build a package using '''dpkg-buildpackage -uc -b'''
You can now install the package you have just built with '''dpkg -i somename.deb'''
Also see: https://wiki.debian.org/HowToPackageForDebian
== Submitting changes ==
If you make changes to a package, please submit a pull request for the repository of that package, likely: https://github.com/maemo-leste/PACKAGENAME
For now, we will take care of updating tags and branches.
= How packages end up in the repository =
There are currently two repositories:
* The main repository: https://maedevu.maemo.org/leste
* The extras repository: https://maedevu.maemo.org/extras
The packages in the extras repository are not core, but useful applications nonetheless.
The codenames and an /etc/apt/sources.list file entry would look like the following:
<code>
deb https://maedevu.maemo.org/leste ascii main contrib non-free
deb https://maedevu.maemo.org/extras ascii main contrib non-free
</code>
Packages in this repository get build by Jenkins, to which a select group of people has access. (Parazyd, Wizzup, Spinal84)
== How packages are built using Jenkins ==
Read only access to the http frontend: https://phoenix.maemo.org/ (write-access can be granted)
All packages are hosted on https://github.com/maemo-leste and a current list of all the packages in Jenkins can be found here:
https://github.com/maemo-leste/jenkins-integration/blob/master/config.py
Every repository has a branch for each release, for example:
# maemo/ascii - main branch for Devuan Ascii target
# maemo/ascii-devel - optional branch for Devuan Ascii with unstable/testing version
# maemo/beowulf - main branch for Devuan Beowulf version of the package
See [[Development/Branches]] for more information on the usual branches flow.
= Maemo Leste Extras =
If you wish to maintain your own package in Maemo Leste, you can apply a package at https://github.com/maemo-leste-extras/bugtracker
Have a look at the README in that repository and open a ticket.
c0524fcf649ff7b19a70314d853ea5324be33033
PinePhone
0
93
668
644
2020-03-04T04:24:52Z
Buffer
35
/* Installation */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
The first Pinephone (braveheart) phone
== Notes ==
''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] '''
''' What you can do with the 20200223 image:'''
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* (With not yet finished userspace, terminal only) connect to 2G/3G/4G data connections
''' TODO mention/link to:'''
* USB peripheral
* Develop for Maemo Leste and work on applications that interface with modems
* Make it work on latest pine64 kernel
''' Note that: '''
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!)
* Many "games" packages in the Application Manager don't work well yet.
* For some reason the X cursor is still shows (usually it's hidden)
*
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A ||
|-
| Bluetooth || ? ||
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || N/A || !
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || lima (!)
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, not enabled by default, community is quite far along, needs to work package their work
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Should work on the modem
|}
== Installation ==
Unlike most phones, it's pretty simple.
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to.
Then insert SD card, replace the back cover, and turn it on.
[[Category:Device]]
5e07c4d40791fd05e1d2e4679304d112f1ab9ca0
669
668
2020-03-04T04:36:32Z
Buffer
35
/* Installation */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
The first Pinephone (braveheart) phone
== Notes ==
''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] '''
''' What you can do with the 20200223 image:'''
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* (With not yet finished userspace, terminal only) connect to 2G/3G/4G data connections
''' TODO mention/link to:'''
* USB peripheral
* Develop for Maemo Leste and work on applications that interface with modems
* Make it work on latest pine64 kernel
''' Note that: '''
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!)
* Many "games" packages in the Application Manager don't work well yet.
* For some reason the X cursor is still shows (usually it's hidden)
*
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A ||
|-
| Bluetooth || ? ||
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || N/A || !
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || lima (!)
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, not enabled by default, community is quite far along, needs to work package their work
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Should work on the modem
|}
== Installation ==
Unlike most phones, it's pretty simple.
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to.
How to dd to the SD card:
In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.
dd bs=4M if=2020-02-13-raspbian-buster.img of=/dev/sdX conv=fsync
Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo.
Then insert SD card, replace the back cover, and turn it on.
[[Category:Device]]
db208f895c5e135db0cba55840b40aa301bb35f5
670
669
2020-03-04T04:46:18Z
Buffer
35
/* Installation */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
The first Pinephone (braveheart) phone
== Notes ==
''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] '''
''' What you can do with the 20200223 image:'''
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* (With not yet finished userspace, terminal only) connect to 2G/3G/4G data connections
''' TODO mention/link to:'''
* USB peripheral
* Develop for Maemo Leste and work on applications that interface with modems
* Make it work on latest pine64 kernel
''' Note that: '''
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!)
* Many "games" packages in the Application Manager don't work well yet.
* For some reason the X cursor is still shows (usually it's hidden)
*
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A ||
|-
| Bluetooth || ? ||
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || N/A || !
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || lima (!)
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, not enabled by default, community is quite far along, needs to work package their work
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Should work on the modem
|}
== Installation ==
Unlike most phones, it's pretty simple.
Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity:
cat /path/to/image/maemo-leste-*-arm64-pinephone-*.img.sha
sha256sum /path/to/image/maemo-leste-*-arm64-pinephone-*.img.*z
Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help.
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to.
How to dd to the SD card:
In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.
dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img.*z of=/dev/sdX conv=fsync
Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo.
Then insert SD card, replace the back cover, and turn it on.
[[Category:Device]]
95a2918bddcde4dc71685afd9121ac613abc57a2
671
670
2020-03-04T04:59:04Z
Buffer
35
/* Installation */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
The first Pinephone (braveheart) phone
== Notes ==
''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] '''
''' What you can do with the 20200223 image:'''
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* (With not yet finished userspace, terminal only) connect to 2G/3G/4G data connections
''' TODO mention/link to:'''
* USB peripheral
* Develop for Maemo Leste and work on applications that interface with modems
* Make it work on latest pine64 kernel
''' Note that: '''
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!)
* Many "games" packages in the Application Manager don't work well yet.
* For some reason the X cursor is still shows (usually it's hidden)
*
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A ||
|-
| Bluetooth || ? ||
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || N/A || !
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || lima (!)
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, not enabled by default, community is quite far along, needs to work package their work
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Should work on the modem
|}
== Installation ==
Unlike most phones, it's pretty simple.
Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity:
cat /path/to/image/maemo-leste-*-arm64-pinephone-*.img.sha
sha256sum /path/to/image/maemo-leste-*-arm64-pinephone-*.img.*z
Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help.
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to.
How to dd to the SD card:
In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion.
dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img.*z of=/dev/sdX conv=fsync
Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo.
Then insert SD card, replace the back cover, and turn it on.
[[Category:Device]]
45abc20665bd97578ece52408e657bf15bd11bbb
672
671
2020-03-04T05:00:06Z
Buffer
35
/* Installation */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
The first Pinephone (braveheart) phone
== Notes ==
''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] '''
''' What you can do with the 20200223 image:'''
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* (With not yet finished userspace, terminal only) connect to 2G/3G/4G data connections
''' TODO mention/link to:'''
* USB peripheral
* Develop for Maemo Leste and work on applications that interface with modems
* Make it work on latest pine64 kernel
''' Note that: '''
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!)
* Many "games" packages in the Application Manager don't work well yet.
* For some reason the X cursor is still shows (usually it's hidden)
*
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A ||
|-
| Bluetooth || ? ||
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || N/A || !
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || lima (!)
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, not enabled by default, community is quite far along, needs to work package their work
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Should work on the modem
|}
== Installation ==
Unlike most phones, it's pretty simple.
Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity:
$ cat maemo-leste-*-arm64-pinephone-*.img.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.*z
Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help.
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to.
How to dd to the SD card:
In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion.
dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img.*z of=/dev/sdX conv=fsync
Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo.
Then insert SD card, replace the back cover, and turn it on.
[[Category:Device]]
a5776a051a50df71053b3b8f5e9a8eec63508675
673
672
2020-03-04T05:04:48Z
Buffer
35
/* Installation */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
The first Pinephone (braveheart) phone
== Notes ==
''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] '''
''' What you can do with the 20200223 image:'''
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* (With not yet finished userspace, terminal only) connect to 2G/3G/4G data connections
''' TODO mention/link to:'''
* USB peripheral
* Develop for Maemo Leste and work on applications that interface with modems
* Make it work on latest pine64 kernel
''' Note that: '''
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!)
* Many "games" packages in the Application Manager don't work well yet.
* For some reason the X cursor is still shows (usually it's hidden)
*
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A ||
|-
| Bluetooth || ? ||
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || N/A || !
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || lima (!)
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, not enabled by default, community is quite far along, needs to work package their work
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Should work on the modem
|}
== Installation ==
Unlike most phones, it's pretty simple.
Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity:
$ cat maemo-leste-*-arm64-pinephone-*.img.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
or
$ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz
Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help.
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to.
How to dd to the SD card:
In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion.
dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img.*z of=/dev/sdX conv=fsync
Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo.
Then insert SD card, replace the back cover, and turn it on.
[[Category:Device]]
6e837ea3f1d56378140a6770c0bdd4940e6974c7
674
673
2020-03-04T05:05:10Z
Buffer
35
/* Installation */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
The first Pinephone (braveheart) phone
== Notes ==
''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] '''
''' What you can do with the 20200223 image:'''
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* (With not yet finished userspace, terminal only) connect to 2G/3G/4G data connections
''' TODO mention/link to:'''
* USB peripheral
* Develop for Maemo Leste and work on applications that interface with modems
* Make it work on latest pine64 kernel
''' Note that: '''
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!)
* Many "games" packages in the Application Manager don't work well yet.
* For some reason the X cursor is still shows (usually it's hidden)
*
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A ||
|-
| Bluetooth || ? ||
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || N/A || !
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || lima (!)
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, not enabled by default, community is quite far along, needs to work package their work
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Should work on the modem
|}
== Installation ==
Unlike most phones, it's pretty simple.
Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity:
$ cat maemo-leste-*-arm64-pinephone-*.img.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
or
$ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz
Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help.
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to.
How to dd to the SD card:
In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion.
$ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img.*z of=/dev/sdX conv=fsync
Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo.
Then insert SD card, replace the back cover, and turn it on.
[[Category:Device]]
8d3bae33e4666481aaaea1cca9d17bda08bd7eac
675
674
2020-03-04T05:17:01Z
Buffer
35
/* Installation */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
The first Pinephone (braveheart) phone
== Notes ==
''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] '''
''' What you can do with the 20200223 image:'''
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* (With not yet finished userspace, terminal only) connect to 2G/3G/4G data connections
''' TODO mention/link to:'''
* USB peripheral
* Develop for Maemo Leste and work on applications that interface with modems
* Make it work on latest pine64 kernel
''' Note that: '''
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!)
* Many "games" packages in the Application Manager don't work well yet.
* For some reason the X cursor is still shows (usually it's hidden)
*
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A ||
|-
| Bluetooth || ? ||
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || N/A || !
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || lima (!)
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, not enabled by default, community is quite far along, needs to work package their work
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Should work on the modem
|}
== Installation ==
(Work in Progress)
Unlike most phones, it's pretty simple.
Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity:
$ cat maemo-leste-*-arm64-pinephone-*.img.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
or
$ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz
Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help.
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to.
How to dd to the SD card:
In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion.
$ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img.*z of=/dev/sdX conv=fsync
Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo.
Then insert SD card, replace the back cover, and turn it on.
These steps should work in theory, but at the moment the image is unbootable.
[[Category:Device]]
664d979f8a773b59dc697e6c89737497d00274ef
676
675
2020-03-04T05:41:23Z
Buffer
35
/* Installation */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
The first Pinephone (braveheart) phone
== Notes ==
''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] '''
''' What you can do with the 20200223 image:'''
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* (With not yet finished userspace, terminal only) connect to 2G/3G/4G data connections
''' TODO mention/link to:'''
* USB peripheral
* Develop for Maemo Leste and work on applications that interface with modems
* Make it work on latest pine64 kernel
''' Note that: '''
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!)
* Many "games" packages in the Application Manager don't work well yet.
* For some reason the X cursor is still shows (usually it's hidden)
*
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A ||
|-
| Bluetooth || ? ||
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || N/A || !
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || lima (!)
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, not enabled by default, community is quite far along, needs to work package their work
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Should work on the modem
|}
== Installation ==
(Work in Progress)
Currently:
* .img.xz does not match .img.sha
* working out how to install .tar.gz
Unlike most phones, it's pretty simple.
Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity:
$ cat maemo-leste-*-arm64-pinephone-*.img.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
or?
$ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz
or?
$ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card
$ cd /path/to/image/
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz
$ ???
Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help.
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to.
How to dd to the SD card:
In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion.
$ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img.*z of=/dev/sdX conv=fsync
Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo.
Then insert SD card, replace the back cover, and turn it on.
These steps should work in theory, but at the moment the image is unbootable.
[[Category:Device]]
39abaa888330584743b61cb79a46f44a918af206
677
676
2020-03-04T05:47:54Z
Buffer
35
/* Installation */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
The first Pinephone (braveheart) phone
== Notes ==
''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] '''
''' What you can do with the 20200223 image:'''
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* (With not yet finished userspace, terminal only) connect to 2G/3G/4G data connections
''' TODO mention/link to:'''
* USB peripheral
* Develop for Maemo Leste and work on applications that interface with modems
* Make it work on latest pine64 kernel
''' Note that: '''
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!)
* Many "games" packages in the Application Manager don't work well yet.
* For some reason the X cursor is still shows (usually it's hidden)
*
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A ||
|-
| Bluetooth || ? ||
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || N/A || !
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || lima (!)
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, not enabled by default, community is quite far along, needs to work package their work
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Should work on the modem
|}
== Installation ==
(Work in Progress)
Currently:
* .img.xz does not match .img.sha
* working out how to install .tar.gz
Unlike most phones, it's pretty simple.
Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity:
$ cat maemo-leste-*-arm64-pinephone-*.img.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
or
$ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card
$ cd /path/to/image/
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz
Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help.
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to.
How to dd to the SD card:
In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion.
$ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img.*z of=/dev/sdX conv=fsync
Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo.
Then insert SD card, replace the back cover, and turn it on.
These steps should work in theory, but at the moment the image is unbootable.
[[Category:Device]]
2df4ae31b4359892cd311c2e41577569657db8c1
678
677
2020-03-04T05:53:22Z
Buffer
35
/* Installation */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
The first Pinephone (braveheart) phone
== Notes ==
''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] '''
''' What you can do with the 20200223 image:'''
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* (With not yet finished userspace, terminal only) connect to 2G/3G/4G data connections
''' TODO mention/link to:'''
* USB peripheral
* Develop for Maemo Leste and work on applications that interface with modems
* Make it work on latest pine64 kernel
''' Note that: '''
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!)
* Many "games" packages in the Application Manager don't work well yet.
* For some reason the X cursor is still shows (usually it's hidden)
*
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A ||
|-
| Bluetooth || ? ||
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || N/A || !
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || lima (!)
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, not enabled by default, community is quite far along, needs to work package their work
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Should work on the modem
|}
== Installation ==
(Work in Progress)
Currently:
* .img.xz does not match .img.sha
* working out how to install .tar.gz
Unlike most phones, it's pretty simple.
Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity:
$ cat maemo-leste-*-arm64-pinephone-*.img.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
or
$ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz
Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help.
===if you downloaded the .img.xz===
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to.
===How to dd to the SD card:===
In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion.
$ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img.*z of=/dev/sdX conv=fsync
Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo.
===if you downloaded the .tar.gz===
This might work?
$ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card
$ cd /path/to/image/
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz
Then insert SD card, replace the back cover, and turn it on.
These steps should work in theory, but at the moment the image is unbootable.
[[Category:Device]]
44fe38aa8fb6f27e4be88907162f13c1ffae13a5
679
678
2020-03-04T05:53:45Z
Buffer
35
/* How to dd to the SD card: */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
The first Pinephone (braveheart) phone
== Notes ==
''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] '''
''' What you can do with the 20200223 image:'''
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* (With not yet finished userspace, terminal only) connect to 2G/3G/4G data connections
''' TODO mention/link to:'''
* USB peripheral
* Develop for Maemo Leste and work on applications that interface with modems
* Make it work on latest pine64 kernel
''' Note that: '''
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!)
* Many "games" packages in the Application Manager don't work well yet.
* For some reason the X cursor is still shows (usually it's hidden)
*
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A ||
|-
| Bluetooth || ? ||
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || N/A || !
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || lima (!)
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, not enabled by default, community is quite far along, needs to work package their work
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Should work on the modem
|}
== Installation ==
(Work in Progress)
Currently:
* .img.xz does not match .img.sha
* working out how to install .tar.gz
Unlike most phones, it's pretty simple.
Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity:
$ cat maemo-leste-*-arm64-pinephone-*.img.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
or
$ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz
Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help.
===if you downloaded the .img.xz===
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to.
====How to dd to the SD card:====
In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion.
$ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img.*z of=/dev/sdX conv=fsync
Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo.
===if you downloaded the .tar.gz===
This might work?
$ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card
$ cd /path/to/image/
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz
Then insert SD card, replace the back cover, and turn it on.
These steps should work in theory, but at the moment the image is unbootable.
[[Category:Device]]
2112bc9c9966a5da216a65505e3334a8362befde
680
679
2020-03-04T05:54:07Z
Buffer
35
/* How to dd to the SD card: */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
The first Pinephone (braveheart) phone
== Notes ==
''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] '''
''' What you can do with the 20200223 image:'''
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* (With not yet finished userspace, terminal only) connect to 2G/3G/4G data connections
''' TODO mention/link to:'''
* USB peripheral
* Develop for Maemo Leste and work on applications that interface with modems
* Make it work on latest pine64 kernel
''' Note that: '''
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!)
* Many "games" packages in the Application Manager don't work well yet.
* For some reason the X cursor is still shows (usually it's hidden)
*
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A ||
|-
| Bluetooth || ? ||
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || N/A || !
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || lima (!)
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, not enabled by default, community is quite far along, needs to work package their work
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Should work on the modem
|}
== Installation ==
(Work in Progress)
Currently:
* .img.xz does not match .img.sha
* working out how to install .tar.gz
Unlike most phones, it's pretty simple.
Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity:
$ cat maemo-leste-*-arm64-pinephone-*.img.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
or
$ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz
Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help.
===if you downloaded the .img.xz===
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to.
====How to dd to the SD card:====
In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion.
$ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img.*z of=/dev/sdX conv=fsync
Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo.
===if you downloaded the .tar.gz===
This might work?
$ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card
$ cd /path/to/image/
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz
Then insert SD card, replace the back cover, and turn it on.
These steps should work in theory, but at the moment the image is unbootable.
[[Category:Device]]
8b083bf87ff1e3f2865ba2301ebe140fa5ccbebc
681
680
2020-03-04T05:54:28Z
Buffer
35
/* if you downloaded the .img.xz */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
The first Pinephone (braveheart) phone
== Notes ==
''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] '''
''' What you can do with the 20200223 image:'''
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* (With not yet finished userspace, terminal only) connect to 2G/3G/4G data connections
''' TODO mention/link to:'''
* USB peripheral
* Develop for Maemo Leste and work on applications that interface with modems
* Make it work on latest pine64 kernel
''' Note that: '''
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!)
* Many "games" packages in the Application Manager don't work well yet.
* For some reason the X cursor is still shows (usually it's hidden)
*
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A ||
|-
| Bluetooth || ? ||
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || N/A || !
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || lima (!)
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, not enabled by default, community is quite far along, needs to work package their work
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Should work on the modem
|}
== Installation ==
(Work in Progress)
Currently:
* .img.xz does not match .img.sha
* working out how to install .tar.gz
Unlike most phones, it's pretty simple.
Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity:
$ cat maemo-leste-*-arm64-pinephone-*.img.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
or
$ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz
Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help.
===if you downloaded the .img.xz===
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to.
=====How to dd to the SD card:=====
In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion.
$ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img.*z of=/dev/sdX conv=fsync
Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo.
===if you downloaded the .tar.gz===
This might work?
$ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card
$ cd /path/to/image/
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz
Then insert SD card, replace the back cover, and turn it on.
These steps should work in theory, but at the moment the image is unbootable.
[[Category:Device]]
d22db6b8c357dc676c75342855a0057baaf8944a
682
681
2020-03-04T06:08:24Z
Buffer
35
/* if you downloaded the .img.xz */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
The first Pinephone (braveheart) phone
== Notes ==
''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] '''
''' What you can do with the 20200223 image:'''
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* (With not yet finished userspace, terminal only) connect to 2G/3G/4G data connections
''' TODO mention/link to:'''
* USB peripheral
* Develop for Maemo Leste and work on applications that interface with modems
* Make it work on latest pine64 kernel
''' Note that: '''
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!)
* Many "games" packages in the Application Manager don't work well yet.
* For some reason the X cursor is still shows (usually it's hidden)
*
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A ||
|-
| Bluetooth || ? ||
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || N/A || !
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || lima (!)
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, not enabled by default, community is quite far along, needs to work package their work
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Should work on the modem
|}
== Installation ==
(Work in Progress)
Currently:
* .img.xz does not match .img.sha
* working out how to install .tar.gz
Unlike most phones, it's pretty simple.
Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity:
$ cat maemo-leste-*-arm64-pinephone-*.img.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
or
$ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz
Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help.
===if you downloaded the .img.xz===
extract the image:
$ cp maemo-leste-*-arm64-pinephone-*.img.xz /path/to/sd-card
$ cd /path/to/sd-card
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.img.xz
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to.
=====How to dd to the SD card:=====
In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion.
$ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img.xz of=/dev/sdX conv=fsync
Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo.
===if you downloaded the .tar.gz===
This might work?
$ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card
$ cd /path/to/image/
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz
Then insert SD card, replace the back cover, and turn it on.
These steps should work in theory, but at the moment the image is unbootable.
[[Category:Device]]
eb9ebdda713b156d75044d9af396254c9bcd629e
683
682
2020-03-04T06:08:48Z
Buffer
35
/* How to dd to the SD card: */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
The first Pinephone (braveheart) phone
== Notes ==
''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] '''
''' What you can do with the 20200223 image:'''
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* (With not yet finished userspace, terminal only) connect to 2G/3G/4G data connections
''' TODO mention/link to:'''
* USB peripheral
* Develop for Maemo Leste and work on applications that interface with modems
* Make it work on latest pine64 kernel
''' Note that: '''
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!)
* Many "games" packages in the Application Manager don't work well yet.
* For some reason the X cursor is still shows (usually it's hidden)
*
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A ||
|-
| Bluetooth || ? ||
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || N/A || !
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || lima (!)
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, not enabled by default, community is quite far along, needs to work package their work
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Should work on the modem
|}
== Installation ==
(Work in Progress)
Currently:
* .img.xz does not match .img.sha
* working out how to install .tar.gz
Unlike most phones, it's pretty simple.
Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity:
$ cat maemo-leste-*-arm64-pinephone-*.img.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
or
$ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz
Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help.
===if you downloaded the .img.xz===
extract the image:
$ cp maemo-leste-*-arm64-pinephone-*.img.xz /path/to/sd-card
$ cd /path/to/sd-card
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.img.xz
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to.
=====How to dd to the SD card:=====
In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion.
$ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img of=/dev/sdX conv=fsync
Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo.
===if you downloaded the .tar.gz===
This might work?
$ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card
$ cd /path/to/image/
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz
Then insert SD card, replace the back cover, and turn it on.
These steps should work in theory, but at the moment the image is unbootable.
[[Category:Device]]
d4b9ed6c7b681532da4c04d8d3da4b2d5a0a5c2e
684
683
2020-03-04T06:10:32Z
Buffer
35
/* Installation */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
The first Pinephone (braveheart) phone
== Notes ==
''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] '''
''' What you can do with the 20200223 image:'''
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* (With not yet finished userspace, terminal only) connect to 2G/3G/4G data connections
''' TODO mention/link to:'''
* USB peripheral
* Develop for Maemo Leste and work on applications that interface with modems
* Make it work on latest pine64 kernel
''' Note that: '''
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!)
* Many "games" packages in the Application Manager don't work well yet.
* For some reason the X cursor is still shows (usually it's hidden)
*
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A ||
|-
| Bluetooth || ? ||
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || N/A || !
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || lima (!)
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, not enabled by default, community is quite far along, needs to work package their work
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Should work on the modem
|}
== Installation ==
(Work in Progress)
Currently:
* .img.xz does not match .img.sha
* working out how to install .tar.gz
Unlike most phones, it's pretty simple.
Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity:
$ cat maemo-leste-*-arm64-pinephone-*.img.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
or
$ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz
Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help.
=== Prepare the SD card ===
Format the SD card as ext4 using any of your preferred tools.
===if you downloaded the .img.xz===
extract the image:
$ cp maemo-leste-*-arm64-pinephone-*.img.xz /path/to/sd-card
$ cd /path/to/sd-card
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.img.xz
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to.
=====How to dd to the SD card:=====
In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion.
$ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img of=/dev/sdX conv=fsync
Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo.
===if you downloaded the .tar.gz===
This might work?
$ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card
$ cd /path/to/image/
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz
Then insert SD card, replace the back cover, and turn it on.
These steps should work in theory, but at the moment the image is unbootable.
[[Category:Device]]
f7f393963c9f5b59baba6be49e2fa04994948493
685
684
2020-03-04T06:11:01Z
Buffer
35
/* How to dd to the SD card: */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
The first Pinephone (braveheart) phone
== Notes ==
''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] '''
''' What you can do with the 20200223 image:'''
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* (With not yet finished userspace, terminal only) connect to 2G/3G/4G data connections
''' TODO mention/link to:'''
* USB peripheral
* Develop for Maemo Leste and work on applications that interface with modems
* Make it work on latest pine64 kernel
''' Note that: '''
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!)
* Many "games" packages in the Application Manager don't work well yet.
* For some reason the X cursor is still shows (usually it's hidden)
*
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A ||
|-
| Bluetooth || ? ||
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || N/A || !
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || lima (!)
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, not enabled by default, community is quite far along, needs to work package their work
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Should work on the modem
|}
== Installation ==
(Work in Progress)
Currently:
* .img.xz does not match .img.sha
* working out how to install .tar.gz
Unlike most phones, it's pretty simple.
Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity:
$ cat maemo-leste-*-arm64-pinephone-*.img.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
or
$ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz
Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help.
=== Prepare the SD card ===
Format the SD card as ext4 using any of your preferred tools.
===if you downloaded the .img.xz===
extract the image:
$ cp maemo-leste-*-arm64-pinephone-*.img.xz /path/to/sd-card
$ cd /path/to/sd-card
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.img.xz
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to.
In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion.
$ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img of=/dev/sdX conv=fsync
Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo.
===if you downloaded the .tar.gz===
This might work?
$ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card
$ cd /path/to/image/
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz
Then insert SD card, replace the back cover, and turn it on.
These steps should work in theory, but at the moment the image is unbootable.
[[Category:Device]]
1ceabf3786a2ab8933e333c67ea52ed215501e53
Nokia N900
0
48
686
641
2020-03-05T06:59:54Z
Spinal
13
Add "Battery calibration" section
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The original Nokia N900.
== Notes ==
* If your battery is not calibrated, the battery applet will not give you any data. Charge the battery fully, and then let it discharge (almost) completely.
* Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful.
Also see: https://elinux.org/N900
Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.0 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip-5.0.y
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing non-free firmware
|-
| Ethernet || N/A ||
|-
| Bluetooth || Not yet || Driver problems in mainline
|-
| Infrared || Yes || TX only (hardware limitation).
|-
| (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || Yes || Works fast(!)
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters)
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on Bluetooth. [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/staging?id=757c2bf597a8e9f859f8efceda9c5108607fd98d Removed in Linux 5.4-rc1.]
|-
| Accelerometer || Not yet || Available as input device, needs MCE work
|-
| Proximity sensor || Not yet ||
|-
| Vibration Motor || Yes || No integration yet
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || WIP || Works using gps3 and gpsd, needs integration still
|}
== Installation ==
Images: http://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to use/install Fremantle, or want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''.
To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Power Management ==
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't attach the charger.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
[[Category:Device]]
a0e4c27aac3f296d75c800c044658e797e8907fc
Development/Maintainers
0
101
688
2020-03-13T13:53:04Z
Parazyd
1
Initial page stub.
wikitext
text/x-wiki
= Maemo Leste software maintainers =
This page contains a reference to maintainers of the software included in Maemo Leste that can be found on https://github.com/maemo-leste/
f530143e1e27d9bdd7aa50723c616f369a4d1d5c
689
688
2020-03-13T14:12:17Z
Parazyd
1
Initial table of maintainers.
wikitext
text/x-wiki
= Maemo Leste software maintainers =
This page contains a reference to maintainers of the software included in Maemo Leste that can be found on https://github.com/maemo-leste/
{| class="wikitable"
!|Software
!|Maintainer
|-
|[https://github.com/maemo-leste/alarmd alarmd]
|freemangordon
|-
|[https://github.com/maemo-leste/anakin-linux anakin-linux]
|Wizzup
|-
|[https://github.com/maemo-leste/applet-datetime applet-datetime]
|freemangordon
|-
|[https://github.com/maemo-leste/bugtracker bugtracker]
|parazyd
|-
|[https://github.com/maemo-leste/cityinfo cityinfo]
|freemangordon
|-
|[https://github.com/maemo-leste/clipboard-manager clipboard-manager]
|freemangordon
|-
|[https://github.com/maemo-leste/clock clock]
|freemangordon
|-
|[https://github.com/maemo-leste/clockd clockd]
|freemangordon
|-
|[https://github.com/maemo-leste/codelockui codelockui]
|freemangordon
|-
|[https://github.com/maemo-leste/connui-cellular connui-cellular]
|freemangordon
|-
|[https://github.com/maemo-leste/connui-common connui-common]
|freemangordon
|-
|[https://github.com/maemo-leste/connui-internet connui-internet]
|freemangordon
|-
|[https://github.com/maemo-leste/connui-wlan connui-wlan]
|freemangordon
|-
|[https://github.com/maemo-leste/documents documents]
|parazyd
|-
|[https://github.com/maemo-leste/droid4-linux droid4-linux]
|Wizzup
|-
|[https://github.com/maemo-leste/dsme dsme]
|freemangordon
|-
|[https://github.com/maemo-leste/epeg epeg]
|freemangordon
|-
|[https://github.com/maemo-leste/gtk gtk]
|freemangordon
|-
|[https://github.com/maemo-leste/hildon-application-manager hildon-application-manager]
|freemangordon
|-
|[https://github.com/maemo-leste/hildon-application-manager-settings-standard hildon-application-manager-settings-standard]
|parazyd
|-
|[https://github.com/maemo-leste/hildon-connectivity-meta hildon-connectivity-meta]
|parazyd
|-
|[https://github.com/maemo-leste/hildon-control-panel hildon-control-panel]
|freemangordon
|-
|[https://github.com/maemo-leste/hildon-desktop hildon-desktop]
|freemangordon
|-
|[https://github.com/maemo-leste/hildon-games-wrapper hildon-games-wrapper]
|freemangordon
|-
|[https://github.com/maemo-leste/hildon-home hildon-home]
|freemangordon
|-
|[https://github.com/maemo-leste/hildon-im-vkbrenderer3 hildon-im-vkbrenderer3]
|freemangordon
|-
|[https://github.com/maemo-leste/hildon-initscripts hildon-initscripts]
|freemangordon
|-
|[https://github.com/maemo-leste/hildon-input-meta hildon-input-meta]
|freemangordon
|-
|[https://github.com/maemo-leste/hildon-input-method hildon-input-method]
|freemangordon
|-
|[https://github.com/maemo-leste/hildon-input-method-configurator hildon-input-method-configurator]
|freemangordon
|-
|[https://github.com/maemo-leste/hildon-input-method-framework hildon-input-method-framework]
|freemangordon
|-
|[https://github.com/maemo-leste/hildon-input-method-plugins hildon-input-method-plugins]
|freemangordon
|-
|[https://github.com/maemo-leste/hildon-meta hildon-meta]
|parazyd
|-
|[https://github.com/maemo-leste/hildon-notify hildon-notify]
|freemangordon
|-
|[https://github.com/maemo-leste/hildon-plugins-notify-sv hildon-plugins-notify-sv]
|freemangordon
|-
|[https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb]
|freemangordon
|-
|[https://github.com/maemo-leste/hildon-status-menu hildon-status-menu]
|freemangordon
|-
|[https://github.com/maemo-leste/hildon-theme-cacher hildon-theme-cacher]
|freemangordon
|-
|[https://github.com/maemo-leste/hildon-thumbnail hildon-thumbnail]
|freemangordon
|-
|[https://github.com/maemo-leste/hildon-usb-gadgets hildon-usb-gadgets]
|freemangordon
|-
|[https://github.com/maemo-leste/icd2 icd2]
|freemangordon
|-
|[https://github.com/maemo-leste/icd2-osso-ic-dev icd2-osso-ic-dev]
|freemangordon
|-
|[https://github.com/maemo-leste/icd2-settings-default icd2-settings-default]
|freemangordon
|-
|[https://github.com/maemo-leste/image-builder image-builder]
|parazyd
|-
|[https://github.com/maemo-leste/iphbd iphbd]
|freemangordon
|-
|[https://github.com/maemo-leste/jenkins-integration jenkins-integration]
|parazyd, Wizzup
|-
|[https://github.com/maemo-leste/ke-recv ke-recv]
|freemangordon
|-
|[https://github.com/maemo-leste/ke-recv-extra ke-recv-extra]
|freemangordon
|-
|[https://github.com/maemo-leste/libcal libcal]
|freemangordon
|-
|[https://github.com/maemo-leste/libcmtspeechdata libcmtspeechdata]
|freemangordon
|-
|[https://github.com/maemo-leste/libcomapp libcomapp]
|freemangordon
|-
|[https://github.com/maemo-leste/libconbtui libconbtui]
|freemangordon
|-
|[https://github.com/maemo-leste/libconic libconic]
|freemangordon
|-
|[https://github.com/maemo-leste/libdevlock libdevlock]
|freemangordon
|-
|[https://github.com/maemo-leste/libdsme libdsme]
|freemangordon
|-
|[https://github.com/maemo-leste/libglibutil libglibutil]
|freemangordon
|-
|[https://github.com/maemo-leste/libgofono libgofono]
|freemangordon
|-
|[https://github.com/maemo-leste/libhildon libhildon]
|freemangordon
|-
|[https://github.com/maemo-leste/libhildondesktop libhildondesktop]
|freemangordon
|-
|[https://github.com/maemo-leste/libhildonfm libhildonfm]
|freemangordon
|-
|[https://github.com/maemo-leste/libhildonmime libhildonmime]
|freemangordon
|-
|[https://github.com/maemo-leste/libicd-network-dummy libicd-network-dummy]
|freemangordon
|-
|[https://github.com/maemo-leste/libicd-network-ipv4 libicd-network-ipv4]
|freemangordon
|-
|[https://github.com/maemo-leste/libicd-network-ofono libicd-network-ofono]
|freemangordon
|-
|[https://github.com/maemo-leste/libicd-network-usb libicd-network-usb]
|freemangordon
|-
|[https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant]
|freemangordon
|-
|[https://github.com/maemo-leste/libimengines libimengines]
|freemangordon
|-
|[https://github.com/maemo-leste/libimlayouts libimlayouts]
|freemangordon
|-
|[https://github.com/maemo-leste/libmatchbox2 libmatchbox2]
|freemangordon
|-
|[https://github.com/maemo-leste/libofono libofono]
|freemangordon
|-
|[https://github.com/maemo-leste/libosso libosso]
|freemangordon
|-
|[https://github.com/maemo-leste/libplayback libplayback]
|freemangordon
|-
|[https://github.com/maemo-leste/libscconf libscconf]
|freemangordon
|-
|[https://github.com/maemo-leste/libsdl libsdl]
|freemangordon
|-
|[https://github.com/maemo-leste/libusbgx libusbgx]
|Wizzup
|-
|[https://github.com/maemo-leste/lime2-linux lime2-linux]
|Wizzup
|-
|[https://github.com/maemo-leste/maemo-launcher maemo-launcher]
|freemangordon
|-
|[https://github.com/maemo-leste/maemo-leste.github.io maemo-leste.github.io]
|Wizzup
|-
|[https://github.com/maemo-leste/maemo-multimedia-tone-generator maemo-multimedia-tone-generator]
|freemangordon
|-
|[https://github.com/maemo-leste/maemo-security-certman maemo-security-certman]
|freemangordon
|-
|[https://github.com/maemo-leste/maemo-security-certman-applet maemo-security-certman-applet]
|freemangordon
|-
|[https://github.com/maemo-leste/maemo-system-services maemo-system-services]
|freemangordon
|-
|[https://github.com/maemo-leste/mafw mafw]
|freemangordon
|-
|[https://github.com/maemo-leste/mafw-gst-renderer mafw-gst-renderer]
|freemangordon
|-
|[https://github.com/maemo-leste/mafw-iradio-source mafw-iradio-source]
|freemangordon
|-
|[https://github.com/maemo-leste/mafw-shared mafw-shared]
|freemangordon
|-
|[https://github.com/maemo-leste/mafw-test-gui mafw-test-gui]
|freemangordon
|-
|[https://github.com/maemo-leste/mafw-tracker-source mafw-tracker-source]
|freemangordon
|-
|[https://github.com/maemo-leste/mafw-upnp-source mafw-upnp-source]
|freemangordon
|-
|[https://github.com/maemo-leste/mce mce]
|freemangordon
|-
|[https://github.com/maemo-leste/mce-dev mce-dev]
|freemangordon
|-
|[https://github.com/maemo-leste/mesa mesa]
|parazyd
|-
|[https://github.com/maemo-leste/n9xx-linux n9xx-linux]
|Wizzup
|-
|[https://github.com/maemo-leste/n9xx-ti-omap3-sgx n9xx-ti-omap3-sgx]
|freemangordon
|-
|[https://github.com/maemo-leste/n9xx-xf86-video-fbdev-sgx n9xx-xf86-video-fbdev-sgx]
|freemangordon
|-
|[https://github.com/maemo-leste/ofono ofono]
|freemangordon
|-
|[https://github.com/maemo-leste/ofono-d4 ofono-d4]
|freemangordon
|-
|[https://github.com/maemo-leste/osso-abook osso-abook]
|freemangordon
|-
|[https://github.com/maemo-leste/osso-af-settings osso-af-settings]
|freemangordon
|-
|[https://github.com/maemo-leste/osso-af-startup osso-af-startup]
|freemangordon
|-
|[https://github.com/maemo-leste/osso-af-utils osso-af-utils]
|freemangordon
|-
|[https://github.com/maemo-leste/osso-app-killer osso-app-killer]
|freemangordon
|-
|[https://github.com/maemo-leste/osso-applet-devicelock osso-applet-devicelock]
|freemangordon
|-
|[https://github.com/maemo-leste/osso-applet-display osso-applet-display]
|freemangordon
|-
|[https://github.com/maemo-leste/osso-applet-notificationlight osso-applet-notificationlight]
|freemangordon
|-
|[https://github.com/maemo-leste/osso-applet-textinput osso-applet-textinput]
|freemangordon
|-
|[https://github.com/maemo-leste/osso-bookmark-engine osso-bookmark-engine]
|freemangordon
|-
|[https://github.com/maemo-leste/osso-calculator osso-calculator]
|freemangordon
|-
|[https://github.com/maemo-leste/osso-calculator-engine osso-calculator-engine]
|freemangordon
|-
|[https://github.com/maemo-leste/osso-games-startup osso-games-startup]
|freemangordon
|-
|[https://github.com/maemo-leste/osso-icons osso-icons]
|parazyd
|-
|[https://github.com/maemo-leste/osso-pdf-viewer osso-pdf-viewer]
|freemangordon
|-
|[https://github.com/maemo-leste/osso-product-info osso-product-info]
|freemangordon
|-
|[https://github.com/maemo-leste/osso-systemui osso-systemui]
|freemangordon
|-
|[https://github.com/maemo-leste/osso-systemui-alarm osso-systemui-alarm]
|freemangordon
|-
|[https://github.com/maemo-leste/osso-systemui-dbus-dev osso-systemui-dbus-dev]
|freemangordon
|-
|[https://github.com/maemo-leste/osso-systemui-devlock-dev osso-systemui-devlock-dev]
|freemangordon
|-
|[https://github.com/maemo-leste/osso-systemui-modechange osso-systemui-modechange]
|freemangordon
|-
|[https://github.com/maemo-leste/osso-systemui-modechange-dev osso-systemui-modechange-dev]
|freemangordon
|-
|[https://github.com/maemo-leste/osso-systemui-powerkeymenu osso-systemui-powerkeymenu]
|freemangordon
|-
|[https://github.com/maemo-leste/osso-systemui-splashscreen-dev osso-systemui-splashscreen-dev]
|freemangordon
|-
|[https://github.com/maemo-leste/osso-systemui-tklock osso-systemui-tklock]
|freemangordon
|-
|[https://github.com/maemo-leste/osso-xterm osso-xterm]
|freemangordon
|-
|[https://github.com/maemo-leste/pine64-kernel pine64-kernel]
|parazyd, Wizzup
|-
|[https://github.com/maemo-leste/profiled profiled]
|freemangordon
|-
|[https://github.com/maemo-leste/pygtk pygtk]
|freemangordon
|-
|[https://github.com/maemo-leste/pymaemo-svn pymaemo-svn]
|freemangordon
|-
|[https://github.com/maemo-leste/python-hildon python-hildon]
|freemangordon
|-
|[https://github.com/maemo-leste/python-hildondesktop python-hildondesktop]
|freemangordon
|-
|[https://github.com/maemo-leste/python-osso python-osso]
|freemangordon
|-
|[https://github.com/maemo-leste/qtmaemo5 qtmaemo5]
|freemangordon
|-
|[https://github.com/maemo-leste/qtstyleplugins qtstyleplugins]
|freemangordon
|-
|[https://github.com/maemo-leste/rtcom-eventlogger rtcom-eventlogger]
|freemangordon
|-
|[https://github.com/maemo-leste/rtl8723cs rtl8723cs]
|parazyd
|-
|[https://github.com/maemo-leste/sapwood sapwood]
|freemangordon
|-
|[https://github.com/maemo-leste/sdlgles sdlgles]
|freemangordon
|-
|[https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery]
|freemangordon
|-
|[https://github.com/maemo-leste/status-area-orientationlock-applet status-area-orientationlock-applet]
|freemangordon
|-
|[https://github.com/maemo-leste/statusbar-alarm statusbar-alarm]
|freemangordon
|-
|[https://github.com/maemo-leste/statusbar-alarm-dbus-api statusbar-alarm-dbus-api]
|freemangordon
|-
|[https://github.com/maemo-leste/status-menu-applet-profiles status-menu-applet-profiles]
|freemangordon
|-
|[https://github.com/maemo-leste/sysinfod sysinfod]
|freemangordon
|-
|[https://github.com/maemo-leste/ti-omap3-sgx ti-omap3-sgx]
|freemangordon
|-
|[https://github.com/maemo-leste/ukeyboard ukeyboard]
|freemangordon
|-
|[https://github.com/maemo-leste/unicsy_demo unicsy_demo]
|freemangordon
|-
|[https://github.com/maemo-leste/upower upower]
|freemangordon
|-
|[https://github.com/maemo-leste/wl1251-cal wl1251-cal]
|freemangordon
|-
|[https://github.com/maemo-leste/xf86-video-pvrsgx xf86-video-pvrsgx]
|freemangordon
|-
|[https://github.com/maemo-leste/xorg-server xorg-server]
|freemangordon
|-
|[https://github.com/maemo-leste/xserver-xorg-video-fbdev xserver-xorg-video-fbdev]
|freemangordon
|-
|}
1204bbbc7f0ba3fa7e6d7d4cbd71e6af7414c2d7
Motorola Droid 4
0
50
690
628
2020-03-23T17:46:53Z
Wizzup
4
Update for upcoming image
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.6.0-rc5 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Reported to work, no UI yet
|-
| Phone calls || WIP || Reported to work, no UI yet
|-
| Bluetooth || Yes || Needs firmware - see [[#Bluetooth|below]]. See also https://github.com/maemo-leste/bugtracker/issues/290.
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || WIP ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes ||
|-
|Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi)
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.
== Postinstall notes for 20200112 image ==
Current image has some erratas which can be fixed by following the instructions found in this post:
https://github.com/maemo-leste/bugtracker/issues/302#issuecomment-576277674
=== Wifi ===
Requires wpasupplicant and firmware-ti-connectivity from ascii-backports (needs to get added to sources.list)
deb http://pkgmaster.devuan.org/merged ascii-backports main contrib non-free
apt install -t ascii-backports wpasupplicant
apt install -t ascii-backports firmware-ti-connectivity
=== Bluetooth ===
Requires https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts to go in /lib/firmware/ti-connectivity/
$ sha256sum TIInit_10.6.15.bts
85dc6539436319fa1301277c171f9fd65b716279900bc686a76578ab24cc7793 TIInit_10.6.15.bts
Note: some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
=== Sound ===
This needs to be executed to enable the sound:
modprobe snd-soc-cpcap
modprobe snd-soc-motmdm
modprobe snd-soc-audio-graph-card
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
</gallery>
[[Category:Device]]
2c6c02f45b9fcc6f3b76fedb8a59ef67e8c52633
Development/Tasks
0
92
691
617
2020-03-23T20:31:21Z
Wizzup
4
wikitext
text/x-wiki
== Applications ==
This page lists some of the more important open issues for Maemo Leste. We have a complete list here, on github, but it's a bit hard to navigate: https://github.com/maemo-leste/bugtracker/issues
{| class="wikitable"
! Task
! Description
! Task Status
! User(s) working on task
! GH Bug
! URLs
! Notes
|-
| Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || DONE || [[User:ThomasAH]], Spinal84 || https://github.com/maemo-leste/ke-recv/pull/2 ; https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || ke-recv part for slide monitoring is in place, we just need live keyboard-attached monitoring now. https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda). mer-core (sailfish/nemomobile) has keyboard monitoring integrated into mce, so we could also look at (using) that
|-
| Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. <b>Funding is available for this task</b> || WIP/TODO || || https://github.com/maemo-leste/bugtracker/issues/261 || || Some work was done in the past
|-
| Qt5 of theme and hildon widgets || Big task, port hildon widgets and theme from qt4 to qt5. <b>Funding is available for this task</b> || WIP || [[User:freemangordon]] made a start || || https://github.com/maemo-leste/qtstyleplugins/ ||
|-
| Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 ? || *MAYBE* Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || DONE (by staying at clutter 0.8) || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches ||
|-
| libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || TODO || || || ||
|-
| Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || TODO || || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 ||
|-
| Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || DONE || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ ||
|-
| Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || https://github.com/maemo-leste/bugtracker/issues/256 || https://github.com/maemo-leste/connui-cellular ||
|-
| Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || TODO || [[User:Wizzup]], [[User:Sicelo]] || || ||
|-
| Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || WIP || ? || || ||
|-
|"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || WIP || [[User:Parazyd]] || || ||
|-
| Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || WIP || [[User:Wizzup]], tmlind || || || Actually works quite well on the droid4. Let's do the same for Droid4. :)
|-
| osso-abook || We need osso-abook in place for all applications that need contacts (phone ui, sms ui, email ui, more) || WIP || [[User:freemangordon]] || || ||
|-
| hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || DONE || [[User:minicom]], [[User:Wizzup]], [[User:Parazyd]] || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc.
|-
| Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || DONE || || || ||
|-
| Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || WIP? || [[User:freemangordon]] || || ||
|-
| Port all packages for maemo-leste to debhelper 9 or higher || Requires for us to migrate to a newer Debian (Buster) / Devuan (Beowulf) || DONE || [[User:Parazyd]], [[User:Wizzup]], [[User:meridion]], [[User:Spinal84]] || https://github.com/maemo-leste/bugtracker/issues/234 || ||
|-
|}
13f0f650e5cf9b2b0f197ae22ad7c356ef7d0f1f
User:Sicelo
2
86
692
426
2020-03-24T21:50:11Z
Sicelo
5
wikitext
text/x-wiki
[[User:Sicelo/Wiki Tests]]
[[User:Sicelo/Snippets]]
cc8265bf2f914b8535eea969d15f317e2f7d4b05
693
692
2020-03-24T21:50:23Z
Sicelo
5
wikitext
text/x-wiki
[[User:Sicelo/Wiki Tests]]
[[User:Sicelo/Snippets]]
8198d47348eb9d7947619483b55396c930bd9a40
User:Sicelo/Snippets
2
102
694
2020-03-24T21:51:01Z
Sicelo
5
Created page with "Possible N900 USB host mode echo 'force host full-speed' > /sys/kernel/debug/musb-hdrc.0.auto/testmode echo host > /sys/bus/platform/devices/musb-hdrc.0.auto/mode echo 1 > /..."
wikitext
text/x-wiki
Possible N900 USB host mode
echo 'force host full-speed' > /sys/kernel/debug/musb-hdrc.0.auto/testmode
echo host > /sys/bus/platform/devices/musb-hdrc.0.auto/mode
echo 1 > /sys/kernel/debug/musb-hdrc.0.auto/softconnect
echo disconnect > /sys/bus/platform/devices/musb-hdrc.0.auto/musb-hdrc.0.auto/soft_connect
fbafe38e140b311f0f68866e0d6f77a81bbc1b65
695
694
2020-03-24T21:52:48Z
Sicelo
5
wikitext
text/x-wiki
Possible N900 USB host mode
echo 'force host full-speed' > /sys/kernel/debug/musb-hdrc.0.auto/testmode
echo host > /sys/bus/platform/devices/musb-hdrc.0.auto/mode
echo 1 > /sys/kernel/debug/musb-hdrc.0.auto/softconnect
echo disconnect > /sys/bus/platform/devices/musb-hdrc.0.auto/musb-hdrc.0.auto/soft_connect
8ba6b884f356704fff2f3af62cb3ac748dfbff2d
User:Sicelo/Snippets
2
102
696
695
2020-03-24T21:57:58Z
Sicelo
5
wikitext
text/x-wiki
Possible N900 USB host mode
echo 'force host full-speed' > /sys/kernel/debug/musb-hdrc.0.auto/testmode
echo host > /sys/bus/platform/devices/musb-hdrc.0.auto/mode
echo 1 > /sys/kernel/debug/musb-hdrc.0.auto/softconnect
echo disconnect > /sys/bus/platform/devices/musb-hdrc.0.auto/musb-hdrc.0.auto/soft_connect
Force N900 to stop charging while connected to power
echo off > /sys/class/power_supply/bq24150a-0/mode
45bf84c575c3d05a2adde066f68470a26e857158
722
696
2020-04-13T22:28:19Z
Sicelo
5
wikitext
text/x-wiki
Possible N900 USB host mode
echo 'force host full-speed' > /sys/kernel/debug/musb-hdrc.0.auto/testmode
echo host > /sys/bus/platform/devices/musb-hdrc.0.auto/mode
echo 1 > /sys/kernel/debug/musb-hdrc.0.auto/softconnect
echo disconnect > /sys/bus/platform/devices/musb-hdrc.0.auto/musb-hdrc.0.auto/soft_connect
Force N900 to stop charging while connected to power
echo off > /sys/class/power_supply/bq24150a-0/mode
Application wishlist from Wizzup
<pre>
Maybe fun to port:
desktop:
battery-eye (in vm al)
catorise http://maemo.org/downloads/product/Maemo5/catorise/ (evt "Debian" category)
live wallpaper? http://maemo.org/downloads/product/Maemo5/live-wallpaper/
datetoday home widget http://maemo.org/downloads/product/Maemo5/datetoday-home-widget/
personal gprs monitor maemo.org/downloads/product/Maemo5/personal-gprs-mon/
humanity theme http://maemo.org/downloads/product/Maemo5/humanity-theme/
personal ip address http://maemo.org/downloads/product/Maemo5/personal-ip-address/
custom operator name widget http://maemo.org/downloads/product/Maemo5/custom-operator-name-widget/
advanced clock http://maemo.org/downloads/product/Maemo5/advanced-clock-plugin/
app search widget http://maemo.org/downloads/product/Maemo5/app-search-widget/
qtlockscreen (?) and qtlockscreenconfig -- http://maemo.org/downloads/product/Maemo5/qtlockscreenconfig/
DONE http://maemo.org/downloads/product/Maemo5/miku-theme/
education:
dorian http://maemo.org/downloads/product/Maemo5/dorian/
evopedia http://maemo.org/downloads/product/Maemo5/evopedia/
e-book reader http://maemo.org/downloads/product/Maemo5/epubreader/
gtranslate? http://maemo.org/downloads/product/Maemo5/gtranslate/ - gtk/glib/espeak
games
smw - http://maemo.org/downloads/product/Maemo5/smw/
warmux - http://maemo.org/downloads/product/Maemo5/wormux/
battle gweled - http://maemo.org/downloads/product/Maemo5/battlegweled/
drnoksnes (!!!)
freecell4maemo ?
prboom
bullshit bingo http://maemo.org/downloads/product/Maemo5/bullshitbingo/
puzzles http://maemo.org/downloads/product/Maemo5/sgt-puzzles/
rocks n diamond shttp://maemo.org/downloads/product/Maemo5/rocksndiamonds/
uae4all goed laten werken
neverball - http://maemo.org/downloads/product/Maemo5/neverball/
graphics
mypaint (?)
raw viewer? http://maemo.org/downloads/product/Maemo5/mrawviewer/
multimedia
Boel coole/nuttige music players
qspot http://maemo.org/downloads/product/Maemo5/qspot/
recorder http://maemo.org/downloads/product/Maemo5/recorder/
qmidictl http://maemo.org/downloads/product/Maemo5/qmidictl/
maetronome http://maemo.org/downloads/product/Maemo5/maetronome/
location and navigation
modrana
marble? http://maemo.org/downloads/product/Maemo5/marble/
marble maps? http://maemo.org/downloads/product/Maemo5/marble-maps/
maep for sure http://maemo.org/downloads/product/Maemo5/maep/
gps track logger http://maemo.org/downloads/product/Maemo5/gps-data-logger/
OSM2Go - http://maemo.org/downloads/product/Maemo5/osm2go/
interessant http://maemo.org/downloads/product/Maemo5/snuggle/
internet and networking
google voice dialer written in Qt http://maemo.org/downloads/product/Maemo5/qgvdial/
meer google voice http://maemo.org/downloads/product/Maemo5/dialcentral/
twitter clienter http://maemo.org/downloads/product/Maemo5/khweeteur/
zoutube -- http://maemo.org/downloads/product/Maemo5/zoutube/
witter -- twitter client in python http://maemo.org/downloads/product/Maemo5/witter/
vncviewer -- http://maemo.org/downloads/product/Maemo5/vncviewer/
wifi eye http://maemo.org/downloads/product/Maemo5/wifieye/
qnetman -- http://maemo.org/downloads/product/Maemo5/qnetman/
xchat irc http://maemo.org/downloads/product/Maemo5/xchat/
office
xournal http://maemo.org/downloads/product/Maemo5/xournal/
quicknote http://maemo.org/downloads/product/Maemo5/quicknote/
mebook http://maemo.org/downloads/product/Maemo5/mebook/
portabase? http://maemo.org/downloads/product/Maemo5/portabase/
other
--
science
orrery -- http://maemo.org/downloads/product/Maemo5/orrery/
accdisplay http://maemo.org/downloads/product/Maemo5/accdisplay/
system
(lots of themes)
theme-customizer -- http://maemo.org/downloads/product/Maemo5/theme-customizer/
matrix theme -- http://maemo.org/downloads/product/Maemo5/matrix-pr12/
borg sounds -- http://maemo.org/downloads/product/Maemo5/borg-sounds/
okuda theme -- http://maemo.org/downloads/product/Maemo5/hildon-theme-okuda/
cellular modem control buttons -- http://maemo.org/downloads/product/Maemo5/cell-modem-ui/
qtlockscreen -- http://maemo.org/downloads/product/Maemo5/qtlockscreen/
maemeemo theme -- http://maemo.org/downloads/product/Maemo5/maemeemo-theme/
extra translations / languages
</pre>
e966850f8e346291dafa21bdba6c6adbf1b9cdce
728
722
2020-05-07T12:52:37Z
Sicelo
5
wikitext
text/x-wiki
Possible N900 USB host mode
echo 'force host full-speed' > /sys/kernel/debug/musb-hdrc.0.auto/testmode
echo host > /sys/bus/platform/devices/musb-hdrc.0.auto/mode
echo 1 > /sys/kernel/debug/musb-hdrc.0.auto/softconnect
echo disconnect > /sys/bus/platform/devices/musb-hdrc.0.auto/musb-hdrc.0.auto/soft_connect
Force N900 to stop charging while connected to power
echo off > /sys/class/power_supply/bq24150a-0/mode
Application wishlist from Wizzup
<pre>
Maybe fun to port:
desktop:
battery-eye (in vm al)
catorise http://maemo.org/downloads/product/Maemo5/catorise/ (evt "Debian" category)
live wallpaper? http://maemo.org/downloads/product/Maemo5/live-wallpaper/
datetoday home widget http://maemo.org/downloads/product/Maemo5/datetoday-home-widget/
personal gprs monitor maemo.org/downloads/product/Maemo5/personal-gprs-mon/
humanity theme http://maemo.org/downloads/product/Maemo5/humanity-theme/
personal ip address http://maemo.org/downloads/product/Maemo5/personal-ip-address/
custom operator name widget http://maemo.org/downloads/product/Maemo5/custom-operator-name-widget/
advanced clock http://maemo.org/downloads/product/Maemo5/advanced-clock-plugin/
app search widget http://maemo.org/downloads/product/Maemo5/app-search-widget/
qtlockscreen (?) and qtlockscreenconfig -- http://maemo.org/downloads/product/Maemo5/qtlockscreenconfig/
DONE http://maemo.org/downloads/product/Maemo5/miku-theme/
education:
dorian http://maemo.org/downloads/product/Maemo5/dorian/
evopedia http://maemo.org/downloads/product/Maemo5/evopedia/
e-book reader http://maemo.org/downloads/product/Maemo5/epubreader/
gtranslate? http://maemo.org/downloads/product/Maemo5/gtranslate/ - gtk/glib/espeak
games
smw - http://maemo.org/downloads/product/Maemo5/smw/
warmux - http://maemo.org/downloads/product/Maemo5/wormux/
battle gweled - http://maemo.org/downloads/product/Maemo5/battlegweled/
drnoksnes (!!!)
freecell4maemo ?
prboom
bullshit bingo http://maemo.org/downloads/product/Maemo5/bullshitbingo/
puzzles http://maemo.org/downloads/product/Maemo5/sgt-puzzles/
rocks n diamond shttp://maemo.org/downloads/product/Maemo5/rocksndiamonds/
uae4all goed laten werken
neverball - http://maemo.org/downloads/product/Maemo5/neverball/
graphics
mypaint (?)
raw viewer? http://maemo.org/downloads/product/Maemo5/mrawviewer/
multimedia
Boel coole/nuttige music players
qspot http://maemo.org/downloads/product/Maemo5/qspot/
recorder http://maemo.org/downloads/product/Maemo5/recorder/
qmidictl http://maemo.org/downloads/product/Maemo5/qmidictl/
maetronome http://maemo.org/downloads/product/Maemo5/maetronome/
location and navigation
modrana
marble? http://maemo.org/downloads/product/Maemo5/marble/
marble maps? http://maemo.org/downloads/product/Maemo5/marble-maps/
maep for sure http://maemo.org/downloads/product/Maemo5/maep/
gps track logger http://maemo.org/downloads/product/Maemo5/gps-data-logger/
OSM2Go - http://maemo.org/downloads/product/Maemo5/osm2go/
interessant http://maemo.org/downloads/product/Maemo5/snuggle/
internet and networking
google voice dialer written in Qt http://maemo.org/downloads/product/Maemo5/qgvdial/
meer google voice http://maemo.org/downloads/product/Maemo5/dialcentral/
twitter clienter http://maemo.org/downloads/product/Maemo5/khweeteur/
zoutube -- http://maemo.org/downloads/product/Maemo5/zoutube/
witter -- twitter client in python http://maemo.org/downloads/product/Maemo5/witter/
vncviewer -- http://maemo.org/downloads/product/Maemo5/vncviewer/
wifi eye http://maemo.org/downloads/product/Maemo5/wifieye/
qnetman -- http://maemo.org/downloads/product/Maemo5/qnetman/
xchat irc http://maemo.org/downloads/product/Maemo5/xchat/
office
xournal http://maemo.org/downloads/product/Maemo5/xournal/
quicknote http://maemo.org/downloads/product/Maemo5/quicknote/
mebook http://maemo.org/downloads/product/Maemo5/mebook/
portabase? http://maemo.org/downloads/product/Maemo5/portabase/
other
--
science
orrery -- http://maemo.org/downloads/product/Maemo5/orrery/
accdisplay http://maemo.org/downloads/product/Maemo5/accdisplay/
system
(lots of themes)
theme-customizer -- http://maemo.org/downloads/product/Maemo5/theme-customizer/
matrix theme -- http://maemo.org/downloads/product/Maemo5/matrix-pr12/
borg sounds -- http://maemo.org/downloads/product/Maemo5/borg-sounds/
okuda theme -- http://maemo.org/downloads/product/Maemo5/hildon-theme-okuda/
cellular modem control buttons -- http://maemo.org/downloads/product/Maemo5/cell-modem-ui/
qtlockscreen -- http://maemo.org/downloads/product/Maemo5/qtlockscreen/
maemeemo theme -- http://maemo.org/downloads/product/Maemo5/maemeemo-theme/
extra translations / languages
</pre>
Other stuff to do/test:
- N900 flashlight
- WiFi direct (p2p) on N900 & Droid 4 - https://kasiviswanathanblog.wordpress.com/wifi-p2p-in-linux/
- WiFi monitor mode (N900 & Droid 4)
- WiFi hotspot (Droid 4)
65a45cb573dc14cc64fdda773920cfa7e2d310ac
729
728
2020-05-07T12:54:39Z
Sicelo
5
wikitext
text/x-wiki
Possible N900 USB host mode
echo 'force host full-speed' > /sys/kernel/debug/musb-hdrc.0.auto/testmode
echo host > /sys/bus/platform/devices/musb-hdrc.0.auto/mode
echo 1 > /sys/kernel/debug/musb-hdrc.0.auto/softconnect
echo disconnect > /sys/bus/platform/devices/musb-hdrc.0.auto/musb-hdrc.0.auto/soft_connect
Force N900 to stop charging while connected to power
echo off > /sys/class/power_supply/bq24150a-0/mode
Application wishlist from Wizzup
<pre>
Maybe fun to port:
desktop:
battery-eye (in vm al)
catorise http://maemo.org/downloads/product/Maemo5/catorise/ (evt "Debian" category)
live wallpaper? http://maemo.org/downloads/product/Maemo5/live-wallpaper/
datetoday home widget http://maemo.org/downloads/product/Maemo5/datetoday-home-widget/
personal gprs monitor maemo.org/downloads/product/Maemo5/personal-gprs-mon/
humanity theme http://maemo.org/downloads/product/Maemo5/humanity-theme/
personal ip address http://maemo.org/downloads/product/Maemo5/personal-ip-address/
custom operator name widget http://maemo.org/downloads/product/Maemo5/custom-operator-name-widget/
advanced clock http://maemo.org/downloads/product/Maemo5/advanced-clock-plugin/
app search widget http://maemo.org/downloads/product/Maemo5/app-search-widget/
qtlockscreen (?) and qtlockscreenconfig -- http://maemo.org/downloads/product/Maemo5/qtlockscreenconfig/
DONE http://maemo.org/downloads/product/Maemo5/miku-theme/
education:
dorian http://maemo.org/downloads/product/Maemo5/dorian/
evopedia http://maemo.org/downloads/product/Maemo5/evopedia/
e-book reader http://maemo.org/downloads/product/Maemo5/epubreader/
gtranslate? http://maemo.org/downloads/product/Maemo5/gtranslate/ - gtk/glib/espeak
games
smw - http://maemo.org/downloads/product/Maemo5/smw/
warmux - http://maemo.org/downloads/product/Maemo5/wormux/
battle gweled - http://maemo.org/downloads/product/Maemo5/battlegweled/
drnoksnes (!!!)
freecell4maemo ?
prboom
bullshit bingo http://maemo.org/downloads/product/Maemo5/bullshitbingo/
puzzles http://maemo.org/downloads/product/Maemo5/sgt-puzzles/
rocks n diamond shttp://maemo.org/downloads/product/Maemo5/rocksndiamonds/
uae4all goed laten werken
neverball - http://maemo.org/downloads/product/Maemo5/neverball/
graphics
mypaint (?)
raw viewer? http://maemo.org/downloads/product/Maemo5/mrawviewer/
multimedia
Boel coole/nuttige music players
qspot http://maemo.org/downloads/product/Maemo5/qspot/
recorder http://maemo.org/downloads/product/Maemo5/recorder/
qmidictl http://maemo.org/downloads/product/Maemo5/qmidictl/
maetronome http://maemo.org/downloads/product/Maemo5/maetronome/
location and navigation
modrana
marble? http://maemo.org/downloads/product/Maemo5/marble/
marble maps? http://maemo.org/downloads/product/Maemo5/marble-maps/
maep for sure http://maemo.org/downloads/product/Maemo5/maep/
gps track logger http://maemo.org/downloads/product/Maemo5/gps-data-logger/
OSM2Go - http://maemo.org/downloads/product/Maemo5/osm2go/
interessant http://maemo.org/downloads/product/Maemo5/snuggle/
internet and networking
google voice dialer written in Qt http://maemo.org/downloads/product/Maemo5/qgvdial/
meer google voice http://maemo.org/downloads/product/Maemo5/dialcentral/
twitter clienter http://maemo.org/downloads/product/Maemo5/khweeteur/
zoutube -- http://maemo.org/downloads/product/Maemo5/zoutube/
witter -- twitter client in python http://maemo.org/downloads/product/Maemo5/witter/
vncviewer -- http://maemo.org/downloads/product/Maemo5/vncviewer/
wifi eye http://maemo.org/downloads/product/Maemo5/wifieye/
qnetman -- http://maemo.org/downloads/product/Maemo5/qnetman/
xchat irc http://maemo.org/downloads/product/Maemo5/xchat/
office
xournal http://maemo.org/downloads/product/Maemo5/xournal/
quicknote http://maemo.org/downloads/product/Maemo5/quicknote/
mebook http://maemo.org/downloads/product/Maemo5/mebook/
portabase? http://maemo.org/downloads/product/Maemo5/portabase/
other
--
science
orrery -- http://maemo.org/downloads/product/Maemo5/orrery/
accdisplay http://maemo.org/downloads/product/Maemo5/accdisplay/
system
(lots of themes)
theme-customizer -- http://maemo.org/downloads/product/Maemo5/theme-customizer/
matrix theme -- http://maemo.org/downloads/product/Maemo5/matrix-pr12/
borg sounds -- http://maemo.org/downloads/product/Maemo5/borg-sounds/
okuda theme -- http://maemo.org/downloads/product/Maemo5/hildon-theme-okuda/
cellular modem control buttons -- http://maemo.org/downloads/product/Maemo5/cell-modem-ui/
qtlockscreen -- http://maemo.org/downloads/product/Maemo5/qtlockscreen/
maemeemo theme -- http://maemo.org/downloads/product/Maemo5/maemeemo-theme/
extra translations / languages
</pre>
Other stuff to do/test:
<pre>
- N900 flashlight
- WiFi direct (p2p) on N900 & Droid 4 - https://kasiviswanathanblog.wordpress.com/wifi-p2p-in-linux/
- WiFi monitor mode (N900 & Droid 4)
- WiFi hotspot (Droid 4)
</pre>
48aa4cea43ecc7fe95c11fe03215a3296d1c968b
731
729
2020-05-17T12:18:37Z
Sicelo
5
wikitext
text/x-wiki
Possible N900 USB host mode
echo 'force host full-speed' > /sys/kernel/debug/musb-hdrc.0.auto/testmode
echo host > /sys/bus/platform/devices/musb-hdrc.0.auto/mode
echo 1 > /sys/kernel/debug/musb-hdrc.0.auto/softconnect
echo disconnect > /sys/bus/platform/devices/musb-hdrc.0.auto/musb-hdrc.0.auto/soft_connect
Force N900 to stop charging while connected to power
echo off > /sys/class/power_supply/bq24150a-0/mode
Application wishlist from Wizzup
<pre>
Maybe fun to port:
desktop:
battery-eye (in vm al)
catorise http://maemo.org/downloads/product/Maemo5/catorise/ (evt "Debian" category)
live wallpaper? http://maemo.org/downloads/product/Maemo5/live-wallpaper/
datetoday home widget http://maemo.org/downloads/product/Maemo5/datetoday-home-widget/
personal gprs monitor maemo.org/downloads/product/Maemo5/personal-gprs-mon/
humanity theme http://maemo.org/downloads/product/Maemo5/humanity-theme/
DONE personal ip address http://maemo.org/downloads/product/Maemo5/personal-ip-address/
custom operator name widget http://maemo.org/downloads/product/Maemo5/custom-operator-name-widget/
advanced clock http://maemo.org/downloads/product/Maemo5/advanced-clock-plugin/
app search widget http://maemo.org/downloads/product/Maemo5/app-search-widget/
qtlockscreen (?) and qtlockscreenconfig -- http://maemo.org/downloads/product/Maemo5/qtlockscreenconfig/
DONE http://maemo.org/downloads/product/Maemo5/miku-theme/
education:
dorian http://maemo.org/downloads/product/Maemo5/dorian/
evopedia http://maemo.org/downloads/product/Maemo5/evopedia/
e-book reader http://maemo.org/downloads/product/Maemo5/epubreader/
gtranslate? http://maemo.org/downloads/product/Maemo5/gtranslate/ - gtk/glib/espeak
games
smw - http://maemo.org/downloads/product/Maemo5/smw/
warmux - http://maemo.org/downloads/product/Maemo5/wormux/
battle gweled - http://maemo.org/downloads/product/Maemo5/battlegweled/
drnoksnes (!!!)
freecell4maemo ?
prboom
bullshit bingo http://maemo.org/downloads/product/Maemo5/bullshitbingo/
puzzles http://maemo.org/downloads/product/Maemo5/sgt-puzzles/
rocks n diamond shttp://maemo.org/downloads/product/Maemo5/rocksndiamonds/
uae4all goed laten werken
neverball - http://maemo.org/downloads/product/Maemo5/neverball/
graphics
mypaint (?)
raw viewer? http://maemo.org/downloads/product/Maemo5/mrawviewer/
multimedia
Boel coole/nuttige music players
qspot http://maemo.org/downloads/product/Maemo5/qspot/
recorder http://maemo.org/downloads/product/Maemo5/recorder/
qmidictl http://maemo.org/downloads/product/Maemo5/qmidictl/
maetronome http://maemo.org/downloads/product/Maemo5/maetronome/
location and navigation
modrana
marble? http://maemo.org/downloads/product/Maemo5/marble/
marble maps? http://maemo.org/downloads/product/Maemo5/marble-maps/
maep for sure http://maemo.org/downloads/product/Maemo5/maep/
gps track logger http://maemo.org/downloads/product/Maemo5/gps-data-logger/
OSM2Go - http://maemo.org/downloads/product/Maemo5/osm2go/
interessant http://maemo.org/downloads/product/Maemo5/snuggle/
internet and networking
google voice dialer written in Qt http://maemo.org/downloads/product/Maemo5/qgvdial/
meer google voice http://maemo.org/downloads/product/Maemo5/dialcentral/
twitter clienter http://maemo.org/downloads/product/Maemo5/khweeteur/
zoutube -- http://maemo.org/downloads/product/Maemo5/zoutube/
witter -- twitter client in python http://maemo.org/downloads/product/Maemo5/witter/
vncviewer -- http://maemo.org/downloads/product/Maemo5/vncviewer/
wifi eye http://maemo.org/downloads/product/Maemo5/wifieye/
qnetman -- http://maemo.org/downloads/product/Maemo5/qnetman/
xchat irc http://maemo.org/downloads/product/Maemo5/xchat/
office
xournal http://maemo.org/downloads/product/Maemo5/xournal/
quicknote http://maemo.org/downloads/product/Maemo5/quicknote/
mebook http://maemo.org/downloads/product/Maemo5/mebook/
portabase? http://maemo.org/downloads/product/Maemo5/portabase/
other
--
science
orrery -- http://maemo.org/downloads/product/Maemo5/orrery/
accdisplay http://maemo.org/downloads/product/Maemo5/accdisplay/
system
(lots of themes)
theme-customizer -- http://maemo.org/downloads/product/Maemo5/theme-customizer/
matrix theme -- http://maemo.org/downloads/product/Maemo5/matrix-pr12/
borg sounds -- http://maemo.org/downloads/product/Maemo5/borg-sounds/
okuda theme -- http://maemo.org/downloads/product/Maemo5/hildon-theme-okuda/
cellular modem control buttons -- http://maemo.org/downloads/product/Maemo5/cell-modem-ui/
qtlockscreen -- http://maemo.org/downloads/product/Maemo5/qtlockscreen/
maemeemo theme -- http://maemo.org/downloads/product/Maemo5/maemeemo-theme/
extra translations / languages
</pre>
Other stuff to do/test:
<pre>
- N900 flashlight
- WiFi direct (p2p) on N900 & Droid 4 - https://kasiviswanathanblog.wordpress.com/wifi-p2p-in-linux/
- WiFi monitor mode (N900 & Droid 4)
- WiFi hotspot (Droid 4)
</pre>
df1fecbe771ccebd86f947f33d3d0fab141d1c80
Motorola Droid 4
0
50
697
690
2020-03-25T00:26:10Z
BuZz
32
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.6.0-rc5 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Reported to work, no UI yet
|-
| Phone calls || WIP || Reported to work, no UI yet
|-
| Bluetooth || Yes || Needs firmware - see [[#Bluetooth|below]]. See also https://github.com/maemo-leste/bugtracker/issues/290.
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || WIP ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes ||
|-
|Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi)
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.
== Postinstall notes for 20200112 image ==
Current image has some erratas which can be fixed by following the instructions found in this post:
https://github.com/maemo-leste/bugtracker/issues/302#issuecomment-576277674
=== Wifi ===
Requires wpasupplicant and firmware-ti-connectivity from ascii-backports (needs to get added to sources.list)
deb http://pkgmaster.devuan.org/merged ascii-backports main contrib non-free
apt install -t ascii-backports wpasupplicant
apt install -t ascii-backports firmware-ti-connectivity
=== Bluetooth ===
Requires https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts to go in /lib/firmware/ti-connectivity/
$ sha256sum TIInit_10.6.15.bts
85dc6539436319fa1301277c171f9fd65b716279900bc686a76578ab24cc7793 TIInit_10.6.15.bts
Note: some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
=== Sound ===
This needs to be executed to enable the sound:
modprobe snd-soc-cpcap
modprobe snd-soc-motmdm
modprobe snd-soc-audio-graph-card
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
</gallery>
[[Category:Device]]
6725fb149aa638957ca7d37a0985c8879a2cae81
698
697
2020-03-25T00:31:53Z
BuZz
32
/* Blinkenlights */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.6.0-rc5 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Reported to work, no UI yet
|-
| Phone calls || WIP || Reported to work, no UI yet
|-
| Bluetooth || Yes || Needs firmware - see [[#Bluetooth|below]]. See also https://github.com/maemo-leste/bugtracker/issues/290.
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || WIP ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes ||
|-
|Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi)
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.
== Postinstall notes for 20200112 image ==
Current image has some erratas which can be fixed by following the instructions found in this post:
https://github.com/maemo-leste/bugtracker/issues/302#issuecomment-576277674
=== Wifi ===
Requires wpasupplicant and firmware-ti-connectivity from ascii-backports (needs to get added to sources.list)
deb http://pkgmaster.devuan.org/merged ascii-backports main contrib non-free
apt install -t ascii-backports wpasupplicant
apt install -t ascii-backports firmware-ti-connectivity
=== Bluetooth ===
Requires https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts to go in /lib/firmware/ti-connectivity/
$ sha256sum TIInit_10.6.15.bts
85dc6539436319fa1301277c171f9fd65b716279900bc686a76578ab24cc7793 TIInit_10.6.15.bts
Note: some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
=== Sound ===
This needs to be executed to enable the sound:
modprobe snd-soc-cpcap
modprobe snd-soc-motmdm
modprobe snd-soc-audio-graph-card
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
</gallery>
[[Category:Device]]
15e5cf3ff79d8ecd45295f1799f06e8c6f0e7ebd
699
698
2020-03-25T00:32:11Z
BuZz
32
/* Blinkenlights */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.6.0-rc5 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Reported to work, no UI yet
|-
| Phone calls || WIP || Reported to work, no UI yet
|-
| Bluetooth || Yes || Needs firmware - see [[#Bluetooth|below]]. See also https://github.com/maemo-leste/bugtracker/issues/290.
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || WIP ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes ||
|-
|Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi)
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.
== Postinstall notes for 20200112 image ==
Current image has some erratas which can be fixed by following the instructions found in this post:
https://github.com/maemo-leste/bugtracker/issues/302#issuecomment-576277674
=== Wifi ===
Requires wpasupplicant and firmware-ti-connectivity from ascii-backports (needs to get added to sources.list)
deb http://pkgmaster.devuan.org/merged ascii-backports main contrib non-free
apt install -t ascii-backports wpasupplicant
apt install -t ascii-backports firmware-ti-connectivity
=== Bluetooth ===
Requires https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts to go in /lib/firmware/ti-connectivity/
$ sha256sum TIInit_10.6.15.bts
85dc6539436319fa1301277c171f9fd65b716279900bc686a76578ab24cc7793 TIInit_10.6.15.bts
Note: some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
=== Sound ===
This needs to be executed to enable the sound:
modprobe snd-soc-cpcap
modprobe snd-soc-motmdm
modprobe snd-soc-audio-graph-card
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
</gallery>
[[Category:Device]]
a8ab3b4312812f4beddf129bfa24b6837453d5b9
703
699
2020-03-25T17:36:57Z
Wizzup
4
Remove postinstall notes for old image that are no longer relevant
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.6.0-rc5 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Reported to work, no UI yet
|-
| Phone calls || WIP || Reported to work, no UI yet
|-
| Bluetooth || Yes || Needs firmware - see [[#Bluetooth|below]]. See also https://github.com/maemo-leste/bugtracker/issues/290.
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || WIP ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes ||
|-
|Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi)
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.
=== Bluetooth ===
Requires https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts to go in /lib/firmware/ti-connectivity/
$ sha256sum TIInit_10.6.15.bts
85dc6539436319fa1301277c171f9fd65b716279900bc686a76578ab24cc7793 TIInit_10.6.15.bts
Note: some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
</gallery>
[[Category:Device]]
e23bd089ba03c701011dc0f0836517ba80dc7b9a
704
703
2020-03-26T02:14:07Z
BuZz
32
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=
|audio=
|network=
|storage=8GB flash
|usb=
|camera=
|sensors=
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.6.0-rc5 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Reported to work, no UI yet
|-
| Phone calls || WIP || Reported to work, no UI yet
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290.
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || WIP ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes ||
|-
| Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi)
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.
== Updating ==
* Poweroff device, grab the SD card
* Backup any important files
* Grab latest image from https://maedevu.maemo.org/images/droid4/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
</gallery>
[[Category:Device]]
0eb04c5bacb5672d684e35eab9579b7d1b815d02
705
704
2020-03-26T09:51:11Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=
|audio=
|network=
|storage=8GB flash
|usb=
|camera=
|sensors=
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.6.0-rc5 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Work with AT commands, needs ofono porting work, and then Leste UI
|-
| Phone calls || WIP || Work with AT commands (good call quality, too), needs ofono porting work, and then Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290.
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || WIP ||
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes ||
|-
| Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi)
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.
== Updating ==
* Poweroff device, grab the SD card
* Backup any important files
* Grab latest image from https://maedevu.maemo.org/images/droid4/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
</gallery>
[[Category:Device]]
cd2677e3ce9333c8826767cf9336c27ab5918267
706
705
2020-03-26T10:40:59Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=
|audio=
|network=
|storage=8GB flash
|usb=
|camera=
|sensors=
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.6.0-rc5 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Work with AT commands, needs ofono porting work, and then Leste UI
|-
| Phone calls || WIP || Work with AT commands (good call quality, too), needs ofono porting work, and then Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290.
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || WIP || Some values are reported, but ambient light is not, it seems
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes || No userspace yet (should be in mce)
|-
| Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi)
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.
== Updating ==
* Poweroff device, grab the SD card
* Backup any important files
* Grab latest image from https://maedevu.maemo.org/images/droid4/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
</gallery>
[[Category:Device]]
d26f36cd10174372afe5ba328a0197b25d881a8d
707
706
2020-03-26T15:15:32Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=
|audio=
|network=
|storage=8GB flash
|usb=
|camera=
|sensors=
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.6.0-rc5 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Work with AT commands, needs ofono porting work, and then Leste UI
|-
| Phone calls || WIP || Work with AT commands (good call quality, too), needs ofono porting work, and then Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290.
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || WIP || Some values are reported, but ambient light is not, it seems
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes || No userspace yet (should be in mce)
|-
| Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi)
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.
== Updating ==
* Poweroff device, grab the SD card
* Backup any important files
* Grab latest image from https://maedevu.maemo.org/images/droid4/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this over SSH:
<pre>
Read modem output:
$ cat /dev/motmdm1 &
Online modem:
$ printf "AT+CFUN=1\r" > /dev/motmdm1
Connect to network:
$ printf "AT+COPS=1\r" > /dev/motmdm1
Print connected network:
$ printf "AT+COPS?\r" > /dev/motmdm1
Not sure, do it anyway:
$ printf "AT+SCRN=0\r" > /dev/motmdm1
Dial a number:
$ printf "ATD+1234567890\r" > /dev/motmdm1
Hang up:
$ printf "ATH\r" > /dev/motmdm1
Answer incoming call:
$ printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero.
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
</gallery>
[[Category:Device]]
b898d00af524e7b1d329960e0cca13626093cd90
708
707
2020-03-26T20:28:23Z
Sicelo
5
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=
|audio=
|network=
|storage=8GB flash
|usb=
|camera=
|sensors=
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.6.0-rc5 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Work with AT commands, needs ofono porting work, and then Leste UI
|-
| Phone calls || WIP || Work with AT commands (good call quality, too), needs ofono porting work, and then Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290.
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || WIP || Some values are reported, but ambient light is not, it seems
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes || No userspace yet (should be in mce)
|-
| Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi)
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.
== Updating ==
* Poweroff device, grab the SD card
* Backup any important files
* Grab latest image from https://maedevu.maemo.org/images/droid4/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this over SSH:
<pre>
Read modem output:
$ cat /dev/motmdm1 &
Online modem:
$ printf "AT+CFUN=1\r" > /dev/motmdm1
Connect to network:
$ printf "AT+COPS=1\r" > /dev/motmdm1
Print connected network:
$ printf "AT+COPS?\r" > /dev/motmdm1
Not sure, do it anyway:
$ printf "AT+SCRN=0\r" > /dev/motmdm1
Dial a number:
$ printf "ATD+1234567890\r" > /dev/motmdm1
Hang up:
$ printf "ATH\r" > /dev/motmdm1
Answer incoming call:
$ printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero.
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
</gallery>
[[Category:Device]]
e2ac871544610f5a1e3e3686f78ae92696ab3564
709
708
2020-03-26T20:35:10Z
Sicelo
5
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=
|audio=
|network=
|storage=8GB flash
|usb=
|camera=
|sensors=
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.6.0-rc5 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Work with AT commands, needs ofono porting work, and then Leste UI
|-
| Phone calls || WIP || Work with AT commands (good call quality, too), needs ofono porting work, and then Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290.
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || WIP || Some values are reported, but ambient light is not, it seems
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes || No userspace yet (should be in mce)
|-
| Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi)
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.
== Updating ==
* Poweroff device, grab the SD card
* Backup any important files
* Grab latest image from https://maedevu.maemo.org/images/droid4/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this over SSH:
<pre>
Read modem output:
$ cat /dev/motmdm1 &
Online modem:
$ printf "AT+CFUN=1\r" > /dev/motmdm1
Connect to network:
$ printf "AT+COPS=1\r" > /dev/motmdm1
Print connected network:
$ printf "AT+COPS?\r" > /dev/motmdm1
Not sure, do it anyway:
$ printf "AT+SCRN=0\r" > /dev/motmdm1
Dial a number:
$ printf "ATD+1234567890\r" > /dev/motmdm1
Hang up:
$ printf "ATH\r" > /dev/motmdm1
Answer incoming call:
$ printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero.
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
</gallery>
[[Category:Device]]
27d48981ad39312c5fd1f9092456f9a690ff9ac7
710
709
2020-03-26T20:39:30Z
Sicelo
5
/* Phone Call - Root terminal needed*/
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=
|audio=
|network=
|storage=8GB flash
|usb=
|camera=
|sensors=
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.6.0-rc5 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Work with AT commands, needs ofono porting work, and then Leste UI
|-
| Phone calls || WIP || Work with AT commands (good call quality, too), needs ofono porting work, and then Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290.
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || WIP || Some values are reported, but ambient light is not, it seems
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes || No userspace yet (should be in mce)
|-
| Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi)
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.
== Updating ==
* Poweroff device, grab the SD card
* Backup any important files
* Grab latest image from https://maedevu.maemo.org/images/droid4/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this over SSH:
<pre>
Read modem output:
# cat /dev/motmdm1 &
Online modem:
# printf "AT+CFUN=1\r" > /dev/motmdm1
Connect to network:
# printf "AT+COPS=1\r" > /dev/motmdm1
Print connected network:
# printf "AT+COPS?\r" > /dev/motmdm1
Not sure, do it anyway:
# printf "AT+SCRN=0\r" > /dev/motmdm1
Dial a number:
# printf "ATD+1234567890\r" > /dev/motmdm1
Hang up:
# printf "ATH\r" > /dev/motmdm1
Answer incoming call:
# printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero.
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
</gallery>
[[Category:Device]]
2c978f5fa9305185c9f288aca85b5b823cc715b2
711
710
2020-03-26T22:03:11Z
Sicelo
5
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=
|audio=
|network=
|storage=8GB flash
|usb=
|camera=
|sensors=
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.6.0-rc5 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Work with AT commands, needs ofono porting work, and then Leste UI
|-
| Phone calls || WIP || Work with AT commands (good call quality, too), needs ofono porting work, and then Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290.
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || WIP || Some values are reported, but ambient light is not, it seems
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes || No userspace yet (should be in mce)
|-
| Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi)
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.
== Updating ==
* Poweroff device, grab the SD card
* Backup any important files
* Grab latest image from https://maedevu.maemo.org/images/droid4/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this over SSH:
<pre>
Read modem output:
# cat /dev/motmdm1 &
Online modem:
# printf "AT+CFUN=1\r" > /dev/motmdm1
Connect to network:
# printf "AT+COPS=1\r" > /dev/motmdm1
Print connected network:
# printf "AT+COPS?\r" > /dev/motmdm1
Not sure, do it anyway:
# printf "AT+SCRN=0\r" > /dev/motmdm1
Dial a number:
# printf "ATD+1234567890\r" > /dev/motmdm1
Hang up:
# printf "ATH\r" > /dev/motmdm1
Answer incoming call:
# printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero.
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
</gallery>
[[Category:Device]]
10953be4bfed843cf9800bb98aabf1a476f4dd03
712
711
2020-03-30T22:59:57Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=
|audio=
|network=
|storage=8GB flash
|usb=
|camera=
|sensors=
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.6.0-rc5 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Work with AT commands, needs ofono porting work, and then Leste UI
|-
| Phone calls || WIP || Work with AT commands (good call quality, too), needs ofono porting work, and then Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290.
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || WIP || Sensor works, not yet exposed as evdev device
|-
| Ambient Light Sensor || Yes || https://github.com/maemo-leste/mce/pull/8
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes || No userspace yet (should be in mce)
|-
| Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi)
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.
== Updating ==
* Poweroff device, grab the SD card
* Backup any important files
* Grab latest image from https://maedevu.maemo.org/images/droid4/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this over SSH:
<pre>
Read modem output:
# cat /dev/motmdm1 &
Online modem:
# printf "AT+CFUN=1\r" > /dev/motmdm1
Connect to network:
# printf "AT+COPS=1\r" > /dev/motmdm1
Print connected network:
# printf "AT+COPS?\r" > /dev/motmdm1
Not sure, do it anyway:
# printf "AT+SCRN=0\r" > /dev/motmdm1
Dial a number:
# printf "ATD+1234567890\r" > /dev/motmdm1
Hang up:
# printf "ATH\r" > /dev/motmdm1
Answer incoming call:
# printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero.
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
</gallery>
[[Category:Device]]
eee6235ac60ab0cbfd10acb7b68649d6df6d3972
713
712
2020-03-30T23:00:06Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=
|audio=
|network=
|storage=8GB flash
|usb=
|camera=
|sensors=
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.6.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Work with AT commands, needs ofono porting work, and then Leste UI
|-
| Phone calls || WIP || Work with AT commands (good call quality, too), needs ofono porting work, and then Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290.
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || WIP || Sensor works, not yet exposed as evdev device
|-
| Ambient Light Sensor || Yes || https://github.com/maemo-leste/mce/pull/8
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes || No userspace yet (should be in mce)
|-
| Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi)
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.
== Updating ==
* Poweroff device, grab the SD card
* Backup any important files
* Grab latest image from https://maedevu.maemo.org/images/droid4/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this over SSH:
<pre>
Read modem output:
# cat /dev/motmdm1 &
Online modem:
# printf "AT+CFUN=1\r" > /dev/motmdm1
Connect to network:
# printf "AT+COPS=1\r" > /dev/motmdm1
Print connected network:
# printf "AT+COPS?\r" > /dev/motmdm1
Not sure, do it anyway:
# printf "AT+SCRN=0\r" > /dev/motmdm1
Dial a number:
# printf "ATD+1234567890\r" > /dev/motmdm1
Hang up:
# printf "ATH\r" > /dev/motmdm1
Answer incoming call:
# printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero.
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
</gallery>
[[Category:Device]]
bb053cff4b0878e85e50b8f00726bd7648cb579f
714
713
2020-03-30T23:00:53Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=
|audio=
|network=
|storage=8GB flash
|usb=
|camera=
|sensors=
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.6.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Work with AT commands, needs ofono porting work, and then Leste UI
|-
| Phone calls || WIP || Work with AT commands (good call quality, too), needs ofono porting work, and then Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290.
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available in /sys, but not yet as input device, needs kernel and MCE work https://github.com/maemo-leste/bugtracker/issues/294
|-
| Proximity sensor || WIP || Sensor works, not yet exposed as evdev device
|-
| Ambient Light Sensor || Yes || https://github.com/maemo-leste/mce/pull/8
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes || No userspace yet (should be in mce)
|-
| Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi)
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.
== Updating ==
* Poweroff device, grab the SD card
* Backup any important files
* Grab latest image from https://maedevu.maemo.org/images/droid4/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this over SSH:
<pre>
Read modem output:
# cat /dev/motmdm1 &
Online modem:
# printf "AT+CFUN=1\r" > /dev/motmdm1
Connect to network:
# printf "AT+COPS=1\r" > /dev/motmdm1
Print connected network:
# printf "AT+COPS?\r" > /dev/motmdm1
Not sure, do it anyway:
# printf "AT+SCRN=0\r" > /dev/motmdm1
Dial a number:
# printf "ATD+1234567890\r" > /dev/motmdm1
Hang up:
# printf "ATH\r" > /dev/motmdm1
Answer incoming call:
# printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero.
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
</gallery>
[[Category:Device]]
2f5c96161af6970e5f84299a17d908efe36fd35b
723
714
2020-04-26T18:59:54Z
Sicelo
5
/* Status */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=
|audio=
|network=
|storage=8GB flash
|usb=
|camera=
|sensors=
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.6.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Work with AT commands, needs ofono porting work, and then Leste UI
|-
| Phone calls || WIP || Work with AT commands (good call quality, too), needs ofono porting work, and then Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290.
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available in /sys, but not yet as input device, needs kernel and MCE work https://github.com/maemo-leste/bugtracker/issues/294
|-
| Compass || ? || Available in /sys (after loading ak8975 module. No applications using it yet
|-
| Proximity sensor || WIP || Sensor works, not yet exposed as evdev device
|-
| Ambient Light Sensor || Yes || https://github.com/maemo-leste/mce/pull/8
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes || No userspace yet (should be in mce)
|-
| Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi)
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.
== Updating ==
* Poweroff device, grab the SD card
* Backup any important files
* Grab latest image from https://maedevu.maemo.org/images/droid4/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this over SSH:
<pre>
Read modem output:
# cat /dev/motmdm1 &
Online modem:
# printf "AT+CFUN=1\r" > /dev/motmdm1
Connect to network:
# printf "AT+COPS=1\r" > /dev/motmdm1
Print connected network:
# printf "AT+COPS?\r" > /dev/motmdm1
Not sure, do it anyway:
# printf "AT+SCRN=0\r" > /dev/motmdm1
Dial a number:
# printf "ATD+1234567890\r" > /dev/motmdm1
Hang up:
# printf "ATH\r" > /dev/motmdm1
Answer incoming call:
# printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero.
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
</gallery>
[[Category:Device]]
6295773a9624e01657a98a72b33f46977360af03
726
723
2020-05-06T03:01:55Z
BuZz
32
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=
|audio=
|network=
|storage=8GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.6.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Work with AT commands, needs ofono porting work, and then Leste UI
|-
| Phone calls || WIP || Work with AT commands (good call quality, too), needs ofono porting work, and then Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290.
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available in /sys, but not yet as input device, needs kernel and MCE work https://github.com/maemo-leste/bugtracker/issues/294
|-
| Compass || ? || Available in /sys (after loading ak8975 module. No applications using it yet
|-
| Proximity sensor || WIP || Sensor works, not yet exposed as evdev device
|-
| Ambient Light Sensor || Yes || https://github.com/maemo-leste/mce/pull/8
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes || No userspace yet (should be in mce)
|-
| Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi)
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.
== Updating ==
* Poweroff device, grab the SD card
* Backup any important files
* Grab latest image from https://maedevu.maemo.org/images/droid4/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this over SSH:
<pre>
Read modem output:
# cat /dev/motmdm1 &
Online modem:
# printf "AT+CFUN=1\r" > /dev/motmdm1
Connect to network:
# printf "AT+COPS=1\r" > /dev/motmdm1
Print connected network:
# printf "AT+COPS?\r" > /dev/motmdm1
Not sure, do it anyway:
# printf "AT+SCRN=0\r" > /dev/motmdm1
Dial a number:
# printf "ATD+1234567890\r" > /dev/motmdm1
Hang up:
# printf "ATH\r" > /dev/motmdm1
Answer incoming call:
# printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero.
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
</gallery>
[[Category:Device]]
51e9cb49e8f461d4dbed603a47fa27aaa6150ce5
727
726
2020-05-06T03:14:07Z
BuZz
32
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.6.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Work with AT commands, needs ofono porting work, and then Leste UI
|-
| Phone calls || WIP || Work with AT commands (good call quality, too), needs ofono porting work, and then Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290.
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available in /sys, but not yet as input device, needs kernel and MCE work https://github.com/maemo-leste/bugtracker/issues/294
|-
| Compass || ? || Available in /sys (after loading ak8975 module. No applications using it yet
|-
| Proximity sensor || WIP || Sensor works, not yet exposed as evdev device
|-
| Ambient Light Sensor || Yes || https://github.com/maemo-leste/mce/pull/8
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes || No userspace yet (should be in mce)
|-
| Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi)
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.
== Updating ==
* Poweroff device, grab the SD card
* Backup any important files
* Grab latest image from https://maedevu.maemo.org/images/droid4/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this over SSH:
<pre>
Read modem output:
# cat /dev/motmdm1 &
Online modem:
# printf "AT+CFUN=1\r" > /dev/motmdm1
Connect to network:
# printf "AT+COPS=1\r" > /dev/motmdm1
Print connected network:
# printf "AT+COPS?\r" > /dev/motmdm1
Not sure, do it anyway:
# printf "AT+SCRN=0\r" > /dev/motmdm1
Dial a number:
# printf "ATD+1234567890\r" > /dev/motmdm1
Hang up:
# printf "ATH\r" > /dev/motmdm1
Answer incoming call:
# printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero.
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
</gallery>
[[Category:Device]]
df6d9ee380fc9200aa1e5955d7c2e10a57e1a36f
730
727
2020-05-11T22:19:46Z
BuZz
32
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.6.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Work with AT commands, needs ofono porting work, and then Leste UI
|-
| Phone calls || WIP || Work with AT commands (good call quality, too), needs ofono porting work, and then Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290.
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available in /sys, but not yet as input device, needs kernel and MCE work https://github.com/maemo-leste/bugtracker/issues/294
|-
| Compass || ? || Available in /sys (after loading ak8975 module. No applications using it yet
|-
| Proximity sensor || WIP || Sensor works, not yet exposed as evdev device
|-
| Ambient Light Sensor || Yes || https://github.com/maemo-leste/mce/pull/8
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes || No userspace yet (should be in mce)
|-
| Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi)
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
* Poweroff device, grab the SD card
* Backup any important files
* Grab latest image from https://maedevu.maemo.org/images/droid4/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this over SSH:
<pre>
Read modem output:
# cat /dev/motmdm1 &
Online modem:
# printf "AT+CFUN=1\r" > /dev/motmdm1
Connect to network:
# printf "AT+COPS=1\r" > /dev/motmdm1
Print connected network:
# printf "AT+COPS?\r" > /dev/motmdm1
Not sure, do it anyway:
# printf "AT+SCRN=0\r" > /dev/motmdm1
Dial a number:
# printf "ATD+1234567890\r" > /dev/motmdm1
Hang up:
# printf "ATH\r" > /dev/motmdm1
Answer incoming call:
# printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero.
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
</gallery>
[[Category:Device]]
9bcaebf6ba7325320868f0cb266aa0b3b8408438
732
730
2020-05-19T19:34:21Z
Brabo
38
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.6.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Work with AT commands, needs ofono porting work, and then Leste UI
|-
| Phone calls || WIP || Work with AT commands (good call quality, too), needs ofono porting work, and then Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290.
|-
| FM Transmitter || N/A ||
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available in /sys, but not yet as input device, needs kernel and MCE work https://github.com/maemo-leste/bugtracker/issues/294
|-
| Compass || ? || Available in /sys (after loading ak8975 module. No applications using it yet
|-
| Proximity sensor || WIP || Sensor works, not yet exposed as evdev device
|-
| Ambient Light Sensor || Yes || https://github.com/maemo-leste/mce/pull/8
|-
| HDMI-out || WIP || works, but not with hildon-desktop
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes || No userspace yet (should be in mce)
|-
| GPS || ? || Works but is not integrated yet, see [[#GPS|GPS]]
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi)
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
* Poweroff device, grab the SD card
* Backup any important files
* Grab latest image from https://maedevu.maemo.org/images/droid4/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this over SSH:
<pre>
Read modem output:
# cat /dev/motmdm1 &
Online modem:
# printf "AT+CFUN=1\r" > /dev/motmdm1
Connect to network:
# printf "AT+COPS=1\r" > /dev/motmdm1
Print connected network:
# printf "AT+COPS?\r" > /dev/motmdm1
Not sure, do it anyway:
# printf "AT+SCRN=0\r" > /dev/motmdm1
Dial a number:
# printf "ATD+1234567890\r" > /dev/motmdm1
Hang up:
# printf "ATH\r" > /dev/motmdm1
Answer incoming call:
# printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero.
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
</gallery>
[[Category:Device]]
fafcdeb538454a2bf42e9095f0aaee75f8b47b56
737
732
2020-05-21T19:15:04Z
Sicelo
5
/* Status */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.6.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Work with AT commands, needs ofono porting work, and then Leste UI
|-
| Phone calls || WIP || Work with AT commands (good call quality, too), needs ofono porting work, and then Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Currently disabled due to interference with WiFi
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available in /sys, but not yet as input device, needs kernel and MCE work https://github.com/maemo-leste/bugtracker/issues/294
|-
| Compass || ? || Available in /sys (after loading ak8975 module. No applications using it yet
|-
| Proximity sensor || WIP || Sensor works, not yet exposed as evdev device
|-
| Ambient Light Sensor || Yes || https://github.com/maemo-leste/mce/pull/8
|-
| HDMI-out || WIP || works
|-
| TV-out || N/A ||
|-
| Vibration Motor || Yes || No userspace yet (should be in mce)
|-
| GPS || ? || Works but is not integrated yet, see [[#GPS|GPS]]
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi)
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
* Poweroff device, grab the SD card
* Backup any important files
* Grab latest image from https://maedevu.maemo.org/images/droid4/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this over SSH:
<pre>
Read modem output:
# cat /dev/motmdm1 &
Online modem:
# printf "AT+CFUN=1\r" > /dev/motmdm1
Connect to network:
# printf "AT+COPS=1\r" > /dev/motmdm1
Print connected network:
# printf "AT+COPS?\r" > /dev/motmdm1
Not sure, do it anyway:
# printf "AT+SCRN=0\r" > /dev/motmdm1
Dial a number:
# printf "ATD+1234567890\r" > /dev/motmdm1
Hang up:
# printf "ATH\r" > /dev/motmdm1
Answer incoming call:
# printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero.
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
</gallery>
[[Category:Device]]
928e14fc1af8fcb22c9a10818386147b6d4fed17
738
737
2020-05-21T19:29:11Z
Sicelo
5
reorder table rows to make comparisons between Droid 4 and N900 easier
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.6.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Work with AT commands, needs ofono porting work, and then Leste UI
|-
| Phone calls || WIP || Work with AT commands (good call quality, too), needs ofono porting work, and then Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Currently disabled due to interference with WiFi
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available in /sys, but not yet as input device, needs kernel and MCE work https://github.com/maemo-leste/bugtracker/issues/294
|-
| Compass || ? || Available in /sys (after loading ak8975 module. No applications using it yet
|-
| Proximity sensor || WIP || Sensor works, not yet exposed as evdev device
|-
| Ambient Light Sensor || Yes || https://github.com/maemo-leste/mce/pull/8
|-
| Vibration Motor || Yes || No userspace yet (should be in mce)
|-
| HDMI-out || WIP || works
|-
| TV-out || N/A ||
|-
| GPS || ? || Works but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || Yes || TX only (hardware limitation).
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi)
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
* Poweroff device, grab the SD card
* Backup any important files
* Grab latest image from https://maedevu.maemo.org/images/droid4/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this over SSH:
<pre>
Read modem output:
# cat /dev/motmdm1 &
Online modem:
# printf "AT+CFUN=1\r" > /dev/motmdm1
Connect to network:
# printf "AT+COPS=1\r" > /dev/motmdm1
Print connected network:
# printf "AT+COPS?\r" > /dev/motmdm1
Not sure, do it anyway:
# printf "AT+SCRN=0\r" > /dev/motmdm1
Dial a number:
# printf "ATD+1234567890\r" > /dev/motmdm1
Hang up:
# printf "ATH\r" > /dev/motmdm1
Answer incoming call:
# printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero.
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
</gallery>
[[Category:Device]]
6aea993a5f602518a908568bb032c47b2a5f6c5e
740
738
2020-05-21T19:32:42Z
Sicelo
5
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.6.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Work with AT commands, needs ofono porting work, and then Leste UI
|-
| Phone calls || WIP || Work with AT commands (good call quality, too), needs ofono porting work, and then Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Currently disabled due to interference with WiFi
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available in /sys, but not yet as input device, needs kernel and MCE work https://github.com/maemo-leste/bugtracker/issues/294
|-
| Compass || ? || Available in /sys (after loading ak8975 module. No applications using it yet
|-
| Proximity sensor || WIP || Sensor works, not yet exposed as evdev device
|-
| Ambient Light Sensor || Yes || https://github.com/maemo-leste/mce/pull/8
|-
| Vibration Motor || Yes || No userspace yet (should be in mce)
|-
| HDMI-out || WIP || works
|-
| TV-out || N/A ||
|-
| GPS || ? || Works but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || No || Missing in hardware
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi)
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
* Poweroff device, grab the SD card
* Backup any important files
* Grab latest image from https://maedevu.maemo.org/images/droid4/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this over SSH:
<pre>
Read modem output:
# cat /dev/motmdm1 &
Online modem:
# printf "AT+CFUN=1\r" > /dev/motmdm1
Connect to network:
# printf "AT+COPS=1\r" > /dev/motmdm1
Print connected network:
# printf "AT+COPS?\r" > /dev/motmdm1
Not sure, do it anyway:
# printf "AT+SCRN=0\r" > /dev/motmdm1
Dial a number:
# printf "ATD+1234567890\r" > /dev/motmdm1
Hang up:
# printf "ATH\r" > /dev/motmdm1
Answer incoming call:
# printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero.
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
</gallery>
[[Category:Device]]
2b0cbf012fe14041f77024382705c63f68cd4533
Status
0
64
700
646
2020-03-25T11:32:45Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
For Device specific status pages, see See [[:Category:Device]]
The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device
{| class="wikitable"
! Feature
! Status
! Leste software
! Notes
|-
| Desktop environment || OK || hildon || hildon home, hildon desktop, .
|-
| Terminal || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] ||
|-
| [[Status/VirtualKeyboard|Virtual keyboard]] || OK || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work fine for all devices
|-
| [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Works out of the box. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7
|-
| Bluetooth || No(t yet) || ? ||
|-
| [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily. Some also use netsurf-gtk.
|-
| Audio || WIP || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio ; will need to import alsa-policy-enforcement, port OHM
|-
| Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] ||
|-
| [[Status/USB Peripheral|USB Peripheral]] || OK || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv
|-
| LED control || OK || mce || Works on the N900 - make sure the notifications are enabled in settings.
|-
| [[Status/Mobile Data|Mobile Data]] || WIP || [https://github.com/maemo-leste/connui-cellular connui-cellular] [https://github.com/maemo-leste/libicd-network-ofono libicd-network-ofono] || There is basic libicd-network-ofono, connui-cellular is being ported to ofono
|-
| [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed
|-
| [[Status/SMS|SMS]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue]
|-
| [[Status/Phone Calls|Phone Calls]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue]
|-
| [[Status/Application Manager|Application Manager]] || OK || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || Mostly works, but needs serious testing [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue]
|-
| [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue]
|-
| [[Status/PDF Viewer|PDF Viewer]] || Mostly works || osso-pdf-viewer || [https://github.com/maemo-leste/osso-pdf-viewer osso-pdf-viewer]
|-
| [[Status/Games|Games & Entertainment]] || OK || Works (available in [[Leste Extras]] || [https://github.com/maemo-leste/bugtracker/issues/18 sdl fullscreen] [https://github.com/maemo-leste/bugtracker/issues/238 game importing]
|-
| [[Status/Theming|Theming]] || OK || Works with themes (available in [[Leste Extras]] ||
|}
bd352a6b5382a0efb83c09752873804847a867b8
Status/Theming
0
103
701
2020-03-25T11:34:00Z
Wizzup
4
Created page with "= Theming = Maemo Leste has multiple themes packages, and changing the theme can be done using the control panel. The following themes are known to be available: * hildon-t..."
wikitext
text/x-wiki
= Theming =
Maemo Leste has multiple themes packages, and changing the theme can be done using the control panel.
The following themes are known to be available:
* hildon-theme-alpha
* hildon-theme-beta
* hildon-theme-devel
* hildon-theme-marina
a433d945c660ddfaa41ec40a7e2d9981a31b6a45
702
701
2020-03-25T11:34:31Z
Wizzup
4
wikitext
text/x-wiki
= Theming =
Maemo Leste has multiple themes packages, and changing the theme can be done using the control panel.
The following themes are known to be available (and can be installed using apt, or the [[Status/Application_Manager|Application Manager]]:
* hildon-theme-alpha
* hildon-theme-beta
* hildon-theme-devel
* hildon-theme-marina
d277354a8c89549598512e4ad5675482ce22f007
PinePhone
0
93
715
685
2020-03-31T23:55:27Z
Stoehraj
37
/* Installation */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
The first Pinephone (braveheart) phone
== Notes ==
''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] '''
''' What you can do with the 20200223 image:'''
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* (With not yet finished userspace, terminal only) connect to 2G/3G/4G data connections
''' TODO mention/link to:'''
* USB peripheral
* Develop for Maemo Leste and work on applications that interface with modems
* Make it work on latest pine64 kernel
''' Note that: '''
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!)
* Many "games" packages in the Application Manager don't work well yet.
* For some reason the X cursor is still shows (usually it's hidden)
*
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A ||
|-
| Bluetooth || ? ||
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || N/A || !
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || lima (!)
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, not enabled by default, community is quite far along, needs to work package their work
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Should work on the modem
|}
== Installation ==
(Work in Progress)
Currently:
* .img.xz does not match .img.sha
* working out how to install .tar.gz
Unlike most phones, it's pretty simple.
Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity:
$ cat maemo-leste-*-arm64-pinephone-*.img.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
or
$ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz
Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help.
=== SD Card Installation ===
==== Prepare the SD card ====
Format the SD card as ext4 using any of your preferred tools.
====if you downloaded the .img.xz====
extract the image:
$ cp maemo-leste-*-arm64-pinephone-*.img.xz /path/to/sd-card
$ cd /path/to/sd-card
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.img.xz
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to.
In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion.
$ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img of=/dev/sdX conv=fsync
Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo.
====if you downloaded the .tar.gz====
This might work?
$ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card
$ cd /path/to/image/
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz
Then insert SD card, replace the back cover, and turn it on.
These steps should work in theory, but at the moment the image is unbootable.
=== eMMC Installation ===
==== Extract the image ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
==== Modify the image to use eMMC paths ====
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img.xz
In the output of this command, look for the '''Start''' column and multiply these values by the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
==== Install image to eMMC ====
Refer to the [https://wiki.pine64.org/index.php/PinePhone_Software_Release#Installation_to_eMMC_.28Optional.29 Pine64 Wiki].
[[Category:Device]]
036a70d651aa65258ffe48bedcdfcc0ba6e15055
716
715
2020-04-01T15:09:42Z
Stoehraj
37
/* eMMC Installation */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
The first Pinephone (braveheart) phone
== Notes ==
''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] '''
''' What you can do with the 20200223 image:'''
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* (With not yet finished userspace, terminal only) connect to 2G/3G/4G data connections
''' TODO mention/link to:'''
* USB peripheral
* Develop for Maemo Leste and work on applications that interface with modems
* Make it work on latest pine64 kernel
''' Note that: '''
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!)
* Many "games" packages in the Application Manager don't work well yet.
* For some reason the X cursor is still shows (usually it's hidden)
*
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A ||
|-
| Bluetooth || ? ||
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || N/A || !
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || lima (!)
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, not enabled by default, community is quite far along, needs to work package their work
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Should work on the modem
|}
== Installation ==
(Work in Progress)
Currently:
* .img.xz does not match .img.sha
* working out how to install .tar.gz
Unlike most phones, it's pretty simple.
Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity:
$ cat maemo-leste-*-arm64-pinephone-*.img.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
or
$ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz
Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help.
=== SD Card Installation ===
==== Prepare the SD card ====
Format the SD card as ext4 using any of your preferred tools.
====if you downloaded the .img.xz====
extract the image:
$ cp maemo-leste-*-arm64-pinephone-*.img.xz /path/to/sd-card
$ cd /path/to/sd-card
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.img.xz
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to.
In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion.
$ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img of=/dev/sdX conv=fsync
Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo.
====if you downloaded the .tar.gz====
This might work?
$ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card
$ cd /path/to/image/
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz
Then insert SD card, replace the back cover, and turn it on.
These steps should work in theory, but at the moment the image is unbootable.
=== eMMC Installation ===
==== Extract the image ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
==== Modify the image to use eMMC paths ====
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img.xz
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
==== Install image to eMMC ====
Refer to the [https://wiki.pine64.org/index.php/PinePhone_Software_Release#Installation_to_eMMC_.28Optional.29 Pine64 Wiki].
[[Category:Device]]
cd35ae2f21b196004df1eac84af6833681a55502
717
716
2020-04-01T15:10:42Z
Stoehraj
37
/* Modify the image to use eMMC paths */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
The first Pinephone (braveheart) phone
== Notes ==
''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] '''
''' What you can do with the 20200223 image:'''
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* (With not yet finished userspace, terminal only) connect to 2G/3G/4G data connections
''' TODO mention/link to:'''
* USB peripheral
* Develop for Maemo Leste and work on applications that interface with modems
* Make it work on latest pine64 kernel
''' Note that: '''
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!)
* Many "games" packages in the Application Manager don't work well yet.
* For some reason the X cursor is still shows (usually it's hidden)
*
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.4 || Mainline + some patches: https://gitlab.com/pine64-org/linux/tree/pine64-kernel-5.4.y
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A ||
|-
| Bluetooth || ? ||
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || N/A || !
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || lima (!)
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes ||
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, not enabled by default, community is quite far along, needs to work package their work
|-
| Accelerometer || ? || Available as input device, needs MCE work
|-
| Proximity sensor || ? ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Should work on the modem
|}
== Installation ==
(Work in Progress)
Currently:
* .img.xz does not match .img.sha
* working out how to install .tar.gz
Unlike most phones, it's pretty simple.
Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity:
$ cat maemo-leste-*-arm64-pinephone-*.img.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
or
$ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz
Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help.
=== SD Card Installation ===
==== Prepare the SD card ====
Format the SD card as ext4 using any of your preferred tools.
====if you downloaded the .img.xz====
extract the image:
$ cp maemo-leste-*-arm64-pinephone-*.img.xz /path/to/sd-card
$ cd /path/to/sd-card
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.img.xz
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to.
In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion.
$ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img of=/dev/sdX conv=fsync
Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo.
====if you downloaded the .tar.gz====
This might work?
$ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card
$ cd /path/to/image/
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz
Then insert SD card, replace the back cover, and turn it on.
These steps should work in theory, but at the moment the image is unbootable.
=== eMMC Installation ===
==== Extract the image ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
==== Modify the image to use eMMC paths ====
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img.xz
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install image to eMMC ====
Refer to the [https://wiki.pine64.org/index.php/PinePhone_Software_Release#Installation_to_eMMC_.28Optional.29 Pine64 Wiki].
[[Category:Device]]
4dee33ada50b1b3e4ae4d7c61ff98962efcb34cb
Tweaking
0
104
718
2020-04-06T16:24:22Z
Wizzup
4
Created page with "Maemo Leste is very tweakable/hackable/versatile, this page lists (only some) of the things you could change, hopefully grouped in a meaningful manner. * Tweaking/Battery a..."
wikitext
text/x-wiki
Maemo Leste is very tweakable/hackable/versatile, this page lists (only some) of the things you could change, hopefully grouped in a meaningful manner.
* [[Tweaking/Battery applet|Change how battery applet renders]]
f777525b140ab32254e2127fc7432e462f25ca4e
719
718
2020-04-06T17:00:07Z
Sicelo
5
24 hour time display and alternate battery charging animation
wikitext
text/x-wiki
Maemo Leste is very tweakable/hackable/versatile, this page lists some of the things you could change, hopefully grouped in a meaningful manner.
==== Battery icon ====
You can change the animation of the charging icon to show the current charge capacity:
<pre>gconftool-2 -s /apps/osso/status-area-applet-battery/show_charge_charging -t bool true</pre>
==== 24-hour clock ====
Until the clock application and/or control panel applet is working, you can display time in 24 hour mode using
<pre>gconftool-2 -s /apps/clock/time-format -t bool true</pre>
bdb0a3c7033243d0ff285aefaa0b297ff84b0d56
Development/Tasks
0
92
720
691
2020-04-06T18:00:38Z
Wizzup
4
wikitext
text/x-wiki
== Applications ==
This page lists some of the more important open issues for Maemo Leste. We have a complete list here, on github, but it's a bit hard to navigate: https://github.com/maemo-leste/bugtracker/issues
{| class="wikitable"
! Task
! Description
! Task Status
! User(s) working on task
! GH Bug
! URLs
! Notes
|-
| Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || DONE || [[User:ThomasAH]], Spinal84 || https://github.com/maemo-leste/ke-recv/pull/2 ; https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || ke-recv part for slide monitoring is in place, we just need live keyboard-attached monitoring now. https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda). mer-core (sailfish/nemomobile) has keyboard monitoring integrated into mce, so we could also look at (using) that
|-
| Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. <b>Funding is available for this task</b> || WIP/TODO || || https://github.com/maemo-leste/bugtracker/issues/261 || || Some work was done in the past
|-
| Qt5 of theme and hildon widgets || Big task, port hildon widgets and theme from qt4 to qt5. <b>Funding is available for this task</b> || WIP || [[User:freemangordon]] made a start, [[User:Wizzup]] picking up some of the work || || https://github.com/maemo-leste/qtstyleplugins/ ||
|-
| Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 ? || *MAYBE* Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || DONE (by staying at clutter 0.8) || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches ||
|-
| libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || TODO || || || ||
|-
| Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || wIP || Tony, Pavel and [[User:Wizzup]] are working on this || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 ||
|-
| Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || DONE || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ ||
|-
| Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || https://github.com/maemo-leste/bugtracker/issues/256 || https://github.com/maemo-leste/connui-cellular ||
|-
| Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || WORKS || [[User:Wizzup]], [[User:Sicelo]] || || ||
|-
| Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || WIP || ? || || ||
|-
|"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || WIP || [[User:Parazyd]] || || ||
|-
| Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || WIP || [[User:Wizzup]], tmlind || || || Actually works quite well on the droid4. Let's do the same for Droid4. :)
|-
| osso-abook || We need osso-abook in place for all applications that need contacts (phone ui, sms ui, email ui, more) || WIP || [[User:freemangordon]] || || ||
|-
| hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || DONE || [[User:minicom]], [[User:Wizzup]], [[User:Parazyd]] || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc.
|-
| Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || DONE || || || ||
|-
| Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || WIP? || [[User:freemangordon]] || || ||
|-
| Port all packages for maemo-leste to debhelper 9 or higher || Requires for us to migrate to a newer Debian (Buster) / Devuan (Beowulf) || DONE || [[User:Parazyd]], [[User:Wizzup]], [[User:meridion]], [[User:Spinal84]] || https://github.com/maemo-leste/bugtracker/issues/234 || ||
|-
|}
c993a92c4ded47a5c4860053774aef8ab7810f89
Development/Building Packages
0
80
721
667
2020-04-08T22:56:33Z
Sicelo
5
Add info about HAM's user sections and icon definitions
wikitext
text/x-wiki
= Maintenance workflow =
Each package in Maemo Leste uses a specific git-based workflow which makes it easy to track history and maintain in an easy way.
Taking the https://github.com/maemo-leste/libcal/ package as an example - a valid repository contains at least two git branches:
# master
# maemo/ascii
Ideally, the branches should have no difference, but sometimes this may vary.
Your git repository should contain your code, and a '''debian''' directory - which contains the debian package build logic.
The <i>compat</i> level of the package should be no less than '''9''' and preferably it should use '''debhelper'''.
Once you have your package ready and it builds locally on your Maemo Leste VM/device, there are just a couple more things to
do to make it ready for building on Jenkins:
== The git tag ==
In '''debian/changelog''' you should have your package version. It is very important to have a git tag that reflects this version
so Jenkins and jenkins-debian-glue can figure out which revision to build.
Keep in mind that the git tag should '''only''' contain the upstream version and no package revisions or epochs, for example if we have:
<code>libcal (0.3-2) unstable; urgency=medium</code>
Our git tag would be <i>0.3</i>, and '''not''' <i>0.3-2</i>
Once tagged, push the tag to git origin.
== gbp.conf ==
Your '''debian''' directory should contain a file called '''gbp.conf''' with the following contents:
<code>
[DEFAULT]
upstream-tag=%(version)s
</code>
Once all this is in place, make sure that you have a '''maemo/$codename''' branch containing all this ready and pushed.
= How you can build packages =
Building a packages is easier than one might think, it requires roughly the following steps:
#. Access to a Devuan/Debian system (you can use a [[Virtual_Machine|VM running Maemo Leste]] or a [[:Category:Device|Device running Maemo Leste]].
#. Source code of a package, obtain either via '''git''' or '''apt source <packagename>'''
#. Install build dependencies (run from source directory): '''sudo apt-get build-dep .'''
#. Build a package using '''dpkg-buildpackage -uc -b'''
You can now install the package you have just built with '''dpkg -i somename.deb'''
Also see: https://wiki.debian.org/HowToPackageForDebian
== Submitting changes ==
If you make changes to a package, please submit a pull request for the repository of that package, likely: https://github.com/maemo-leste/PACKAGENAME
For now, we will take care of updating tags and branches.
= How packages end up in the repository =
There are currently two repositories:
* The main repository: https://maedevu.maemo.org/leste
* The extras repository: https://maedevu.maemo.org/extras
The packages in the extras repository are not core, but useful applications nonetheless.
The codenames and an /etc/apt/sources.list file entry would look like the following:
<code>
deb https://maedevu.maemo.org/leste ascii main contrib non-free
deb https://maedevu.maemo.org/extras ascii main contrib non-free
</code>
Packages in this repository get build by Jenkins, to which a select group of people has access. (Parazyd, Wizzup, Spinal84)
== How packages are built using Jenkins ==
Read only access to the http frontend: https://phoenix.maemo.org/ (write-access can be granted)
All packages are hosted on https://github.com/maemo-leste and a current list of all the packages in Jenkins can be found here:
https://github.com/maemo-leste/jenkins-integration/blob/master/config.py
Every repository has a branch for each release, for example:
# maemo/ascii - main branch for Devuan Ascii target
# maemo/ascii-devel - optional branch for Devuan Ascii with unstable/testing version
# maemo/beowulf - main branch for Devuan Beowulf version of the package
See [[Development/Branches]] for more information on the usual branches flow.
= Maemo Leste Extras =
If you wish to maintain your own package in Maemo Leste, you can apply a package at https://github.com/maemo-leste-extras/bugtracker
Have a look at the README in that repository and open a ticket.
== Consideration for HAM ==
For packages built for extras to appear correctly in Hildon Application Manager, be aware that Maemo packaging system
included a few enhancements that HAM assumes. The most important one is that your application will '''only''' appear in HAM if the
<code>debian/control</code> file has a correct <code>section</code> clause as explained on the [https://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide/Packaging,_Deploying_and_Distributing#Sections|Maemo Packaging Wiki]. This wiki page also explains how to have HAM show your application's icon. Note that having an icon showing in HAM is a separate issue from having an icon show up in the application list (Hildon Home). The latter is done through
<code>.desktop</code> files, while the former is done in <code>debian/control</code>.
0230a2b85270f14cae7e45c5da055313b3a11880
Wishlist
0
89
724
647
2020-04-27T12:54:29Z
Sicelo
5
/* Applications */
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
{| class="wikitable"http://maemo.org/packages/view/orecchiette/
! Package name
! Done
! Reason
! User
! URL
! Notes
|-
| osso-notes || Yes (quicknote) || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Quicknote currently packaged. Usage notes - http://wiki.maemo.org/Quicknote
|-
| pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation.
|-
| scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please
|-
| [[Games/Brainparty|brainparty]] || Yes || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ ||
|-
| Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || http://maemo.org/packages/view/orecchiette/(has also Psycho Pinball installable)
|-
| Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||http://maemo.org/packages/view/orecchiette/
|-
| Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend
|-
| PDF reader || Yes || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || libhildonfm has bugs regarding file opening dialogs that need to be fixed
|-
| Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port.
|-
| Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI
|-
| Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/
|-
| Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel
|-
|Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0
|-
| Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ ||
|-
| Image viewer/editor || Yes || || [[User:Maemish]] || https://github.com/maemo-leste-extras/mihphoto ||
|-
| Mail with imap support || No || || [[User:Maemish]] || ||
|-
| RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || ||
|-
| Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ ||
|-
| OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer ||
|-
| SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net ||
|-
| Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ ||
|-
| D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ ||
|-
| Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ ||
|-
| MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms ||
|-
| Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ ||
|-
| Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed.
|-
| Firewall || No || || [[User:Maemish]] || || Something with easy configuration.
|-
| Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ ||
|-
|bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ ||
|-
| cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ ||
|-
| gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ ||
|-|-
| hamsterfiler || No || utilities/files || [[User:ric9k]] || http://maemo.org/packages/view/hamsterfiler/ ||
|-|-
| alarmed (or cron?) || No || utilities || [[User:ric9k]] || http://maemo.org/packages/view/alarmed/ ||
|-|-
| user friendly tracker || No || utilities? || [[User:ric9k]] || n/a :-) ||
|-|-
| Maps (offline) || No || Navigation || [[User:Sicelo]] || || Ideally something like https://f-droid.org/en/packages/com.github.axet.maps/ from Android, but Modrana, https://github.com/M4rtinK/modrana may be easier as a start
|-
| Orecchiette || No || calls recording || [[User:capitannemo]] || http://maemo.org/packages/view/orecchiette/ ||
|-
| Panucci || No || audiobook || [[User:capitannemo]] || http://maemo.org/packages/view/panucci/ ||
|-
| gPodder || No || podcast || [[User:capitannemo]] || http://maemo.org/packages/view/gpodder/ ||
|-
| Symfonie || No || directory-based audioplayer || [[User:capitannemo]] || http://maemo.org/packages/view/symfonie/ ||
|-
| osso-clock || No || clock and alarms application || pavel || ||
|-
| freecell4maemo || No || freecell game || pavel || ||
|-
| [http://festvox.org/index.html CMU Flite] || ? || Accessibility (TTS) || [[User:Buffer|Buffer]] ([[User talk:Buffer|talk]]) 21:48, 2 March 2020 (UTC) || https://github.com/festvox/flite ||
|)
cff6845c593e1d336637549885eaf3ec8b5115d1
User:Wizzup
2
58
725
142
2020-04-27T15:28:00Z
Wizzup
4
wikitext
text/x-wiki
I want work on the following things for the wiki:
* Device status overviews
* Device installation instructions
* A category for software packages. Something like Category:Software for a, say, the Internet Connectivity Daemon. Would be nice to have an overview of the features / software that we ship in a category
* ...
Extras wishlist:
<pre>
games
smw - http://maemo.org/downloads/product/Maemo5/smw/
warmux - http://maemo.org/downloads/product/Maemo5/wormux/
battle gweled - http://maemo.org/downloads/product/Maemo5/battlegweled/
drnoksnes (!!!)
freecell4maemo ?
prboom
bullshit bingo http://maemo.org/downloads/product/Maemo5/bullshitbingo/
puzzles http://maemo.org/downloads/product/Maemo5/sgt-puzzles/
rocks n diamond shttp://maemo.org/downloads/product/Maemo5/rocksndiamonds/
uae4all - make it work well
neverball - http://maemo.org/downloads/product/Maemo5/neverball/
graphics
mypaint (?)
raw viewer? http://maemo.org/downloads/product/Maemo5/mrawviewer/
multimedia
cool players
qspot http://maemo.org/downloads/product/Maemo5/qspot/
recorder http://maemo.org/downloads/product/Maemo5/recorder/
qmidictl http://maemo.org/downloads/product/Maemo5/qmidictl/
maetronome http://maemo.org/downloads/product/Maemo5/maetronome/
location and navigation
modrana
marble? http://maemo.org/downloads/product/Maemo5/marble/
marble maps? http://maemo.org/downloads/product/Maemo5/marble-maps/
maep for sure http://maemo.org/downloads/product/Maemo5/maep/
gps track logger http://maemo.org/downloads/product/Maemo5/gps-data-logger/
OSM2Go - http://maemo.org/downloads/product/Maemo5/osm2go/
interessant http://maemo.org/downloads/product/Maemo5/snuggle/
internet and networking
google voice dialer written in Qt http://maemo.org/downloads/product/Maemo5/qgvdial/
google voice http://maemo.org/downloads/product/Maemo5/dialcentral/
twitter clienter http://maemo.org/downloads/product/Maemo5/khweeteur/
zoutube -- http://maemo.org/downloads/product/Maemo5/zoutube/
witter -- twitter client in python http://maemo.org/downloads/product/Maemo5/witter/
vncviewer -- http://maemo.org/downloads/product/Maemo5/vncviewer/
wifi eye http://maemo.org/downloads/product/Maemo5/wifieye/
qnetman -- http://maemo.org/downloads/product/Maemo5/qnetman/
xchat irc http://maemo.org/downloads/product/Maemo5/xchat/
office
xournal http://maemo.org/downloads/product/Maemo5/xournal/
quicknote http://maemo.org/downloads/product/Maemo5/quicknote/
mebook http://maemo.org/downloads/product/Maemo5/mebook/
portabase? http://maemo.org/downloads/product/Maemo5/portabase/
other
--
science
orrery -- http://maemo.org/downloads/product/Maemo5/orrery/
accdisplay http://maemo.org/downloads/product/Maemo5/accdisplay/
system
(lots of themes)
theme-customizer -- http://maemo.org/downloads/product/Maemo5/theme-customizer/
DONE matrix theme -- http://maemo.org/downloads/product/Maemo5/matrix-pr12/
borg sounds -- http://maemo.org/downloads/product/Maemo5/borg-sounds/
DONE okuda theme -- http://maemo.org/downloads/product/Maemo5/hildon-theme-okuda/
cellular modem control buttons -- http://maemo.org/downloads/product/Maemo5/cell-modem-ui/
qtlockscreen -- http://maemo.org/downloads/product/Maemo5/qtlockscreen/
maemeemo theme -- http://maemo.org/downloads/product/Maemo5/maemeemo-theme/
extra translations / languages
</pre>
37b70481ce9be677d29c596157e261e3b61513c9
Getting Started
0
105
733
2020-05-20T17:14:11Z
Brabo
38
Created page with "= Useful Bits = * Default lockcode is "12345" * Lockcode can only be changed if your hardware has CAL. QEMU does not have CAL. Droid 4 also not. = Tweaking = See [[Tweaking]]"
wikitext
text/x-wiki
= Useful Bits =
* Default lockcode is "12345"
* Lockcode can only be changed if your hardware has CAL. QEMU does not have CAL. Droid 4 also not.
= Tweaking =
See [[Tweaking]]
13888dd96a987ce2c38c992bcffc0c5be0a50cc2
Status/USB Peripheral
0
73
734
637
2020-05-21T18:50:45Z
Sicelo
5
use iproute2 commands
wikitext
text/x-wiki
Currently, devices that are supported by Maemo Leste will automatically set up USB networking if you plug them into a PC.
Mass Storage may show as an option, but doesn't do anything useful yet.
== Bringing up network on your PC ==
After plugging USB from your device into your PC, issue:
<pre>
ip link set usb0 up # this one might not really be necessary
ip address add 192.168.42.1/24 dev usb0
ssh root@192.168.42.2
</pre>
== Share PC network with Leste device ==
To also have the devices use your PC network, log into the devices:
The default password is <code>toor</code>. (user: <code>root</code>)
And then add the following route on the device:
<pre>
ip route add default via 192.168.42.1
# if this fails, first run ip route del default
</pre>
On your PC, issue:
<pre>
# (Maybe only one of these two echos is necessary)
echo 1 > /proc/sys/net/ipv4/conf/usb0/forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -A POSTROUTING -t nat -s 192.168.42.2/32 -j MASQUERADE
</pre>
Make sure that forwarding is also allowed within iptables itself, enable it with <code>iptables --policy FORWARD ACCEPT</code>
Now your Leste device should be able to use your PC network
== Notes ==
* The default IP address is configured in <code>/usr/sbin/pcsuite-enable.sh</code>
22e4b7684227f8c22f2c412967b9d34a2a8f7401
Development
0
61
735
687
2020-05-21T19:04:55Z
Sicelo
5
We are on Beowulf/Buster now
wikitext
text/x-wiki
Maemo Leste development is split up in a few different places.
== Communication and organising ==
* Our https://maemo-leste.github.io website is where we post (news) updates, as well as on talk.maemo.org (see this subforum https://talk.maemo.org/forumdisplay.php?f=66 and this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192)
* There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker
* The day-to-day development and user chatter mostly takes place in the [[IRC channel]]
* We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
* This wiki: for documenting the status of various long-running projects, status per device, etc.
== Task Summary ==
For current (semi) impactful tasks, see
[[Development/Tasks]]
== Codename ==
* Maemo Leste is currently based on Devuan Beowulf, which is based on Debian Buster.
== Guides ==
* [[Development/Porting Packages]]
* [[Development/Building Packages]]
* [[Development/Modified Software]]
* [[Development/Device Bringup]]
* https://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide
== Technical ==
All our git repositories can be found here: https://github.com/maemo-leste
=== Jenkins ===
To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/
=== Developing on a device ===
Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM)
The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]].
=== Crossbuilding ===
Multiarch is an ability present on modern Debian systems that allows you to build native packages for different architectures. This is nice because you can build packages for an ARM based phone using the full power of your x86 based PC/Mac/Notebook or a server.
Here we show how you can easily setup a multiarch environment and build a native package for Maemo Leste running on Nokia N900. We are going to make a container (chroot) for this job. It's because we don't want to pollute our main system.
# Make a container for our development system
DIR=/var/lib/container/stretch
sudo apt-get install qemu-user-static debootstrap &&
sudo debootstrap stretch $DIR http://deb.debian.org/debian &&
echo "strech_cross" | sudo tee $DIR/etc/debian_chroot &&
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR
# Setup build environment inside the container
cat >> ~/.bashrc << EOF &&
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
export CC=arm-linux-gnueabihf-gcc
export JOBS=$(grep processor /proc/cpuinfo | wc -l)
EOF
dpkg --add-architecture armhf &&
apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates &&
cat >> /etc/apt/sources.list << "EOF" &&
deb http://maedevu.maemo.org/leste ascii main contrib non-free n900
deb http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900
deb-src http://deb.debian.org/debian stretch main
deb-src http://maedevu.maemo.org/leste ascii main contrib non-free n900
deb-src http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900
EOF
wget https://maedevu.maemo.org/testing-key.asc &&
apt-key add testing-key.asc &&
rm -f testing-key.asc &&
rm -f /var/cache/apt/archives/*.deb &&
apt-get update &&
exec bash
# Build Xorg for Nokia N900
apt-get source xserver-xorg-core &&
cd xorg-server-1.19.2 &&
wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch &&
mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches &&
echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series &&
apt-get -y build-dep -a armhf . &&
time dpkg-buildpackage -aarmhf -j$JOBS -b &&
echo OK || echo FAIL
To login the container later:
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch
To remove the container:
sudo rm -fr /var/lib/container/stretch
=== Cross-distro solution for development inside an ARM/ARM64 chroot on a PC ===
It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices.
1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]:
$ sudo apt-get install qemu-user-static binfmt-support
The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''':
$ sudo update-binfmts --display qemu-arm
qemu-arm (enabled):
package = qemu-user-static
type = magic
offset = 0
magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00
mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff
interpreter = /usr/bin/qemu-arm-static
detector =
2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it:
$ mkdir leste-arm64
$ cd leste-arm64
$ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf -
3. From the same directory, configure the chroot with a few resources from your host system:
$ sudo mount -t proc proc proc
$ sudo mount -o bind /dev dev
$ sudo mount -o bind /dev/pts dev/pts
4. From the same directory, create a symlink for the mount table:
$ sudo ln -s /proc/mounts etc/mtab
5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user:
$ sudo LC_ALL=C chroot . /bin/su - user
You'll now be ready to use your Maemo Leste ARM64 development environment:
$ uname -m
aarch64
Once you have finished with it, you can exit and unmount the resources you previously mounted:
$ exit
$ sudo umount dev/pts dev proc
=== TODO ===
* Discuss where people look to pick up issues (clear answer is the bugtracker, but still)
* How people can make changes and how to send them in
6e553228360df9b977509d63f3b3f6ccb7a7611e
IRC channel
0
54
736
424
2020-05-21T19:10:36Z
Sicelo
5
wikitext
text/x-wiki
We are on '''irc.freenode.net''' ; channel '''#maemo-leste'''
You can connect from your browser using the [https://webchat.freenode.net/ webchat]. However, a dedicated IRC client is recommended for long-term use.
We want everyone to feel free in our channel, but also remain productive. Therefore, while we do not 'police' the channel, it is also good etiquette to remain on-topic as far as possible.
aca089ba72c8e4ab3b2cb3939afdfeb36b7a1842
Nokia N900
0
48
739
686
2020-05-21T19:29:51Z
Sicelo
5
reorder table rows to make comparisons between Droid 4 and N900 easier
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The original Nokia N900.
== Notes ==
* If your battery is not calibrated, the battery applet will not give you any data. Charge the battery fully, and then let it discharge (almost) completely.
* Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful.
Also see: https://elinux.org/N900
Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing non-free firmware
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || Yes || Works fast(!)
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters)
|-
| Bluetooth || No || Driver problems in mainline
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on Bluetooth. [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/staging?id=757c2bf597a8e9f859f8efceda9c5108607fd98d Removed in Linux 5.4-rc1.]
|-
| Accelerometer || Not yet || Available as input device, needs MCE work
|-
| Compass || N/A || Missing in hardware
|-
| Proximity sensor || Not yet ||
|-
| Ambient Light Sensor || Not yet ||
|-
| Vibration Motor || Yes || No integration yet
|-
| HDMI-out || N/A || Missing in hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || WIP || Works using gps3 and gpsd, needs integration still
|-
| Infrared || Yes || TX only (hardware limitation).
|}
== Installation ==
Images: http://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to use/install Fremantle, or want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''.
To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Power Management ==
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't attach the charger.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
[[Category:Device]]
cf405b1de473056836c42aa630e01351c9603d81
741
739
2020-05-21T19:43:31Z
Sicelo
5
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5"
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The original Nokia N900.
== Notes ==
* If your battery is not calibrated, the battery applet will not give you any data. Charge the battery fully, and then let it discharge (almost) completely.
* Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful.
Also see: https://elinux.org/N900
Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing non-free firmware
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || Yes || Works fast(!)
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters)
|-
| Bluetooth || No || Driver problems in mainline
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on Bluetooth. [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/staging?id=757c2bf597a8e9f859f8efceda9c5108607fd98d Removed in Linux 5.4-rc1.]
|-
| Accelerometer || Not yet || Available as input device, needs MCE work
|-
| Compass || N/A || Missing in hardware
|-
| Proximity sensor || Not yet ||
|-
| Ambient Light Sensor || Not yet ||
|-
| Vibration Motor || Yes || No integration yet
|-
| HDMI-out || N/A || Missing in hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || WIP || Works using gps3 and gpsd, needs integration still
|-
| Infrared || Yes || TX only (hardware limitation).
|}
== Installation ==
Images: http://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to use/install Fremantle, or want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''.
To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Power Management ==
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't attach the charger.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
[[Category:Device]]
e566599c53d38b6f4ad4ee3a8ff8227017e3aa81
742
741
2020-05-21T19:44:59Z
Sicelo
5
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The original Nokia N900.
== Notes ==
* If your battery is not calibrated, the battery applet will not give you any data. Charge the battery fully, and then let it discharge (almost) completely.
* Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful.
Also see: https://elinux.org/N900
Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing non-free firmware
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || Yes || Works fast(!)
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters)
|-
| Bluetooth || No || Driver problems in mainline
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on Bluetooth. [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/staging?id=757c2bf597a8e9f859f8efceda9c5108607fd98d Removed in Linux 5.4-rc1.]
|-
| Accelerometer || Not yet || Available as input device, needs MCE work
|-
| Compass || N/A || Missing in hardware
|-
| Proximity sensor || Not yet ||
|-
| Ambient Light Sensor || Not yet ||
|-
| Vibration Motor || Yes || No integration yet
|-
| HDMI-out || N/A || Missing in hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || WIP || Works using gps3 and gpsd, needs integration still
|-
| Infrared || Yes || TX only (hardware limitation).
|}
== Installation ==
Images: http://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to use/install Fremantle, or want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''.
To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Power Management ==
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't attach the charger.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
[[Category:Device]]
dd5cfd7f4694de9dc2d2ef901ae45ce72b8f4c89
743
742
2020-05-21T19:45:49Z
Sicelo
5
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The original Nokia N900.
== Notes ==
* If your battery is not calibrated, the battery applet will not give you any data. Charge the battery fully, and then let it discharge (almost) completely.
* Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful.
Also see: https://elinux.org/N900
Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing non-free firmware
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || Yes || Works fast(!)
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters)
|-
| Bluetooth || No || Driver problems in mainline
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on Bluetooth. [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/staging?id=757c2bf597a8e9f859f8efceda9c5108607fd98d Removed in Linux 5.4-rc1.]
|-
| Accelerometer || Not yet || Available as input device, needs MCE work
|-
| Compass || N/A || Missing in hardware
|-
| Proximity sensor || Not yet ||
|-
| Ambient Light Sensor || Not yet ||
|-
| Vibration Motor || Yes || No integration yet
|-
| HDMI-out || N/A || Missing in hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || WIP || Works using gps3 and gpsd, needs integration still
|-
| Infrared || Yes || TX only (hardware limitation).
|}
== Installation ==
Images: http://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to use/install Fremantle, or want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''.
To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Power Management ==
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't attach the charger.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
[[Category:Device]]
ac1a09c6709c0500d83b0421424b16b74270a8c5
744
743
2020-05-21T19:50:45Z
Sicelo
5
/* Battery calibration */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The original Nokia N900.
== Notes ==
* If your battery is not calibrated, the battery applet will not give you any data. Charge the battery fully, and then let it discharge (almost) completely.
* Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful.
Also see: https://elinux.org/N900
Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing non-free firmware
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || Yes || Works fast(!)
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters)
|-
| Bluetooth || No || Driver problems in mainline
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on Bluetooth. [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/staging?id=757c2bf597a8e9f859f8efceda9c5108607fd98d Removed in Linux 5.4-rc1.]
|-
| Accelerometer || Not yet || Available as input device, needs MCE work
|-
| Compass || N/A || Missing in hardware
|-
| Proximity sensor || Not yet ||
|-
| Ambient Light Sensor || Not yet ||
|-
| Vibration Motor || Yes || No integration yet
|-
| HDMI-out || N/A || Missing in hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || WIP || Works using gps3 and gpsd, needs integration still
|-
| Infrared || Yes || TX only (hardware limitation).
|}
== Installation ==
Images: http://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to use/install Fremantle, or want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''.
To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Power Management ==
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
[[Category:Device]]
92ac944ef627e18a9e50403c7578ae3ab7437fa1
Leste FAQ
0
62
745
631
2020-05-22T19:35:37Z
Derby
3
State that Maemo Leste uses mainline Linux in the description under "What is Maemo Leste?"
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is an operating system based on GNU/Linux that is currently in development. It is aimed at mobile devices with touch screens such as smartphones, tablets and PDAs.
It is built on top of '''[https://devuan.org/ Devuan]''', and thus indirectly based on [https://www.debian.org/ Debian]. Essentially, it is a modernised and liberated version of '''[https://en.wikipedia.org/wiki/Maemo#Maemo_5 Maemo 5/Fremantle]'''; the last version of the mobile Linux OS from Nokia that was released in 2009 for the [https://en.wikipedia.org/wiki/Nokia_N900 Nokia N900] internet tablet/smartphone. Unlike its predecessor which only ran on a single device, Maemo Leste runs on a variety of devices. It also uses a '''[[#What_is_mainline_Linux.3F|mainline Linux]]''' kernel.
In Maemo Leste, closed-source packages that originate from Fremantle have been reversed engineered, liberated, updated and rebuilt; whilst open-source Fremantle packages have been updated to newer libraries and APIs, including [https://en.wikipedia.org/wiki/Hildon Hildon], the mobile user interface from Fremantle.
Building on top an actively developed Linux distribution makes Maemo Leste maintenance sustainable. Fremantle was built on top of Debian packages forked from several versions of Debian, leaving the onus on Nokia to maintain every single package. Leste however, utilises Devuan's package repositories meaning that much of the heavy lifting is already done by upstream; we only have to manage and maintain a limited set of packages. This also gives us the benefit of having access to over 20,000 packages from upstream, immediately available for installation in Maemo Leste.
All in all, Maemo Leste aims to provide an unconstrained and free mobile Linux distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
Today's smartphone industry is dominated by the duopoly of Apple and Google with their iOS and Android operating systems. This leaves those of us who value information privacy and software freedoms with virtually no options when it comes to choosing a smartphone. Some pretenders have tried to change this but have ultimately [[#How_about_other_popular_non-Android_mobile_Linux_distributions.3F|fallen short in some areas]]. Maemo Leste aims to put an end to this dire situation. We provide a ''true'' GNU/Linux experience which evolves along with the base Linux distribution from which it is built on top of. Maemo Leste is the only multi-device mobile Linux distribution that prioritises the use of mainline Linux. We hope that Maemo Leste will help to raise awareness of the [[#Why_is_it_important_to_run_mainline_Linux.3F|importance of running mainline Linux]] which may eventually lead to increased consumer demand for devices that are compatible with mainline Linux, leading to improved options when choosing a smartphone.
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle.
We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired.
Halium uses kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long-term supported stable releases.
=== What's wrong with Android (vendor) kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained by vendors with almost no effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices on the market, all with kernels based on Linux; yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline].
=== Does Maemo Leste run with pure mainline Linux? ===
The primary devices that we support can run with a pure mainline Linux kernel, however right now our images use mainline plus a few patches. As we are still in the early phases of development, our current priority is to ensure that our supported devices are as fully functional as they can possibly be, thus the additional patches help to achieve this. We have already upstreamed some of our patches and our goal is to upstream the remaining ones to be able to switch to using a 100% mainline kernel on our devices.
=== Is Maemo Leste completely free? ===
Unfortunately not. There is still no smartphone available that is fully functional without the use of [https://en.wikipedia.org/wiki/Proprietary_device_driver binary blobs]. Our primary supported devices currently require closed firmware to be able to use Wi-Fi and Bluetooth, and the TI OMAP-based devices have integrated PowerVR video hardware which require closed user space drivers for video acceleration. It's an unfortunate state of affairs, however progress is being made, and the PinePhone is a great example of this as it can have video acceleration with the Lima driver which is 100% free software.
Our current goal is to provide full functionality for our supported devices, however there are plans to additionally provide a blob-free, libre version of Maemo Leste with missing functionality where blobs are required.
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]).
=== How about other popular non-Android mobile Linux distributions? ===
The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided.
One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution.
Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland.
Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_kernels.3F|Android kernels]], preferring to prioritise device compatibility and ease of device porting, instead of prioritising software freedoms.
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticeable in the project).
Maemo Fremantle uses the ''upstart'' init system. We initially chose Devuan because we figured Devuan might support upstart to some degree as well, so we would not have to deal with rewriting the init scripts (although we ended up rewriting them anyway as Maemo Leste now uses OpenRC). Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate; there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== Can Maemo Leste work with a Debian/systemd base? ===
Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste.
=== musl libc kicks arse. Can I use Maemo Leste with musl? ===
We love musl libc too. musl provides a lean, efficient and standards-compliant implementation of libc. What's not to like? Well unfortunately a lot of software built for Linux is glibc-dependent and is not standards-compliant. Rebuilding this software with musl can result in unexpected runtime behaviour or bugs. musl would be an extra hurdle that we don't really need right now. Still, it would be nice to one day see Maemo Leste rebuilt against musl and might make for an interesting future project, but until then, make sure you check out postmarketOS.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve. As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
=== Are ARM packages Thumb-compiled? ===
Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb
95ea63b22bbbec74d6c52c23a05f8ca2312514bc
Nokia N900
0
48
746
744
2020-05-24T14:22:35Z
Sicelo
5
There's no other N900 version or sequel :-)
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The Nokia N900.
== Notes ==
* If your battery is not calibrated, the battery applet will not give you any data. Charge the battery fully, and then let it discharge (almost) completely.
* Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful.
Also see: https://elinux.org/N900
Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing non-free firmware
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || Yes || Works fast(!)
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters)
|-
| Bluetooth || No || Driver problems in mainline
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on Bluetooth. [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/staging?id=757c2bf597a8e9f859f8efceda9c5108607fd98d Removed in Linux 5.4-rc1.]
|-
| Accelerometer || Not yet || Available as input device, needs MCE work
|-
| Compass || N/A || Missing in hardware
|-
| Proximity sensor || Not yet ||
|-
| Ambient Light Sensor || Not yet ||
|-
| Vibration Motor || Yes || No integration yet
|-
| HDMI-out || N/A || Missing in hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || WIP || Works using gps3 and gpsd, needs integration still
|-
| Infrared || Yes || TX only (hardware limitation).
|}
== Installation ==
Images: http://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to use/install Fremantle, or want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''.
To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Power Management ==
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
[[Category:Device]]
cabae2bf5f2acb73cdc35cbbe8cec9b3975a5d94
747
746
2020-05-24T14:23:36Z
Sicelo
5
Move "Notes" to later in the page
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The Nokia N900.
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing non-free firmware
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || Yes || Works fast(!)
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters)
|-
| Bluetooth || No || Driver problems in mainline
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on Bluetooth. [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/staging?id=757c2bf597a8e9f859f8efceda9c5108607fd98d Removed in Linux 5.4-rc1.]
|-
| Accelerometer || Not yet || Available as input device, needs MCE work
|-
| Compass || N/A || Missing in hardware
|-
| Proximity sensor || Not yet ||
|-
| Ambient Light Sensor || Not yet ||
|-
| Vibration Motor || Yes || No integration yet
|-
| HDMI-out || N/A || Missing in hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || WIP || Works using gps3 and gpsd, needs integration still
|-
| Infrared || Yes || TX only (hardware limitation).
|}
== Installation ==
Images: http://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to use/install Fremantle, or want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''.
To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Notes ==
* If your battery is not calibrated, the battery applet will not give you any data. Charge the battery fully, and then let it discharge (almost) completely.
* Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful.
Also see: https://elinux.org/N900
Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
== Power Management ==
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
[[Category:Device]]
a2cc89f2fd127504bf5bed0719a9b6eb247e67d1
Status/Mobile Data
0
75
748
391
2020-05-26T14:41:42Z
Brabo
38
wikitext
text/x-wiki
Relevant tickets:
* https://github.com/maemo-leste/bugtracker/issues/76
* https://github.com/maemo-leste/bugtracker/issues/151
* https://github.com/maemo-leste/bugtracker/issues/195
* https://github.com/maemo-leste/bugtracker/issues/196
We will need the following:
* <s>RE of the current data icd2 plugin from Fremantle (as starting base)</s>
* <s>Code to interface with ofono, resulting in libicd-network-ofono</s> (WIP)
* <s>Connui UI plugins for gprs and port it to ofono https://github.com/maemo-leste/connui-cellular</s> (WIP)
* <s>Database of various mobile operations and their default APN information</s> in connui-cellular and ofono
* <s>Hardware/driver support</s> (working for various devices)
Useful resources/hw/links:
* https://wiki.maemo.org/User:Jebba/Ofono#Using_oFono_in_Pass_thru_mode (pass through n900 modem with ofono, works for non-data only)
* An USB modem for testing (like Option modems)
* ofono: https://01.org/ofono
Olimex 3g modem (should also do voice calls), should work with ofono:
* https://www.olimex.com/Products/USB-Modules/MOD-USB3G/
* https://aleksander.es/data/Qualcomm%20Gobi%20devices%20on%20Linux.pdf
USB passthrough on QEMU can work like this (note -device usb-ehci and -device usb-host), pick proper product/vendor IDs:
<pre>
sudo qemu-system-x86_64 -hda \
/ext4/leste/maemo-leste-1.0-amd64-virtual-20181102.qcow2 \
-vga virtio -enable-kvm -cpu host -smp cores=2 -m 4096 \
-nic user,hostfwd=tcp:127.0.0.1:7722-:22 -display gtk \
-usb -device usb-ehci,id=ehci \
-device usb-host,bus=ehci.0,vendorid=0x2c7c,productid=0x0125 \
-device usb-host,bus=ehci.0,vendorid=0x13d3,productid=0x3346 \
-monitor stdio
</pre>
Modems from Pine64 Devkits work with ofono:
* http://wiki.pine64.org/index.php/Project_Anakin
* http://wiki.pine64.org/index.php/Project_Don't_be_evil
1361b01220e6940720344f5e63e34f16d100d411
Virtual Machine
0
60
749
645
2020-05-26T15:38:44Z
Brabo
38
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Generic
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
Generic virtual machine target. This is particularly useful when doing development and testing.
== Installation ==
https://maedevu.maemo.org/images/virtual-machines/
There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration.
Converting the qcow2 image to raw allows it to be used on real hardware.
=== VirtualBox ===
Download latest .vdi.xz image, unpack it with "xz -d" command.
Create new Virtual Machine, select "Debian (64-bit)" and 1024MB RAM. Use the downloaded file as virtual hard disk.
You are done!
=== QEMU ===
In general something like
qemu-system-x86_64 -hda maemo-leste-1.0-amd64.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024
should work. But there seem to be issues with some QEMU versions, for more details see [https://github.com/maemo-leste/bugtracker/issues/198 issue#198].
To set up a port forward for SSH, add:
-nic user,hostfwd=tcp:127.0.0.1:7722-:22
And then log in like this (password: <code>toor</code>):
ssh root@localhost -p 7722
If you have a USB modem you can also use that in QEMU. You can either use sudo to elevate your privileges to be able to use it:
sudo qemu-system-x86_64 -hda maemo-leste-1.0-amd64-virtual-20200324.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024 \
-nic user,hostfwd=tcp:127.0.0.1:7722-:22 \
-usb -device usb-ehci,id=ehci \
-device usb-host,bus=ehci.0,vendorid=0x0bdb,productid=0x193e
Or you can make a udev rule for your device. For example, with a Lenovo Ericsson N5321 gw you can create "/etc/udev/rules.d/45-n5321.rules" with this in it:
# Lenovo Ericsson N5321 gw simple udev rule
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="193e", \
MODE:="0666"
And then activate it by running these two commands as root:
# udevadm control --reload-rules
# udevadm trigger
Now you can run QEMU without the need for sudo!
=== Real hardware ===
The contents of the <code>qcow2</code> file can be extracted and copied into hard drives for bare metal BIOS/Legacy CSM booting.
To extract the contents of the <code>qcow2</code> file, decompress it first and convert it into <code>raw</code> format.
$ xz -d maemo-leste-1.0-amd64-virtual-20180425.qcow2.xz
$ qemu-img convert -f qcow2 -O raw maemo-leste-1.0-amd64-virtual-20180425.qcow2 maemo-leste-1.0-amd64-virtual-20180425.raw
The raw image that it yields, can then be setup as a loopback device, and its partitions mounted.
# losetup --partscan -f maemo-leste-1.0-amd64-virtual-20180425.raw
# mkdir /mnt/maemo-virt
# mount /dev/loop0p1 /mnt/maemo-virt
Setup one <code>Linux</code> partition on the device to be used for booting, format it with a GRUB-compatible filesystem (<i>ext4</i>, for example), then mount it as well.
# cfdisk /dev/sdb
# ...
# mkfs.ext4 /dev/sdb1
# mkdir /mnt/maemo-bare
# mount /dev/sdb1 /mnt/maemo-bare
Change directory to the loop partition, the copy over its contents into the bare metal partition.
# cd /mnt/maemo-virt
# rsync -aAHXv * /mnt/maemo-bare
Once finished copying, bind mount special filesystems into the bare metal Maemo partition, then change root.
# mount --bind /dev /mnt/maemo-bare/dev
# mount --bind /proc /mnt/maemo-bare/proc
# mount --bind /sys /mnt/maemo-bare/sys
# chroot /mnt/maemo-bare /bin/bash
Load the new root's shell profile, install GRUB to the bare metal boot device (<i>/dev/sdb</i>, in this example), then regenerate the GRUB configuration file.
# . /etc/profile
# grub-install /dev/sdb
# grub-mkconfig -o /boot/grub/grub.cfg
After that, you may exit the chroot environment (Ctrl+D), unmount all the filesystems, then reboot the system into your new bare metal Maemo Leste installation.
# umount /mnt/maemo-virt
# umount -AR /mnt/maemo-bare
# reboot
== Initial configuration ==
On the first run you may want to generate ssh host keys and set the timezone. To do so open the "X Terminal" application and run:
sudo su -
dpkg-reconfigure openssh-server
dpkg-reconfigure tzdata
Make the system up-to-date:
apt update
apt upgrade
apt install linux-image-amd64
reboot
To get networking to work (at least in virtualbox), launch a shell and do
sudo ifconfig eth0 up
sudo dhclient eth0
[[Category:Device]]
f1125888fcff52daa36a3f462332fce8de424df8
750
749
2020-05-26T20:23:53Z
Sicelo
5
/* QEMU */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Generic
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
Generic virtual machine target. This is particularly useful when doing development and testing.
== Installation ==
https://maedevu.maemo.org/images/virtual-machines/
There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration.
Converting the qcow2 image to raw allows it to be used on real hardware.
=== VirtualBox ===
Download latest .vdi.xz image, unpack it with "xz -d" command.
Create new Virtual Machine, select "Debian (64-bit)" and 1024MB RAM. Use the downloaded file as virtual hard disk.
You are done!
=== QEMU ===
In general something like
qemu-system-x86_64 -hda maemo-leste-1.0-amd64.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024
should work. But there seem to be issues with some QEMU versions, for more details see [https://github.com/maemo-leste/bugtracker/issues/198 issue#198].
To set up a port forward for SSH, add:
-nic user,hostfwd=tcp:127.0.0.1:7722-:22
And then log in like this (password: <code>toor</code>):
ssh root@localhost -p 7722
If the mouse pointer is grabbed and no cursor shows, you can add
-usb -device usb-tablet
to the command line
If you have a USB modem you can also use that in QEMU. You can either use sudo to elevate your privileges to be able to use it:
sudo qemu-system-x86_64 -hda maemo-leste-1.0-amd64-virtual-20200324.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024 \
-nic user,hostfwd=tcp:127.0.0.1:7722-:22 \
-usb -device usb-ehci,id=ehci \
-device usb-host,bus=ehci.0,vendorid=0x0bdb,productid=0x193e
Or you can make a udev rule for your device. For example, with a Lenovo Ericsson N5321 gw you can create "/etc/udev/rules.d/45-n5321.rules" with this in it:
# Lenovo Ericsson N5321 gw simple udev rule
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="193e", \
MODE:="0666"
And then activate it by running these two commands as root:
# udevadm control --reload-rules
# udevadm trigger
Now you can run QEMU without the need for sudo!
=== Real hardware ===
The contents of the <code>qcow2</code> file can be extracted and copied into hard drives for bare metal BIOS/Legacy CSM booting.
To extract the contents of the <code>qcow2</code> file, decompress it first and convert it into <code>raw</code> format.
$ xz -d maemo-leste-1.0-amd64-virtual-20180425.qcow2.xz
$ qemu-img convert -f qcow2 -O raw maemo-leste-1.0-amd64-virtual-20180425.qcow2 maemo-leste-1.0-amd64-virtual-20180425.raw
The raw image that it yields, can then be setup as a loopback device, and its partitions mounted.
# losetup --partscan -f maemo-leste-1.0-amd64-virtual-20180425.raw
# mkdir /mnt/maemo-virt
# mount /dev/loop0p1 /mnt/maemo-virt
Setup one <code>Linux</code> partition on the device to be used for booting, format it with a GRUB-compatible filesystem (<i>ext4</i>, for example), then mount it as well.
# cfdisk /dev/sdb
# ...
# mkfs.ext4 /dev/sdb1
# mkdir /mnt/maemo-bare
# mount /dev/sdb1 /mnt/maemo-bare
Change directory to the loop partition, the copy over its contents into the bare metal partition.
# cd /mnt/maemo-virt
# rsync -aAHXv * /mnt/maemo-bare
Once finished copying, bind mount special filesystems into the bare metal Maemo partition, then change root.
# mount --bind /dev /mnt/maemo-bare/dev
# mount --bind /proc /mnt/maemo-bare/proc
# mount --bind /sys /mnt/maemo-bare/sys
# chroot /mnt/maemo-bare /bin/bash
Load the new root's shell profile, install GRUB to the bare metal boot device (<i>/dev/sdb</i>, in this example), then regenerate the GRUB configuration file.
# . /etc/profile
# grub-install /dev/sdb
# grub-mkconfig -o /boot/grub/grub.cfg
After that, you may exit the chroot environment (Ctrl+D), unmount all the filesystems, then reboot the system into your new bare metal Maemo Leste installation.
# umount /mnt/maemo-virt
# umount -AR /mnt/maemo-bare
# reboot
== Initial configuration ==
On the first run you may want to generate ssh host keys and set the timezone. To do so open the "X Terminal" application and run:
sudo su -
dpkg-reconfigure openssh-server
dpkg-reconfigure tzdata
Make the system up-to-date:
apt update
apt upgrade
apt install linux-image-amd64
reboot
To get networking to work (at least in virtualbox), launch a shell and do
sudo ifconfig eth0 up
sudo dhclient eth0
[[Category:Device]]
60b7330d636df5a68b7810d50b90e478a43273d7
752
750
2020-05-27T12:45:39Z
Brabo
38
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Generic
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
Generic virtual machine target. This is particularly useful when doing development and testing.
== Installation ==
https://maedevu.maemo.org/images/virtual-machines/
There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration.
Converting the qcow2 image to raw allows it to be used on real hardware.
=== VirtualBox ===
Download latest .vdi.xz image, unpack it with "xz -d" command.
Create new Virtual Machine, select "Debian (64-bit)" and 1024MB RAM. Use the downloaded file as virtual hard disk.
You are done!
=== QEMU ===
In general something like
qemu-system-x86_64 -hda maemo-leste-1.0-amd64.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024
should work. But there seem to be issues with some QEMU versions, for more details see [https://github.com/maemo-leste/bugtracker/issues/198 issue#198].
To set up a port forward for SSH, add:
-nic user,hostfwd=tcp:127.0.0.1:7722-:22
And then log in like this (password: <code>toor</code>):
ssh root@localhost -p 7722
If the mouse pointer is grabbed and no cursor shows, you can add
-usb -device usb-tablet
to the command line
If you have a USB modem you can also use that in QEMU. You can either use sudo to elevate your privileges to be able to use it:
sudo qemu-system-x86_64 -hda maemo-leste-1.0-amd64-virtual-20200324.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024 \
-nic user,hostfwd=tcp:127.0.0.1:7722-:22 \
-usb -device usb-ehci,id=ehci \
-device usb-host,bus=ehci.0,vendorid=0x0bdb,productid=0x193e
Or you can make a udev rule for your device. For example, with a Lenovo Ericsson N5321 gw you can create "/etc/udev/rules.d/45-n5321.rules" with this in it:
# Lenovo Ericsson N5321 gw simple udev rule
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="193e", \
MODE:="0666"
And then activate it by running these two commands as root:
# udevadm control --reload-rules
# udevadm trigger
Now you can run QEMU without the need for sudo!
== Initial configuration ==
On the first run you may want to generate ssh host keys and set the timezone. To do so open the "X Terminal" application and run:
sudo su -
dpkg-reconfigure openssh-server
dpkg-reconfigure tzdata
Make the system up-to-date:
apt update
apt upgrade
apt install linux-image-amd64
reboot
To get networking to work (at least in virtualbox), launch a shell and do
sudo ifconfig eth0 up
sudo dhclient eth0
[[Category:Device]]
e46e06f5c9ad788ca6a891bf8a4935db20a88db6
753
752
2020-05-27T13:20:26Z
Brabo
38
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Generic
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
Generic virtual machine target. This is particularly useful when doing development and testing.
== Installation ==
https://maedevu.maemo.org/images/virtual-machines/
There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration.
Converting the qcow2 image to raw allows it to be used on real hardware.
=== VirtualBox ===
Download latest .vdi.xz image, unpack it with "xz -d" command.
Create new Virtual Machine, select "Debian (64-bit)" and 1024MB RAM. Use the downloaded file as virtual hard disk.
You are done!
=== QEMU ===
In general something like
qemu-system-x86_64 -hda maemo-leste-1.0-amd64.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024
should work. But there seem to be issues with some QEMU versions, for more details see [https://github.com/maemo-leste/bugtracker/issues/198 issue#198].
To set up a port forward for SSH, add:
-nic user,hostfwd=tcp:127.0.0.1:7722-:22
And then log in like this (password: <code>toor</code>):
ssh root@localhost -p 7722
If the mouse pointer is grabbed and no cursor shows, you can add
-usb -device usb-tablet
to the command line
If you have a USB modem you can also use that in QEMU. You can either use sudo to elevate your privileges to be able to use it:
sudo qemu-system-x86_64 -hda maemo-leste-1.0-amd64-virtual-20200324.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024 \
-nic user,hostfwd=tcp:127.0.0.1:7722-:22 \
-usb -device usb-ehci,id=ehci \
-device usb-host,bus=ehci.0,vendorid=0x0bdb,productid=0x193e
Or you can make a udev rule for your device. For example, with a Lenovo Ericsson N5321 gw you can create "/etc/udev/rules.d/45-n5321.rules" with this in it:
# Lenovo Ericsson N5321 gw simple udev rule
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="193e", \
MODE:="0666"
And then activate it by running these two commands as root:
# udevadm control --reload-rules
# udevadm trigger
Now you can run QEMU without the need for sudo!
== Initial configuration ==
On the first run you may want to generate ssh host keys and set the timezone. To do so open the "X Terminal" application and run:
sudo su -
dpkg-reconfigure openssh-server
dpkg-reconfigure tzdata
Make the system up-to-date:
apt update
apt upgrade
apt install linux-image-amd64
reboot
To get networking to work (at least in virtualbox), launch a shell and do
sudo ifconfig eth0 up
sudo dhclient eth0
== Connectivity ==
If you have a modem exposed to QEMU, you still need to do some steps manually to get connectivity.
First off you need to add the development APT repository to your APT sources:
# echo 'deb https://maedevu.maemo.org/leste beowulf-devel main contrib non-free' >> /etc/apt/sources.list
Now update and upgrade:
# apt update && apt upgrade
Then you can install these things:
# apt install ofono libicd-network-ofono connui-iapsettings-gprs connui-statusbar-cellular connui-home-cellular connui-cellular-settings connui-conndlgs-cellular
We need mdbus2 to manipulate oFono:
# wget http://ftp.nl.debian.org/debian/pool/main/m/mdbus/mdbus2_2.3.3-2_amd64.deb
# dpkg -i mdbus2_2.3.3-2_amd64.deb
Then we can check if oFono finds our modem:
# mdbus2 -s org.ofono
/
/bluetooth
/bluetooth/profile
/bluetooth/profile/dun_gw
/bluetooth/profile/hfp_ag
/bluetooth/profile/hfp_hf
/mbm_0
Then can check our mbm_0 modem:
# mdbus2 -s org.ofono /mbm_0
[METHOD] org.freedesktop.DBus.Introspectable.Introspect() -> (s:xml)
[METHOD] org.ofono.Modem.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.Modem.SetProperty(s:property, v:value) -> ()
[SIGNAL] org.ofono.Modem.PropertyChanged(s:name, v:value)
# mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.GetProperties
({'Online': <false>, 'Powered': <false>, 'Lockdown': <false>, 'Emergency': <false>, 'SystemPath': <'/sys/devices/pci0000:00/0000:00:04.0/usb1/1-1'>, 'Interfaces': <@as []>, 'Features': <@as []>, 'Type': <'hardware'>},)
Power on the modem:
# mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.SetProperty Powered true
()
# mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.GetProperties
({'Online': <false>, 'Powered': <true>, 'Lockdown': <false>, 'Emergency': <false>, 'Manufacturer': <'Lenovo'>, 'Model': <'N5321 gw'>, 'Revision': <'R3C11'>, 'Serial': <'xxxxxxxxxxxx'>, 'SystemPath': <'/sys/devices/pci0000:00/0000:00:04.0/usb1/1-1'>, 'Interfaces': <['org.ofono.SimManager']>, 'Features': <['sim']>, 'Type': <'hardware'>},)
Check if we need to enter a pin:
# mdbus2 -s org.ofono /mbm_0 org.ofono.SimManager.GetProperties
({'Present': <true>, 'CardIdentifier': <'xxxxxx'>, 'FixedDialing': <false>, 'BarredDialing': <false>, 'SubscriberNumbers': <@as []>, 'LockedPins': <['pin']>, 'PreferredLanguages': <['de', 'en', 'fr']>, 'PinRequired': <'pin'>, 'Retries': <{'pin': byte 0x03, 'pin2': 0x03, 'puk': 0x0a, 'puk2': 0x0a}>, 'CardSlotCount': <uint32 1>, 'ActiveCardSlot': <uint32 1>},)
If PinRequired is 'pin' we need to enter a pin to unlock the sim:
# mdbus2 -s org.ofono /mbm_0 org.ofono.SimManager.EnterPin pin 1234
()
Then we can bring the modem online:
# mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.SetProperty Online true
()
If we now redo the first mdbus2 command on /mbm_0:
# mdbus2 -s org.ofono /mbm_0
[METHOD] org.freedesktop.DBus.Introspectable.Introspect() -> (s:xml)
[METHOD] org.ofono.Modem.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.Modem.SetProperty(s:property, v:value) -> ()
[SIGNAL] org.ofono.Modem.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.SimManager.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.SimManager.SetProperty(s:property, v:value) -> ()
[METHOD] org.ofono.SimManager.ChangePin(s:type, s:oldpin, s:newpin) -> ()
[METHOD] org.ofono.SimManager.EnterPin(s:type, s:pin) -> ()
[METHOD] org.ofono.SimManager.ResetPin(s:type, s:puk, s:newpin) -> ()
[METHOD] org.ofono.SimManager.LockPin(s:type, s:pin) -> ()
[METHOD] org.ofono.SimManager.UnlockPin(s:type, s:pin) -> ()
[METHOD] org.ofono.SimManager.GetIcon(y:id) -> (ay:icon)
[SIGNAL] org.ofono.SimManager.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.AllowedAccessPoints.GetAllowedAccessPoints() -> (as:apnlist)
[METHOD] org.ofono.SimAuthentication.GetApplications() -> (a{oa{sv}}:applications)
[METHOD] org.ofono.SimAuthentication.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.SimToolkit.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.SimToolkit.SelectItem(y:item, o:agent) -> ()
[METHOD] org.ofono.SimToolkit.RegisterAgent(o:path) -> ()
[METHOD] org.ofono.SimToolkit.UnregisterAgent(o:path) -> ()
[SIGNAL] org.ofono.SimToolkit.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.RadioSettings.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.RadioSettings.SetProperty(s:property, v:value) -> ()
[SIGNAL] org.ofono.RadioSettings.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.MessageManager.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.MessageManager.SetProperty(s:property, v:value) -> ()
[METHOD] org.ofono.MessageManager.SendMessage(s:to, s:text) -> (o:path)
[METHOD] org.ofono.MessageManager.GetMessages() -> (a(oa{sv}):messages)
[SIGNAL] org.ofono.MessageManager.PropertyChanged(s:name, v:value)
[SIGNAL] org.ofono.MessageManager.IncomingMessage(s:message, a{sv}:info)
[SIGNAL] org.ofono.MessageManager.ImmediateMessage(s:message, a{sv}:info)
[SIGNAL] org.ofono.MessageManager.MessageAdded(o:path, a{sv}:properties)
[SIGNAL] org.ofono.MessageManager.MessageRemoved(o:path)
[METHOD] org.ofono.PushNotification.RegisterAgent(o:path) -> ()
[METHOD] org.ofono.PushNotification.UnregisterAgent(o:path) -> ()
[METHOD] org.ofono.SmartMessaging.RegisterAgent(o:path) -> ()
[METHOD] org.ofono.SmartMessaging.UnregisterAgent(o:path) -> ()
[METHOD] org.ofono.SmartMessaging.SendBusinessCard(s:to, ay:card) -> (o:path)
[METHOD] org.ofono.SmartMessaging.SendAppointment(s:to, ay:appointment) -> (o:path)
[METHOD] org.ofono.LocationReporting.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.LocationReporting.Request() -> (h:fd)
[METHOD] org.ofono.LocationReporting.Release() -> ()
[SIGNAL] org.ofono.LocationReporting.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.SupplementaryServices.Initiate(s:command) -> (s:result_name, v:value)
[METHOD] org.ofono.SupplementaryServices.Respond(s:reply) -> (s:result)
[METHOD] org.ofono.SupplementaryServices.Cancel() -> ()
[METHOD] org.ofono.SupplementaryServices.GetProperties() -> (a{sv}:properties)
[SIGNAL] org.ofono.SupplementaryServices.NotificationReceived(s:message)
[SIGNAL] org.ofono.SupplementaryServices.RequestReceived(s:message)
[SIGNAL] org.ofono.SupplementaryServices.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.CellBroadcast.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.CellBroadcast.SetProperty(s:property, v:value) -> ()
[SIGNAL] org.ofono.CellBroadcast.PropertyChanged(s:property, v:value)
[SIGNAL] org.ofono.CellBroadcast.IncomingBroadcast(s:message, q:channel)
[SIGNAL] org.ofono.CellBroadcast.EmergencyBroadcast(s:message, a{sv}:dict)
[METHOD] org.ofono.ConnectionManager.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.ConnectionManager.SetProperty(s:property, v:value) -> ()
[METHOD] org.ofono.ConnectionManager.AddContext(s:type) -> (o:path)
[METHOD] org.ofono.ConnectionManager.RemoveContext(o:path) -> ()
[METHOD] org.ofono.ConnectionManager.DeactivateAll() -> ()
[METHOD] org.ofono.ConnectionManager.GetContexts() -> (a(oa{sv}):contexts_with_properties)
[METHOD] org.ofono.ConnectionManager.ResetContexts() -> ()
[SIGNAL] org.ofono.ConnectionManager.PropertyChanged(s:name, v:value)
[SIGNAL] org.ofono.ConnectionManager.ContextAdded(o:path, a{sv}:properties)
[SIGNAL] org.ofono.ConnectionManager.ContextRemoved(o:path)
[METHOD] org.ofono.NetworkRegistration.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.NetworkRegistration.Register() -> ()
[METHOD] org.ofono.NetworkRegistration.GetOperators() -> (a(oa{sv}):operators_with_properties)
[METHOD] org.ofono.NetworkRegistration.Scan() -> (a(oa{sv}):operators_with_properties)
[SIGNAL] org.ofono.NetworkRegistration.PropertyChanged(s:name, v:value)
[[Category:Device]]
d8c7ab5aa75994d7f3f5de36fa90d2d2d099b7a3
754
753
2020-05-28T00:08:10Z
Derby
3
/* Installation */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Generic
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
Generic virtual machine target. This is particularly useful when doing development and testing.
== Installation ==
https://maedevu.maemo.org/images/virtual-machines/
There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration.
Converting the qcow2 image to raw allows it to be used on real hardware.
=== VirtualBox ===
Download latest .vdi.xz image, unpack it with "xz -d" command.
Create new Virtual Machine, select "Debian (64-bit)" and 1024MB RAM. Use the downloaded file as virtual hard disk.
You are done!
=== QEMU ===
In general something like
qemu-system-x86_64 -hda maemo-leste-1.0-amd64.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024
should work. But there seem to be issues with some QEMU versions, for more details see [https://github.com/maemo-leste/bugtracker/issues/198 issue#198].
To set up a port forward for SSH, add:
-nic user,hostfwd=tcp:127.0.0.1:7722-:22
And then log in like this (password: <code>toor</code>):
ssh root@localhost -p 7722
If the mouse pointer is grabbed and no cursor shows, you can add
-usb -device usb-tablet
to the command line
If you have a USB modem you can also use that in QEMU. You can either use sudo to elevate your privileges to be able to use it:
sudo qemu-system-x86_64 -hda maemo-leste-1.0-amd64-virtual-20200324.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024 \
-nic user,hostfwd=tcp:127.0.0.1:7722-:22 \
-usb -device usb-ehci,id=ehci \
-device usb-host,bus=ehci.0,vendorid=0x0bdb,productid=0x193e
Or you can make a udev rule for your device. For example, with a Lenovo Ericsson N5321 gw you can create "/etc/udev/rules.d/45-n5321.rules" with this in it:
# Lenovo Ericsson N5321 gw simple udev rule
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="193e", \
MODE:="0666"
And then activate it by running these two commands as root:
# udevadm control --reload-rules
# udevadm trigger
Now you can run QEMU without the need for sudo!
=== virt-manager ===
See [https://github.com/maemo-leste/bugtracker/issues/291#issuecomment-575952497 here].
== Initial configuration ==
On the first run you may want to generate ssh host keys and set the timezone. To do so open the "X Terminal" application and run:
sudo su -
dpkg-reconfigure openssh-server
dpkg-reconfigure tzdata
Make the system up-to-date:
apt update
apt upgrade
apt install linux-image-amd64
reboot
To get networking to work (at least in virtualbox), launch a shell and do
sudo ifconfig eth0 up
sudo dhclient eth0
== Connectivity ==
If you have a modem exposed to QEMU, you still need to do some steps manually to get connectivity.
First off you need to add the development APT repository to your APT sources:
# echo 'deb https://maedevu.maemo.org/leste beowulf-devel main contrib non-free' >> /etc/apt/sources.list
Now update and upgrade:
# apt update && apt upgrade
Then you can install these things:
# apt install ofono libicd-network-ofono connui-iapsettings-gprs connui-statusbar-cellular connui-home-cellular connui-cellular-settings connui-conndlgs-cellular
We need mdbus2 to manipulate oFono:
# wget http://ftp.nl.debian.org/debian/pool/main/m/mdbus/mdbus2_2.3.3-2_amd64.deb
# dpkg -i mdbus2_2.3.3-2_amd64.deb
Then we can check if oFono finds our modem:
# mdbus2 -s org.ofono
/
/bluetooth
/bluetooth/profile
/bluetooth/profile/dun_gw
/bluetooth/profile/hfp_ag
/bluetooth/profile/hfp_hf
/mbm_0
Then can check our mbm_0 modem:
# mdbus2 -s org.ofono /mbm_0
[METHOD] org.freedesktop.DBus.Introspectable.Introspect() -> (s:xml)
[METHOD] org.ofono.Modem.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.Modem.SetProperty(s:property, v:value) -> ()
[SIGNAL] org.ofono.Modem.PropertyChanged(s:name, v:value)
# mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.GetProperties
({'Online': <false>, 'Powered': <false>, 'Lockdown': <false>, 'Emergency': <false>, 'SystemPath': <'/sys/devices/pci0000:00/0000:00:04.0/usb1/1-1'>, 'Interfaces': <@as []>, 'Features': <@as []>, 'Type': <'hardware'>},)
Power on the modem:
# mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.SetProperty Powered true
()
# mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.GetProperties
({'Online': <false>, 'Powered': <true>, 'Lockdown': <false>, 'Emergency': <false>, 'Manufacturer': <'Lenovo'>, 'Model': <'N5321 gw'>, 'Revision': <'R3C11'>, 'Serial': <'xxxxxxxxxxxx'>, 'SystemPath': <'/sys/devices/pci0000:00/0000:00:04.0/usb1/1-1'>, 'Interfaces': <['org.ofono.SimManager']>, 'Features': <['sim']>, 'Type': <'hardware'>},)
Check if we need to enter a pin:
# mdbus2 -s org.ofono /mbm_0 org.ofono.SimManager.GetProperties
({'Present': <true>, 'CardIdentifier': <'xxxxxx'>, 'FixedDialing': <false>, 'BarredDialing': <false>, 'SubscriberNumbers': <@as []>, 'LockedPins': <['pin']>, 'PreferredLanguages': <['de', 'en', 'fr']>, 'PinRequired': <'pin'>, 'Retries': <{'pin': byte 0x03, 'pin2': 0x03, 'puk': 0x0a, 'puk2': 0x0a}>, 'CardSlotCount': <uint32 1>, 'ActiveCardSlot': <uint32 1>},)
If PinRequired is 'pin' we need to enter a pin to unlock the sim:
# mdbus2 -s org.ofono /mbm_0 org.ofono.SimManager.EnterPin pin 1234
()
Then we can bring the modem online:
# mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.SetProperty Online true
()
If we now redo the first mdbus2 command on /mbm_0:
# mdbus2 -s org.ofono /mbm_0
[METHOD] org.freedesktop.DBus.Introspectable.Introspect() -> (s:xml)
[METHOD] org.ofono.Modem.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.Modem.SetProperty(s:property, v:value) -> ()
[SIGNAL] org.ofono.Modem.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.SimManager.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.SimManager.SetProperty(s:property, v:value) -> ()
[METHOD] org.ofono.SimManager.ChangePin(s:type, s:oldpin, s:newpin) -> ()
[METHOD] org.ofono.SimManager.EnterPin(s:type, s:pin) -> ()
[METHOD] org.ofono.SimManager.ResetPin(s:type, s:puk, s:newpin) -> ()
[METHOD] org.ofono.SimManager.LockPin(s:type, s:pin) -> ()
[METHOD] org.ofono.SimManager.UnlockPin(s:type, s:pin) -> ()
[METHOD] org.ofono.SimManager.GetIcon(y:id) -> (ay:icon)
[SIGNAL] org.ofono.SimManager.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.AllowedAccessPoints.GetAllowedAccessPoints() -> (as:apnlist)
[METHOD] org.ofono.SimAuthentication.GetApplications() -> (a{oa{sv}}:applications)
[METHOD] org.ofono.SimAuthentication.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.SimToolkit.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.SimToolkit.SelectItem(y:item, o:agent) -> ()
[METHOD] org.ofono.SimToolkit.RegisterAgent(o:path) -> ()
[METHOD] org.ofono.SimToolkit.UnregisterAgent(o:path) -> ()
[SIGNAL] org.ofono.SimToolkit.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.RadioSettings.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.RadioSettings.SetProperty(s:property, v:value) -> ()
[SIGNAL] org.ofono.RadioSettings.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.MessageManager.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.MessageManager.SetProperty(s:property, v:value) -> ()
[METHOD] org.ofono.MessageManager.SendMessage(s:to, s:text) -> (o:path)
[METHOD] org.ofono.MessageManager.GetMessages() -> (a(oa{sv}):messages)
[SIGNAL] org.ofono.MessageManager.PropertyChanged(s:name, v:value)
[SIGNAL] org.ofono.MessageManager.IncomingMessage(s:message, a{sv}:info)
[SIGNAL] org.ofono.MessageManager.ImmediateMessage(s:message, a{sv}:info)
[SIGNAL] org.ofono.MessageManager.MessageAdded(o:path, a{sv}:properties)
[SIGNAL] org.ofono.MessageManager.MessageRemoved(o:path)
[METHOD] org.ofono.PushNotification.RegisterAgent(o:path) -> ()
[METHOD] org.ofono.PushNotification.UnregisterAgent(o:path) -> ()
[METHOD] org.ofono.SmartMessaging.RegisterAgent(o:path) -> ()
[METHOD] org.ofono.SmartMessaging.UnregisterAgent(o:path) -> ()
[METHOD] org.ofono.SmartMessaging.SendBusinessCard(s:to, ay:card) -> (o:path)
[METHOD] org.ofono.SmartMessaging.SendAppointment(s:to, ay:appointment) -> (o:path)
[METHOD] org.ofono.LocationReporting.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.LocationReporting.Request() -> (h:fd)
[METHOD] org.ofono.LocationReporting.Release() -> ()
[SIGNAL] org.ofono.LocationReporting.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.SupplementaryServices.Initiate(s:command) -> (s:result_name, v:value)
[METHOD] org.ofono.SupplementaryServices.Respond(s:reply) -> (s:result)
[METHOD] org.ofono.SupplementaryServices.Cancel() -> ()
[METHOD] org.ofono.SupplementaryServices.GetProperties() -> (a{sv}:properties)
[SIGNAL] org.ofono.SupplementaryServices.NotificationReceived(s:message)
[SIGNAL] org.ofono.SupplementaryServices.RequestReceived(s:message)
[SIGNAL] org.ofono.SupplementaryServices.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.CellBroadcast.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.CellBroadcast.SetProperty(s:property, v:value) -> ()
[SIGNAL] org.ofono.CellBroadcast.PropertyChanged(s:property, v:value)
[SIGNAL] org.ofono.CellBroadcast.IncomingBroadcast(s:message, q:channel)
[SIGNAL] org.ofono.CellBroadcast.EmergencyBroadcast(s:message, a{sv}:dict)
[METHOD] org.ofono.ConnectionManager.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.ConnectionManager.SetProperty(s:property, v:value) -> ()
[METHOD] org.ofono.ConnectionManager.AddContext(s:type) -> (o:path)
[METHOD] org.ofono.ConnectionManager.RemoveContext(o:path) -> ()
[METHOD] org.ofono.ConnectionManager.DeactivateAll() -> ()
[METHOD] org.ofono.ConnectionManager.GetContexts() -> (a(oa{sv}):contexts_with_properties)
[METHOD] org.ofono.ConnectionManager.ResetContexts() -> ()
[SIGNAL] org.ofono.ConnectionManager.PropertyChanged(s:name, v:value)
[SIGNAL] org.ofono.ConnectionManager.ContextAdded(o:path, a{sv}:properties)
[SIGNAL] org.ofono.ConnectionManager.ContextRemoved(o:path)
[METHOD] org.ofono.NetworkRegistration.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.NetworkRegistration.Register() -> ()
[METHOD] org.ofono.NetworkRegistration.GetOperators() -> (a(oa{sv}):operators_with_properties)
[METHOD] org.ofono.NetworkRegistration.Scan() -> (a(oa{sv}):operators_with_properties)
[SIGNAL] org.ofono.NetworkRegistration.PropertyChanged(s:name, v:value)
[[Category:Device]]
2aaaaa421443f2b8a9d31c994ab82b9fc43ae235
757
754
2020-05-29T13:16:18Z
Uvos
39
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Generic
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
Generic virtual machine target. This is particularly useful when doing development and testing.
== Installation ==
https://maedevu.maemo.org/images/virtual-machines/
There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration.
Converting the qcow2 image to raw allows it to be used on real hardware.
=== VirtualBox ===
Download latest .vdi.xz image, unpack it with "xz -d" command.
Create new Virtual Machine, select "Debian (64-bit)" and 1024MB RAM. Use the downloaded file as virtual hard disk.
You are done!
=== QEMU ===
In general something like
qemu-system-x86_64 -hda maemo-leste-1.0-amd64.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024 -machine vmport=off
should work. But there seem to be issues with some QEMU versions, for more details see [https://github.com/maemo-leste/bugtracker/issues/198 issue#198].
To set up a port forward for SSH, add:
-nic user,hostfwd=tcp:127.0.0.1:7722-:22
And then log in like this (password: <code>toor</code>):
ssh root@localhost -p 7722
If the mouse pointer is grabbed and no cursor shows, you can add
-usb -device usb-tablet
to the command line
If you have a USB modem you can also use that in QEMU. You can either use sudo to elevate your privileges to be able to use it:
sudo qemu-system-x86_64 -hda maemo-leste-1.0-amd64-virtual-20200324.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024 -machine vmport=off \
-nic user,hostfwd=tcp:127.0.0.1:7722-:22 \
-usb -device usb-ehci,id=ehci \
-device usb-host,bus=ehci.0,vendorid=0x0bdb,productid=0x193e
Or you can make a udev rule for your device. For example, with a Lenovo Ericsson N5321 gw you can create "/etc/udev/rules.d/45-n5321.rules" with this in it:
# Lenovo Ericsson N5321 gw simple udev rule
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="193e", \
MODE:="0666"
And then activate it by running these two commands as root:
# udevadm control --reload-rules
# udevadm trigger
Now you can run QEMU without the need for sudo!
=== virt-manager ===
See [https://github.com/maemo-leste/bugtracker/issues/291#issuecomment-575952497 here].
== Initial configuration ==
On the first run you may want to generate ssh host keys and set the timezone. To do so open the "X Terminal" application and run:
sudo su -
dpkg-reconfigure openssh-server
dpkg-reconfigure tzdata
Make the system up-to-date:
apt update
apt upgrade
apt install linux-image-amd64
reboot
To get networking to work (at least in virtualbox), launch a shell and do
sudo ifconfig eth0 up
sudo dhclient eth0
== Connectivity ==
If you have a modem exposed to QEMU, you still need to do some steps manually to get connectivity.
First off you need to add the development APT repository to your APT sources:
# echo 'deb https://maedevu.maemo.org/leste beowulf-devel main contrib non-free' >> /etc/apt/sources.list
Now update and upgrade:
# apt update && apt upgrade
Then you can install these things:
# apt install ofono libicd-network-ofono connui-iapsettings-gprs connui-statusbar-cellular connui-home-cellular connui-cellular-settings connui-conndlgs-cellular
We need mdbus2 to manipulate oFono:
# wget http://ftp.nl.debian.org/debian/pool/main/m/mdbus/mdbus2_2.3.3-2_amd64.deb
# dpkg -i mdbus2_2.3.3-2_amd64.deb
Then we can check if oFono finds our modem:
# mdbus2 -s org.ofono
/
/bluetooth
/bluetooth/profile
/bluetooth/profile/dun_gw
/bluetooth/profile/hfp_ag
/bluetooth/profile/hfp_hf
/mbm_0
Then can check our mbm_0 modem:
# mdbus2 -s org.ofono /mbm_0
[METHOD] org.freedesktop.DBus.Introspectable.Introspect() -> (s:xml)
[METHOD] org.ofono.Modem.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.Modem.SetProperty(s:property, v:value) -> ()
[SIGNAL] org.ofono.Modem.PropertyChanged(s:name, v:value)
# mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.GetProperties
({'Online': <false>, 'Powered': <false>, 'Lockdown': <false>, 'Emergency': <false>, 'SystemPath': <'/sys/devices/pci0000:00/0000:00:04.0/usb1/1-1'>, 'Interfaces': <@as []>, 'Features': <@as []>, 'Type': <'hardware'>},)
Power on the modem:
# mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.SetProperty Powered true
()
# mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.GetProperties
({'Online': <false>, 'Powered': <true>, 'Lockdown': <false>, 'Emergency': <false>, 'Manufacturer': <'Lenovo'>, 'Model': <'N5321 gw'>, 'Revision': <'R3C11'>, 'Serial': <'xxxxxxxxxxxx'>, 'SystemPath': <'/sys/devices/pci0000:00/0000:00:04.0/usb1/1-1'>, 'Interfaces': <['org.ofono.SimManager']>, 'Features': <['sim']>, 'Type': <'hardware'>},)
Check if we need to enter a pin:
# mdbus2 -s org.ofono /mbm_0 org.ofono.SimManager.GetProperties
({'Present': <true>, 'CardIdentifier': <'xxxxxx'>, 'FixedDialing': <false>, 'BarredDialing': <false>, 'SubscriberNumbers': <@as []>, 'LockedPins': <['pin']>, 'PreferredLanguages': <['de', 'en', 'fr']>, 'PinRequired': <'pin'>, 'Retries': <{'pin': byte 0x03, 'pin2': 0x03, 'puk': 0x0a, 'puk2': 0x0a}>, 'CardSlotCount': <uint32 1>, 'ActiveCardSlot': <uint32 1>},)
If PinRequired is 'pin' we need to enter a pin to unlock the sim:
# mdbus2 -s org.ofono /mbm_0 org.ofono.SimManager.EnterPin pin 1234
()
Then we can bring the modem online:
# mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.SetProperty Online true
()
If we now redo the first mdbus2 command on /mbm_0:
# mdbus2 -s org.ofono /mbm_0
[METHOD] org.freedesktop.DBus.Introspectable.Introspect() -> (s:xml)
[METHOD] org.ofono.Modem.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.Modem.SetProperty(s:property, v:value) -> ()
[SIGNAL] org.ofono.Modem.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.SimManager.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.SimManager.SetProperty(s:property, v:value) -> ()
[METHOD] org.ofono.SimManager.ChangePin(s:type, s:oldpin, s:newpin) -> ()
[METHOD] org.ofono.SimManager.EnterPin(s:type, s:pin) -> ()
[METHOD] org.ofono.SimManager.ResetPin(s:type, s:puk, s:newpin) -> ()
[METHOD] org.ofono.SimManager.LockPin(s:type, s:pin) -> ()
[METHOD] org.ofono.SimManager.UnlockPin(s:type, s:pin) -> ()
[METHOD] org.ofono.SimManager.GetIcon(y:id) -> (ay:icon)
[SIGNAL] org.ofono.SimManager.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.AllowedAccessPoints.GetAllowedAccessPoints() -> (as:apnlist)
[METHOD] org.ofono.SimAuthentication.GetApplications() -> (a{oa{sv}}:applications)
[METHOD] org.ofono.SimAuthentication.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.SimToolkit.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.SimToolkit.SelectItem(y:item, o:agent) -> ()
[METHOD] org.ofono.SimToolkit.RegisterAgent(o:path) -> ()
[METHOD] org.ofono.SimToolkit.UnregisterAgent(o:path) -> ()
[SIGNAL] org.ofono.SimToolkit.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.RadioSettings.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.RadioSettings.SetProperty(s:property, v:value) -> ()
[SIGNAL] org.ofono.RadioSettings.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.MessageManager.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.MessageManager.SetProperty(s:property, v:value) -> ()
[METHOD] org.ofono.MessageManager.SendMessage(s:to, s:text) -> (o:path)
[METHOD] org.ofono.MessageManager.GetMessages() -> (a(oa{sv}):messages)
[SIGNAL] org.ofono.MessageManager.PropertyChanged(s:name, v:value)
[SIGNAL] org.ofono.MessageManager.IncomingMessage(s:message, a{sv}:info)
[SIGNAL] org.ofono.MessageManager.ImmediateMessage(s:message, a{sv}:info)
[SIGNAL] org.ofono.MessageManager.MessageAdded(o:path, a{sv}:properties)
[SIGNAL] org.ofono.MessageManager.MessageRemoved(o:path)
[METHOD] org.ofono.PushNotification.RegisterAgent(o:path) -> ()
[METHOD] org.ofono.PushNotification.UnregisterAgent(o:path) -> ()
[METHOD] org.ofono.SmartMessaging.RegisterAgent(o:path) -> ()
[METHOD] org.ofono.SmartMessaging.UnregisterAgent(o:path) -> ()
[METHOD] org.ofono.SmartMessaging.SendBusinessCard(s:to, ay:card) -> (o:path)
[METHOD] org.ofono.SmartMessaging.SendAppointment(s:to, ay:appointment) -> (o:path)
[METHOD] org.ofono.LocationReporting.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.LocationReporting.Request() -> (h:fd)
[METHOD] org.ofono.LocationReporting.Release() -> ()
[SIGNAL] org.ofono.LocationReporting.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.SupplementaryServices.Initiate(s:command) -> (s:result_name, v:value)
[METHOD] org.ofono.SupplementaryServices.Respond(s:reply) -> (s:result)
[METHOD] org.ofono.SupplementaryServices.Cancel() -> ()
[METHOD] org.ofono.SupplementaryServices.GetProperties() -> (a{sv}:properties)
[SIGNAL] org.ofono.SupplementaryServices.NotificationReceived(s:message)
[SIGNAL] org.ofono.SupplementaryServices.RequestReceived(s:message)
[SIGNAL] org.ofono.SupplementaryServices.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.CellBroadcast.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.CellBroadcast.SetProperty(s:property, v:value) -> ()
[SIGNAL] org.ofono.CellBroadcast.PropertyChanged(s:property, v:value)
[SIGNAL] org.ofono.CellBroadcast.IncomingBroadcast(s:message, q:channel)
[SIGNAL] org.ofono.CellBroadcast.EmergencyBroadcast(s:message, a{sv}:dict)
[METHOD] org.ofono.ConnectionManager.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.ConnectionManager.SetProperty(s:property, v:value) -> ()
[METHOD] org.ofono.ConnectionManager.AddContext(s:type) -> (o:path)
[METHOD] org.ofono.ConnectionManager.RemoveContext(o:path) -> ()
[METHOD] org.ofono.ConnectionManager.DeactivateAll() -> ()
[METHOD] org.ofono.ConnectionManager.GetContexts() -> (a(oa{sv}):contexts_with_properties)
[METHOD] org.ofono.ConnectionManager.ResetContexts() -> ()
[SIGNAL] org.ofono.ConnectionManager.PropertyChanged(s:name, v:value)
[SIGNAL] org.ofono.ConnectionManager.ContextAdded(o:path, a{sv}:properties)
[SIGNAL] org.ofono.ConnectionManager.ContextRemoved(o:path)
[METHOD] org.ofono.NetworkRegistration.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.NetworkRegistration.Register() -> ()
[METHOD] org.ofono.NetworkRegistration.GetOperators() -> (a(oa{sv}):operators_with_properties)
[METHOD] org.ofono.NetworkRegistration.Scan() -> (a(oa{sv}):operators_with_properties)
[SIGNAL] org.ofono.NetworkRegistration.PropertyChanged(s:name, v:value)
[[Category:Device]]
3b034ad226c471b021c2ae9190a7899b006e7940
758
757
2020-05-29T13:17:14Z
Uvos
39
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Generic
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
Generic virtual machine target. This is particularly useful when doing development and testing.
== Installation ==
https://maedevu.maemo.org/images/virtual-machines/
There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration.
Converting the qcow2 image to raw allows it to be used on real hardware.
=== VirtualBox ===
Download latest .vdi.xz image, unpack it with "xz -d" command.
Create new Virtual Machine, select "Debian (64-bit)" and 1024MB RAM. Use the downloaded file as virtual hard disk.
You are done!
=== QEMU ===
In general something like
qemu-system-x86_64 -hda maemo-leste-1.0-amd64.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024 -usb -device usb-mouse -machine vmport=off
should work. But there seem to be issues with some QEMU versions, for more details see [https://github.com/maemo-leste/bugtracker/issues/198 issue#198].
To set up a port forward for SSH, add:
-nic user,hostfwd=tcp:127.0.0.1:7722-:22
And then log in like this (password: <code>toor</code>):
ssh root@localhost -p 7722
If the mouse pointer is grabbed and no cursor shows, you can add
-usb -device usb-tablet
to the command line
If you have a USB modem you can also use that in QEMU. You can either use sudo to elevate your privileges to be able to use it:
sudo qemu-system-x86_64 -hda maemo-leste-1.0-amd64-virtual-20200324.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024 -usb -device usb-mouse -machine vmport=off \
-nic user,hostfwd=tcp:127.0.0.1:7722-:22 \
-usb -device usb-ehci,id=ehci \
-device usb-host,bus=ehci.0,vendorid=0x0bdb,productid=0x193e
Or you can make a udev rule for your device. For example, with a Lenovo Ericsson N5321 gw you can create "/etc/udev/rules.d/45-n5321.rules" with this in it:
# Lenovo Ericsson N5321 gw simple udev rule
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="193e", \
MODE:="0666"
And then activate it by running these two commands as root:
# udevadm control --reload-rules
# udevadm trigger
Now you can run QEMU without the need for sudo!
=== virt-manager ===
See [https://github.com/maemo-leste/bugtracker/issues/291#issuecomment-575952497 here].
== Initial configuration ==
On the first run you may want to generate ssh host keys and set the timezone. To do so open the "X Terminal" application and run:
sudo su -
dpkg-reconfigure openssh-server
dpkg-reconfigure tzdata
Make the system up-to-date:
apt update
apt upgrade
apt install linux-image-amd64
reboot
To get networking to work (at least in virtualbox), launch a shell and do
sudo ifconfig eth0 up
sudo dhclient eth0
== Connectivity ==
If you have a modem exposed to QEMU, you still need to do some steps manually to get connectivity.
First off you need to add the development APT repository to your APT sources:
# echo 'deb https://maedevu.maemo.org/leste beowulf-devel main contrib non-free' >> /etc/apt/sources.list
Now update and upgrade:
# apt update && apt upgrade
Then you can install these things:
# apt install ofono libicd-network-ofono connui-iapsettings-gprs connui-statusbar-cellular connui-home-cellular connui-cellular-settings connui-conndlgs-cellular
We need mdbus2 to manipulate oFono:
# wget http://ftp.nl.debian.org/debian/pool/main/m/mdbus/mdbus2_2.3.3-2_amd64.deb
# dpkg -i mdbus2_2.3.3-2_amd64.deb
Then we can check if oFono finds our modem:
# mdbus2 -s org.ofono
/
/bluetooth
/bluetooth/profile
/bluetooth/profile/dun_gw
/bluetooth/profile/hfp_ag
/bluetooth/profile/hfp_hf
/mbm_0
Then can check our mbm_0 modem:
# mdbus2 -s org.ofono /mbm_0
[METHOD] org.freedesktop.DBus.Introspectable.Introspect() -> (s:xml)
[METHOD] org.ofono.Modem.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.Modem.SetProperty(s:property, v:value) -> ()
[SIGNAL] org.ofono.Modem.PropertyChanged(s:name, v:value)
# mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.GetProperties
({'Online': <false>, 'Powered': <false>, 'Lockdown': <false>, 'Emergency': <false>, 'SystemPath': <'/sys/devices/pci0000:00/0000:00:04.0/usb1/1-1'>, 'Interfaces': <@as []>, 'Features': <@as []>, 'Type': <'hardware'>},)
Power on the modem:
# mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.SetProperty Powered true
()
# mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.GetProperties
({'Online': <false>, 'Powered': <true>, 'Lockdown': <false>, 'Emergency': <false>, 'Manufacturer': <'Lenovo'>, 'Model': <'N5321 gw'>, 'Revision': <'R3C11'>, 'Serial': <'xxxxxxxxxxxx'>, 'SystemPath': <'/sys/devices/pci0000:00/0000:00:04.0/usb1/1-1'>, 'Interfaces': <['org.ofono.SimManager']>, 'Features': <['sim']>, 'Type': <'hardware'>},)
Check if we need to enter a pin:
# mdbus2 -s org.ofono /mbm_0 org.ofono.SimManager.GetProperties
({'Present': <true>, 'CardIdentifier': <'xxxxxx'>, 'FixedDialing': <false>, 'BarredDialing': <false>, 'SubscriberNumbers': <@as []>, 'LockedPins': <['pin']>, 'PreferredLanguages': <['de', 'en', 'fr']>, 'PinRequired': <'pin'>, 'Retries': <{'pin': byte 0x03, 'pin2': 0x03, 'puk': 0x0a, 'puk2': 0x0a}>, 'CardSlotCount': <uint32 1>, 'ActiveCardSlot': <uint32 1>},)
If PinRequired is 'pin' we need to enter a pin to unlock the sim:
# mdbus2 -s org.ofono /mbm_0 org.ofono.SimManager.EnterPin pin 1234
()
Then we can bring the modem online:
# mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.SetProperty Online true
()
If we now redo the first mdbus2 command on /mbm_0:
# mdbus2 -s org.ofono /mbm_0
[METHOD] org.freedesktop.DBus.Introspectable.Introspect() -> (s:xml)
[METHOD] org.ofono.Modem.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.Modem.SetProperty(s:property, v:value) -> ()
[SIGNAL] org.ofono.Modem.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.SimManager.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.SimManager.SetProperty(s:property, v:value) -> ()
[METHOD] org.ofono.SimManager.ChangePin(s:type, s:oldpin, s:newpin) -> ()
[METHOD] org.ofono.SimManager.EnterPin(s:type, s:pin) -> ()
[METHOD] org.ofono.SimManager.ResetPin(s:type, s:puk, s:newpin) -> ()
[METHOD] org.ofono.SimManager.LockPin(s:type, s:pin) -> ()
[METHOD] org.ofono.SimManager.UnlockPin(s:type, s:pin) -> ()
[METHOD] org.ofono.SimManager.GetIcon(y:id) -> (ay:icon)
[SIGNAL] org.ofono.SimManager.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.AllowedAccessPoints.GetAllowedAccessPoints() -> (as:apnlist)
[METHOD] org.ofono.SimAuthentication.GetApplications() -> (a{oa{sv}}:applications)
[METHOD] org.ofono.SimAuthentication.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.SimToolkit.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.SimToolkit.SelectItem(y:item, o:agent) -> ()
[METHOD] org.ofono.SimToolkit.RegisterAgent(o:path) -> ()
[METHOD] org.ofono.SimToolkit.UnregisterAgent(o:path) -> ()
[SIGNAL] org.ofono.SimToolkit.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.RadioSettings.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.RadioSettings.SetProperty(s:property, v:value) -> ()
[SIGNAL] org.ofono.RadioSettings.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.MessageManager.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.MessageManager.SetProperty(s:property, v:value) -> ()
[METHOD] org.ofono.MessageManager.SendMessage(s:to, s:text) -> (o:path)
[METHOD] org.ofono.MessageManager.GetMessages() -> (a(oa{sv}):messages)
[SIGNAL] org.ofono.MessageManager.PropertyChanged(s:name, v:value)
[SIGNAL] org.ofono.MessageManager.IncomingMessage(s:message, a{sv}:info)
[SIGNAL] org.ofono.MessageManager.ImmediateMessage(s:message, a{sv}:info)
[SIGNAL] org.ofono.MessageManager.MessageAdded(o:path, a{sv}:properties)
[SIGNAL] org.ofono.MessageManager.MessageRemoved(o:path)
[METHOD] org.ofono.PushNotification.RegisterAgent(o:path) -> ()
[METHOD] org.ofono.PushNotification.UnregisterAgent(o:path) -> ()
[METHOD] org.ofono.SmartMessaging.RegisterAgent(o:path) -> ()
[METHOD] org.ofono.SmartMessaging.UnregisterAgent(o:path) -> ()
[METHOD] org.ofono.SmartMessaging.SendBusinessCard(s:to, ay:card) -> (o:path)
[METHOD] org.ofono.SmartMessaging.SendAppointment(s:to, ay:appointment) -> (o:path)
[METHOD] org.ofono.LocationReporting.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.LocationReporting.Request() -> (h:fd)
[METHOD] org.ofono.LocationReporting.Release() -> ()
[SIGNAL] org.ofono.LocationReporting.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.SupplementaryServices.Initiate(s:command) -> (s:result_name, v:value)
[METHOD] org.ofono.SupplementaryServices.Respond(s:reply) -> (s:result)
[METHOD] org.ofono.SupplementaryServices.Cancel() -> ()
[METHOD] org.ofono.SupplementaryServices.GetProperties() -> (a{sv}:properties)
[SIGNAL] org.ofono.SupplementaryServices.NotificationReceived(s:message)
[SIGNAL] org.ofono.SupplementaryServices.RequestReceived(s:message)
[SIGNAL] org.ofono.SupplementaryServices.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.CellBroadcast.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.CellBroadcast.SetProperty(s:property, v:value) -> ()
[SIGNAL] org.ofono.CellBroadcast.PropertyChanged(s:property, v:value)
[SIGNAL] org.ofono.CellBroadcast.IncomingBroadcast(s:message, q:channel)
[SIGNAL] org.ofono.CellBroadcast.EmergencyBroadcast(s:message, a{sv}:dict)
[METHOD] org.ofono.ConnectionManager.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.ConnectionManager.SetProperty(s:property, v:value) -> ()
[METHOD] org.ofono.ConnectionManager.AddContext(s:type) -> (o:path)
[METHOD] org.ofono.ConnectionManager.RemoveContext(o:path) -> ()
[METHOD] org.ofono.ConnectionManager.DeactivateAll() -> ()
[METHOD] org.ofono.ConnectionManager.GetContexts() -> (a(oa{sv}):contexts_with_properties)
[METHOD] org.ofono.ConnectionManager.ResetContexts() -> ()
[SIGNAL] org.ofono.ConnectionManager.PropertyChanged(s:name, v:value)
[SIGNAL] org.ofono.ConnectionManager.ContextAdded(o:path, a{sv}:properties)
[SIGNAL] org.ofono.ConnectionManager.ContextRemoved(o:path)
[METHOD] org.ofono.NetworkRegistration.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.NetworkRegistration.Register() -> ()
[METHOD] org.ofono.NetworkRegistration.GetOperators() -> (a(oa{sv}):operators_with_properties)
[METHOD] org.ofono.NetworkRegistration.Scan() -> (a(oa{sv}):operators_with_properties)
[SIGNAL] org.ofono.NetworkRegistration.PropertyChanged(s:name, v:value)
[[Category:Device]]
85b2ec22fdaf27bfa5317e49a16172530363454f
759
758
2020-05-29T13:27:56Z
Uvos
39
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Generic
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
Generic virtual machine target. This is particularly useful when doing development and testing.
== Installation ==
https://maedevu.maemo.org/images/virtual-machines/
There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration.
Converting the qcow2 image to raw allows it to be used on real hardware.
=== VirtualBox ===
Download latest .vdi.xz image, unpack it with "xz -d" command.
Create new Virtual Machine, select "Debian (64-bit)" and 1024MB RAM. Use the downloaded file as virtual hard disk.
You are done!
=== QEMU ===
In general something like
qemu-system-x86_64 -hda maemo-leste-1.0-amd64.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024
should work. But there seem to be issues with some QEMU versions, for more details see [https://github.com/maemo-leste/bugtracker/issues/198 issue#198].
To set up a port forward for SSH, add:
-nic user,hostfwd=tcp:127.0.0.1:7722-:22
And then log in like this (password: <code>toor</code>):
ssh root@localhost -p 7722
If the mouse pointer is grabbed and no cursor shows, you can add
-usb -device usb-tablet
to the command line
If you have a USB modem you can also use that in QEMU. You can either use sudo to elevate your privileges to be able to use it:
sudo qemu-system-x86_64 -hda maemo-leste-1.0-amd64-virtual-20200324.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024 \
-nic user,hostfwd=tcp:127.0.0.1:7722-:22 \
-usb -device usb-ehci,id=ehci \
-device usb-host,bus=ehci.0,vendorid=0x0bdb,productid=0x193e
Or you can make a udev rule for your device. For example, with a Lenovo Ericsson N5321 gw you can create "/etc/udev/rules.d/45-n5321.rules" with this in it:
# Lenovo Ericsson N5321 gw simple udev rule
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="193e", \
MODE:="0666"
And then activate it by running these two commands as root:
# udevadm control --reload-rules
# udevadm trigger
Now you can run QEMU without the need for sudo!
=== virt-manager ===
See [https://github.com/maemo-leste/bugtracker/issues/291#issuecomment-575952497 here].
== Initial configuration ==
On the first run you may want to generate ssh host keys and set the timezone. To do so open the "X Terminal" application and run:
sudo su -
dpkg-reconfigure openssh-server
dpkg-reconfigure tzdata
Make the system up-to-date:
apt update
apt upgrade
apt install linux-image-amd64
reboot
To get networking to work (at least in virtualbox), launch a shell and do
sudo ifconfig eth0 up
sudo dhclient eth0
== Connectivity ==
If you have a modem exposed to QEMU, you still need to do some steps manually to get connectivity.
First off you need to add the development APT repository to your APT sources:
# echo 'deb https://maedevu.maemo.org/leste beowulf-devel main contrib non-free' >> /etc/apt/sources.list
Now update and upgrade:
# apt update && apt upgrade
Then you can install these things:
# apt install ofono libicd-network-ofono connui-iapsettings-gprs connui-statusbar-cellular connui-home-cellular connui-cellular-settings connui-conndlgs-cellular
We need mdbus2 to manipulate oFono:
# wget http://ftp.nl.debian.org/debian/pool/main/m/mdbus/mdbus2_2.3.3-2_amd64.deb
# dpkg -i mdbus2_2.3.3-2_amd64.deb
Then we can check if oFono finds our modem:
# mdbus2 -s org.ofono
/
/bluetooth
/bluetooth/profile
/bluetooth/profile/dun_gw
/bluetooth/profile/hfp_ag
/bluetooth/profile/hfp_hf
/mbm_0
Then can check our mbm_0 modem:
# mdbus2 -s org.ofono /mbm_0
[METHOD] org.freedesktop.DBus.Introspectable.Introspect() -> (s:xml)
[METHOD] org.ofono.Modem.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.Modem.SetProperty(s:property, v:value) -> ()
[SIGNAL] org.ofono.Modem.PropertyChanged(s:name, v:value)
# mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.GetProperties
({'Online': <false>, 'Powered': <false>, 'Lockdown': <false>, 'Emergency': <false>, 'SystemPath': <'/sys/devices/pci0000:00/0000:00:04.0/usb1/1-1'>, 'Interfaces': <@as []>, 'Features': <@as []>, 'Type': <'hardware'>},)
Power on the modem:
# mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.SetProperty Powered true
()
# mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.GetProperties
({'Online': <false>, 'Powered': <true>, 'Lockdown': <false>, 'Emergency': <false>, 'Manufacturer': <'Lenovo'>, 'Model': <'N5321 gw'>, 'Revision': <'R3C11'>, 'Serial': <'xxxxxxxxxxxx'>, 'SystemPath': <'/sys/devices/pci0000:00/0000:00:04.0/usb1/1-1'>, 'Interfaces': <['org.ofono.SimManager']>, 'Features': <['sim']>, 'Type': <'hardware'>},)
Check if we need to enter a pin:
# mdbus2 -s org.ofono /mbm_0 org.ofono.SimManager.GetProperties
({'Present': <true>, 'CardIdentifier': <'xxxxxx'>, 'FixedDialing': <false>, 'BarredDialing': <false>, 'SubscriberNumbers': <@as []>, 'LockedPins': <['pin']>, 'PreferredLanguages': <['de', 'en', 'fr']>, 'PinRequired': <'pin'>, 'Retries': <{'pin': byte 0x03, 'pin2': 0x03, 'puk': 0x0a, 'puk2': 0x0a}>, 'CardSlotCount': <uint32 1>, 'ActiveCardSlot': <uint32 1>},)
If PinRequired is 'pin' we need to enter a pin to unlock the sim:
# mdbus2 -s org.ofono /mbm_0 org.ofono.SimManager.EnterPin pin 1234
()
Then we can bring the modem online:
# mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.SetProperty Online true
()
If we now redo the first mdbus2 command on /mbm_0:
# mdbus2 -s org.ofono /mbm_0
[METHOD] org.freedesktop.DBus.Introspectable.Introspect() -> (s:xml)
[METHOD] org.ofono.Modem.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.Modem.SetProperty(s:property, v:value) -> ()
[SIGNAL] org.ofono.Modem.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.SimManager.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.SimManager.SetProperty(s:property, v:value) -> ()
[METHOD] org.ofono.SimManager.ChangePin(s:type, s:oldpin, s:newpin) -> ()
[METHOD] org.ofono.SimManager.EnterPin(s:type, s:pin) -> ()
[METHOD] org.ofono.SimManager.ResetPin(s:type, s:puk, s:newpin) -> ()
[METHOD] org.ofono.SimManager.LockPin(s:type, s:pin) -> ()
[METHOD] org.ofono.SimManager.UnlockPin(s:type, s:pin) -> ()
[METHOD] org.ofono.SimManager.GetIcon(y:id) -> (ay:icon)
[SIGNAL] org.ofono.SimManager.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.AllowedAccessPoints.GetAllowedAccessPoints() -> (as:apnlist)
[METHOD] org.ofono.SimAuthentication.GetApplications() -> (a{oa{sv}}:applications)
[METHOD] org.ofono.SimAuthentication.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.SimToolkit.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.SimToolkit.SelectItem(y:item, o:agent) -> ()
[METHOD] org.ofono.SimToolkit.RegisterAgent(o:path) -> ()
[METHOD] org.ofono.SimToolkit.UnregisterAgent(o:path) -> ()
[SIGNAL] org.ofono.SimToolkit.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.RadioSettings.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.RadioSettings.SetProperty(s:property, v:value) -> ()
[SIGNAL] org.ofono.RadioSettings.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.MessageManager.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.MessageManager.SetProperty(s:property, v:value) -> ()
[METHOD] org.ofono.MessageManager.SendMessage(s:to, s:text) -> (o:path)
[METHOD] org.ofono.MessageManager.GetMessages() -> (a(oa{sv}):messages)
[SIGNAL] org.ofono.MessageManager.PropertyChanged(s:name, v:value)
[SIGNAL] org.ofono.MessageManager.IncomingMessage(s:message, a{sv}:info)
[SIGNAL] org.ofono.MessageManager.ImmediateMessage(s:message, a{sv}:info)
[SIGNAL] org.ofono.MessageManager.MessageAdded(o:path, a{sv}:properties)
[SIGNAL] org.ofono.MessageManager.MessageRemoved(o:path)
[METHOD] org.ofono.PushNotification.RegisterAgent(o:path) -> ()
[METHOD] org.ofono.PushNotification.UnregisterAgent(o:path) -> ()
[METHOD] org.ofono.SmartMessaging.RegisterAgent(o:path) -> ()
[METHOD] org.ofono.SmartMessaging.UnregisterAgent(o:path) -> ()
[METHOD] org.ofono.SmartMessaging.SendBusinessCard(s:to, ay:card) -> (o:path)
[METHOD] org.ofono.SmartMessaging.SendAppointment(s:to, ay:appointment) -> (o:path)
[METHOD] org.ofono.LocationReporting.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.LocationReporting.Request() -> (h:fd)
[METHOD] org.ofono.LocationReporting.Release() -> ()
[SIGNAL] org.ofono.LocationReporting.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.SupplementaryServices.Initiate(s:command) -> (s:result_name, v:value)
[METHOD] org.ofono.SupplementaryServices.Respond(s:reply) -> (s:result)
[METHOD] org.ofono.SupplementaryServices.Cancel() -> ()
[METHOD] org.ofono.SupplementaryServices.GetProperties() -> (a{sv}:properties)
[SIGNAL] org.ofono.SupplementaryServices.NotificationReceived(s:message)
[SIGNAL] org.ofono.SupplementaryServices.RequestReceived(s:message)
[SIGNAL] org.ofono.SupplementaryServices.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.CellBroadcast.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.CellBroadcast.SetProperty(s:property, v:value) -> ()
[SIGNAL] org.ofono.CellBroadcast.PropertyChanged(s:property, v:value)
[SIGNAL] org.ofono.CellBroadcast.IncomingBroadcast(s:message, q:channel)
[SIGNAL] org.ofono.CellBroadcast.EmergencyBroadcast(s:message, a{sv}:dict)
[METHOD] org.ofono.ConnectionManager.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.ConnectionManager.SetProperty(s:property, v:value) -> ()
[METHOD] org.ofono.ConnectionManager.AddContext(s:type) -> (o:path)
[METHOD] org.ofono.ConnectionManager.RemoveContext(o:path) -> ()
[METHOD] org.ofono.ConnectionManager.DeactivateAll() -> ()
[METHOD] org.ofono.ConnectionManager.GetContexts() -> (a(oa{sv}):contexts_with_properties)
[METHOD] org.ofono.ConnectionManager.ResetContexts() -> ()
[SIGNAL] org.ofono.ConnectionManager.PropertyChanged(s:name, v:value)
[SIGNAL] org.ofono.ConnectionManager.ContextAdded(o:path, a{sv}:properties)
[SIGNAL] org.ofono.ConnectionManager.ContextRemoved(o:path)
[METHOD] org.ofono.NetworkRegistration.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.NetworkRegistration.Register() -> ()
[METHOD] org.ofono.NetworkRegistration.GetOperators() -> (a(oa{sv}):operators_with_properties)
[METHOD] org.ofono.NetworkRegistration.Scan() -> (a(oa{sv}):operators_with_properties)
[SIGNAL] org.ofono.NetworkRegistration.PropertyChanged(s:name, v:value)
[[Category:Device]]
48e2a04f2057232c80d226b982a3868a67b24a1a
760
759
2020-05-29T13:38:19Z
Uvos
39
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Generic
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
Generic virtual machine target. This is particularly useful when doing development and testing.
== Installation ==
https://maedevu.maemo.org/images/virtual-machines/
There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration.
Converting the qcow2 image to raw allows it to be used on real hardware.
=== VirtualBox ===
Download latest .vdi.xz image, unpack it with "xz -d" command.
Create new Virtual Machine, select "Debian (64-bit)" and 1024MB RAM. Use the downloaded file as virtual hard disk.
You are done!
=== QEMU ===
In general something like
qemu-system-x86_64 -hda maemo-leste-1.0-amd64.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024
should work. But there seem to be issues with some QEMU versions, for more details see [https://github.com/maemo-leste/bugtracker/issues/198 issue#198].
To set up a port forward for SSH, add:
-nic user,hostfwd=tcp:127.0.0.1:7722-:22
And then log in like this (password: <code>toor</code>):
ssh root@localhost -p 7722
If the mouse pointer is grabbed and no cursor shows, you can add
-usb -device usb-tablet
to the command line
Alternatively if that dose not work you can instead add
-usb -device usb-mouse -machine vmport=off
If you have a USB modem you can also use that in QEMU. You can either use sudo to elevate your privileges to be able to use it:
sudo qemu-system-x86_64 -hda maemo-leste-1.0-amd64-virtual-20200324.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024 \
-nic user,hostfwd=tcp:127.0.0.1:7722-:22 \
-usb -device usb-ehci,id=ehci \
-device usb-host,bus=ehci.0,vendorid=0x0bdb,productid=0x193e
Or you can make a udev rule for your device. For example, with a Lenovo Ericsson N5321 gw you can create "/etc/udev/rules.d/45-n5321.rules" with this in it:
# Lenovo Ericsson N5321 gw simple udev rule
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="193e", \
MODE:="0666"
And then activate it by running these two commands as root:
# udevadm control --reload-rules
# udevadm trigger
Now you can run QEMU without the need for sudo!
=== virt-manager ===
See [https://github.com/maemo-leste/bugtracker/issues/291#issuecomment-575952497 here].
== Initial configuration ==
On the first run you may want to generate ssh host keys and set the timezone. To do so open the "X Terminal" application and run:
sudo su -
dpkg-reconfigure openssh-server
dpkg-reconfigure tzdata
Make the system up-to-date:
apt update
apt upgrade
apt install linux-image-amd64
reboot
To get networking to work (at least in virtualbox), launch a shell and do
sudo ifconfig eth0 up
sudo dhclient eth0
== Connectivity ==
If you have a modem exposed to QEMU, you still need to do some steps manually to get connectivity.
First off you need to add the development APT repository to your APT sources:
# echo 'deb https://maedevu.maemo.org/leste beowulf-devel main contrib non-free' >> /etc/apt/sources.list
Now update and upgrade:
# apt update && apt upgrade
Then you can install these things:
# apt install ofono libicd-network-ofono connui-iapsettings-gprs connui-statusbar-cellular connui-home-cellular connui-cellular-settings connui-conndlgs-cellular
We need mdbus2 to manipulate oFono:
# wget http://ftp.nl.debian.org/debian/pool/main/m/mdbus/mdbus2_2.3.3-2_amd64.deb
# dpkg -i mdbus2_2.3.3-2_amd64.deb
Then we can check if oFono finds our modem:
# mdbus2 -s org.ofono
/
/bluetooth
/bluetooth/profile
/bluetooth/profile/dun_gw
/bluetooth/profile/hfp_ag
/bluetooth/profile/hfp_hf
/mbm_0
Then can check our mbm_0 modem:
# mdbus2 -s org.ofono /mbm_0
[METHOD] org.freedesktop.DBus.Introspectable.Introspect() -> (s:xml)
[METHOD] org.ofono.Modem.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.Modem.SetProperty(s:property, v:value) -> ()
[SIGNAL] org.ofono.Modem.PropertyChanged(s:name, v:value)
# mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.GetProperties
({'Online': <false>, 'Powered': <false>, 'Lockdown': <false>, 'Emergency': <false>, 'SystemPath': <'/sys/devices/pci0000:00/0000:00:04.0/usb1/1-1'>, 'Interfaces': <@as []>, 'Features': <@as []>, 'Type': <'hardware'>},)
Power on the modem:
# mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.SetProperty Powered true
()
# mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.GetProperties
({'Online': <false>, 'Powered': <true>, 'Lockdown': <false>, 'Emergency': <false>, 'Manufacturer': <'Lenovo'>, 'Model': <'N5321 gw'>, 'Revision': <'R3C11'>, 'Serial': <'xxxxxxxxxxxx'>, 'SystemPath': <'/sys/devices/pci0000:00/0000:00:04.0/usb1/1-1'>, 'Interfaces': <['org.ofono.SimManager']>, 'Features': <['sim']>, 'Type': <'hardware'>},)
Check if we need to enter a pin:
# mdbus2 -s org.ofono /mbm_0 org.ofono.SimManager.GetProperties
({'Present': <true>, 'CardIdentifier': <'xxxxxx'>, 'FixedDialing': <false>, 'BarredDialing': <false>, 'SubscriberNumbers': <@as []>, 'LockedPins': <['pin']>, 'PreferredLanguages': <['de', 'en', 'fr']>, 'PinRequired': <'pin'>, 'Retries': <{'pin': byte 0x03, 'pin2': 0x03, 'puk': 0x0a, 'puk2': 0x0a}>, 'CardSlotCount': <uint32 1>, 'ActiveCardSlot': <uint32 1>},)
If PinRequired is 'pin' we need to enter a pin to unlock the sim:
# mdbus2 -s org.ofono /mbm_0 org.ofono.SimManager.EnterPin pin 1234
()
Then we can bring the modem online:
# mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.SetProperty Online true
()
If we now redo the first mdbus2 command on /mbm_0:
# mdbus2 -s org.ofono /mbm_0
[METHOD] org.freedesktop.DBus.Introspectable.Introspect() -> (s:xml)
[METHOD] org.ofono.Modem.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.Modem.SetProperty(s:property, v:value) -> ()
[SIGNAL] org.ofono.Modem.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.SimManager.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.SimManager.SetProperty(s:property, v:value) -> ()
[METHOD] org.ofono.SimManager.ChangePin(s:type, s:oldpin, s:newpin) -> ()
[METHOD] org.ofono.SimManager.EnterPin(s:type, s:pin) -> ()
[METHOD] org.ofono.SimManager.ResetPin(s:type, s:puk, s:newpin) -> ()
[METHOD] org.ofono.SimManager.LockPin(s:type, s:pin) -> ()
[METHOD] org.ofono.SimManager.UnlockPin(s:type, s:pin) -> ()
[METHOD] org.ofono.SimManager.GetIcon(y:id) -> (ay:icon)
[SIGNAL] org.ofono.SimManager.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.AllowedAccessPoints.GetAllowedAccessPoints() -> (as:apnlist)
[METHOD] org.ofono.SimAuthentication.GetApplications() -> (a{oa{sv}}:applications)
[METHOD] org.ofono.SimAuthentication.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.SimToolkit.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.SimToolkit.SelectItem(y:item, o:agent) -> ()
[METHOD] org.ofono.SimToolkit.RegisterAgent(o:path) -> ()
[METHOD] org.ofono.SimToolkit.UnregisterAgent(o:path) -> ()
[SIGNAL] org.ofono.SimToolkit.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.RadioSettings.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.RadioSettings.SetProperty(s:property, v:value) -> ()
[SIGNAL] org.ofono.RadioSettings.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.MessageManager.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.MessageManager.SetProperty(s:property, v:value) -> ()
[METHOD] org.ofono.MessageManager.SendMessage(s:to, s:text) -> (o:path)
[METHOD] org.ofono.MessageManager.GetMessages() -> (a(oa{sv}):messages)
[SIGNAL] org.ofono.MessageManager.PropertyChanged(s:name, v:value)
[SIGNAL] org.ofono.MessageManager.IncomingMessage(s:message, a{sv}:info)
[SIGNAL] org.ofono.MessageManager.ImmediateMessage(s:message, a{sv}:info)
[SIGNAL] org.ofono.MessageManager.MessageAdded(o:path, a{sv}:properties)
[SIGNAL] org.ofono.MessageManager.MessageRemoved(o:path)
[METHOD] org.ofono.PushNotification.RegisterAgent(o:path) -> ()
[METHOD] org.ofono.PushNotification.UnregisterAgent(o:path) -> ()
[METHOD] org.ofono.SmartMessaging.RegisterAgent(o:path) -> ()
[METHOD] org.ofono.SmartMessaging.UnregisterAgent(o:path) -> ()
[METHOD] org.ofono.SmartMessaging.SendBusinessCard(s:to, ay:card) -> (o:path)
[METHOD] org.ofono.SmartMessaging.SendAppointment(s:to, ay:appointment) -> (o:path)
[METHOD] org.ofono.LocationReporting.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.LocationReporting.Request() -> (h:fd)
[METHOD] org.ofono.LocationReporting.Release() -> ()
[SIGNAL] org.ofono.LocationReporting.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.SupplementaryServices.Initiate(s:command) -> (s:result_name, v:value)
[METHOD] org.ofono.SupplementaryServices.Respond(s:reply) -> (s:result)
[METHOD] org.ofono.SupplementaryServices.Cancel() -> ()
[METHOD] org.ofono.SupplementaryServices.GetProperties() -> (a{sv}:properties)
[SIGNAL] org.ofono.SupplementaryServices.NotificationReceived(s:message)
[SIGNAL] org.ofono.SupplementaryServices.RequestReceived(s:message)
[SIGNAL] org.ofono.SupplementaryServices.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.CellBroadcast.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.CellBroadcast.SetProperty(s:property, v:value) -> ()
[SIGNAL] org.ofono.CellBroadcast.PropertyChanged(s:property, v:value)
[SIGNAL] org.ofono.CellBroadcast.IncomingBroadcast(s:message, q:channel)
[SIGNAL] org.ofono.CellBroadcast.EmergencyBroadcast(s:message, a{sv}:dict)
[METHOD] org.ofono.ConnectionManager.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.ConnectionManager.SetProperty(s:property, v:value) -> ()
[METHOD] org.ofono.ConnectionManager.AddContext(s:type) -> (o:path)
[METHOD] org.ofono.ConnectionManager.RemoveContext(o:path) -> ()
[METHOD] org.ofono.ConnectionManager.DeactivateAll() -> ()
[METHOD] org.ofono.ConnectionManager.GetContexts() -> (a(oa{sv}):contexts_with_properties)
[METHOD] org.ofono.ConnectionManager.ResetContexts() -> ()
[SIGNAL] org.ofono.ConnectionManager.PropertyChanged(s:name, v:value)
[SIGNAL] org.ofono.ConnectionManager.ContextAdded(o:path, a{sv}:properties)
[SIGNAL] org.ofono.ConnectionManager.ContextRemoved(o:path)
[METHOD] org.ofono.NetworkRegistration.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.NetworkRegistration.Register() -> ()
[METHOD] org.ofono.NetworkRegistration.GetOperators() -> (a(oa{sv}):operators_with_properties)
[METHOD] org.ofono.NetworkRegistration.Scan() -> (a(oa{sv}):operators_with_properties)
[SIGNAL] org.ofono.NetworkRegistration.PropertyChanged(s:name, v:value)
[[Category:Device]]
1b1313df3028c5629db477e73ceef13b9db4f098
761
760
2020-05-29T13:39:06Z
Uvos
39
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Generic
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
Generic virtual machine target. This is particularly useful when doing development and testing.
== Installation ==
https://maedevu.maemo.org/images/virtual-machines/
There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration.
Converting the qcow2 image to raw allows it to be used on real hardware.
=== VirtualBox ===
Download latest .vdi.xz image, unpack it with "xz -d" command.
Create new Virtual Machine, select "Debian (64-bit)" and 1024MB RAM. Use the downloaded file as virtual hard disk.
You are done!
=== QEMU ===
In general something like:
qemu-system-x86_64 -hda maemo-leste-1.0-amd64.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024
should work. But there seem to be issues with some QEMU versions, for more details see [https://github.com/maemo-leste/bugtracker/issues/198 issue#198].
To set up a port forward for SSH, add:
-nic user,hostfwd=tcp:127.0.0.1:7722-:22
And then log in like this (password: <code>toor</code>):
ssh root@localhost -p 7722
If the mouse pointer is grabbed and no cursor shows, you can add:
-usb -device usb-tablet
to the command line. Alternatively if that dose not work you can instead add:
-usb -device usb-mouse -machine vmport=off
If you have a USB modem you can also use that in QEMU. You can either use sudo to elevate your privileges to be able to use it:
sudo qemu-system-x86_64 -hda maemo-leste-1.0-amd64-virtual-20200324.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024 \
-nic user,hostfwd=tcp:127.0.0.1:7722-:22 \
-usb -device usb-ehci,id=ehci \
-device usb-host,bus=ehci.0,vendorid=0x0bdb,productid=0x193e
Or you can make a udev rule for your device. For example, with a Lenovo Ericsson N5321 gw you can create "/etc/udev/rules.d/45-n5321.rules" with this in it:
# Lenovo Ericsson N5321 gw simple udev rule
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="193e", \
MODE:="0666"
And then activate it by running these two commands as root:
# udevadm control --reload-rules
# udevadm trigger
Now you can run QEMU without the need for sudo!
=== virt-manager ===
See [https://github.com/maemo-leste/bugtracker/issues/291#issuecomment-575952497 here].
== Initial configuration ==
On the first run you may want to generate ssh host keys and set the timezone. To do so open the "X Terminal" application and run:
sudo su -
dpkg-reconfigure openssh-server
dpkg-reconfigure tzdata
Make the system up-to-date:
apt update
apt upgrade
apt install linux-image-amd64
reboot
To get networking to work (at least in virtualbox), launch a shell and do
sudo ifconfig eth0 up
sudo dhclient eth0
== Connectivity ==
If you have a modem exposed to QEMU, you still need to do some steps manually to get connectivity.
First off you need to add the development APT repository to your APT sources:
# echo 'deb https://maedevu.maemo.org/leste beowulf-devel main contrib non-free' >> /etc/apt/sources.list
Now update and upgrade:
# apt update && apt upgrade
Then you can install these things:
# apt install ofono libicd-network-ofono connui-iapsettings-gprs connui-statusbar-cellular connui-home-cellular connui-cellular-settings connui-conndlgs-cellular
We need mdbus2 to manipulate oFono:
# wget http://ftp.nl.debian.org/debian/pool/main/m/mdbus/mdbus2_2.3.3-2_amd64.deb
# dpkg -i mdbus2_2.3.3-2_amd64.deb
Then we can check if oFono finds our modem:
# mdbus2 -s org.ofono
/
/bluetooth
/bluetooth/profile
/bluetooth/profile/dun_gw
/bluetooth/profile/hfp_ag
/bluetooth/profile/hfp_hf
/mbm_0
Then can check our mbm_0 modem:
# mdbus2 -s org.ofono /mbm_0
[METHOD] org.freedesktop.DBus.Introspectable.Introspect() -> (s:xml)
[METHOD] org.ofono.Modem.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.Modem.SetProperty(s:property, v:value) -> ()
[SIGNAL] org.ofono.Modem.PropertyChanged(s:name, v:value)
# mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.GetProperties
({'Online': <false>, 'Powered': <false>, 'Lockdown': <false>, 'Emergency': <false>, 'SystemPath': <'/sys/devices/pci0000:00/0000:00:04.0/usb1/1-1'>, 'Interfaces': <@as []>, 'Features': <@as []>, 'Type': <'hardware'>},)
Power on the modem:
# mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.SetProperty Powered true
()
# mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.GetProperties
({'Online': <false>, 'Powered': <true>, 'Lockdown': <false>, 'Emergency': <false>, 'Manufacturer': <'Lenovo'>, 'Model': <'N5321 gw'>, 'Revision': <'R3C11'>, 'Serial': <'xxxxxxxxxxxx'>, 'SystemPath': <'/sys/devices/pci0000:00/0000:00:04.0/usb1/1-1'>, 'Interfaces': <['org.ofono.SimManager']>, 'Features': <['sim']>, 'Type': <'hardware'>},)
Check if we need to enter a pin:
# mdbus2 -s org.ofono /mbm_0 org.ofono.SimManager.GetProperties
({'Present': <true>, 'CardIdentifier': <'xxxxxx'>, 'FixedDialing': <false>, 'BarredDialing': <false>, 'SubscriberNumbers': <@as []>, 'LockedPins': <['pin']>, 'PreferredLanguages': <['de', 'en', 'fr']>, 'PinRequired': <'pin'>, 'Retries': <{'pin': byte 0x03, 'pin2': 0x03, 'puk': 0x0a, 'puk2': 0x0a}>, 'CardSlotCount': <uint32 1>, 'ActiveCardSlot': <uint32 1>},)
If PinRequired is 'pin' we need to enter a pin to unlock the sim:
# mdbus2 -s org.ofono /mbm_0 org.ofono.SimManager.EnterPin pin 1234
()
Then we can bring the modem online:
# mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.SetProperty Online true
()
If we now redo the first mdbus2 command on /mbm_0:
# mdbus2 -s org.ofono /mbm_0
[METHOD] org.freedesktop.DBus.Introspectable.Introspect() -> (s:xml)
[METHOD] org.ofono.Modem.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.Modem.SetProperty(s:property, v:value) -> ()
[SIGNAL] org.ofono.Modem.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.SimManager.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.SimManager.SetProperty(s:property, v:value) -> ()
[METHOD] org.ofono.SimManager.ChangePin(s:type, s:oldpin, s:newpin) -> ()
[METHOD] org.ofono.SimManager.EnterPin(s:type, s:pin) -> ()
[METHOD] org.ofono.SimManager.ResetPin(s:type, s:puk, s:newpin) -> ()
[METHOD] org.ofono.SimManager.LockPin(s:type, s:pin) -> ()
[METHOD] org.ofono.SimManager.UnlockPin(s:type, s:pin) -> ()
[METHOD] org.ofono.SimManager.GetIcon(y:id) -> (ay:icon)
[SIGNAL] org.ofono.SimManager.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.AllowedAccessPoints.GetAllowedAccessPoints() -> (as:apnlist)
[METHOD] org.ofono.SimAuthentication.GetApplications() -> (a{oa{sv}}:applications)
[METHOD] org.ofono.SimAuthentication.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.SimToolkit.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.SimToolkit.SelectItem(y:item, o:agent) -> ()
[METHOD] org.ofono.SimToolkit.RegisterAgent(o:path) -> ()
[METHOD] org.ofono.SimToolkit.UnregisterAgent(o:path) -> ()
[SIGNAL] org.ofono.SimToolkit.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.RadioSettings.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.RadioSettings.SetProperty(s:property, v:value) -> ()
[SIGNAL] org.ofono.RadioSettings.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.MessageManager.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.MessageManager.SetProperty(s:property, v:value) -> ()
[METHOD] org.ofono.MessageManager.SendMessage(s:to, s:text) -> (o:path)
[METHOD] org.ofono.MessageManager.GetMessages() -> (a(oa{sv}):messages)
[SIGNAL] org.ofono.MessageManager.PropertyChanged(s:name, v:value)
[SIGNAL] org.ofono.MessageManager.IncomingMessage(s:message, a{sv}:info)
[SIGNAL] org.ofono.MessageManager.ImmediateMessage(s:message, a{sv}:info)
[SIGNAL] org.ofono.MessageManager.MessageAdded(o:path, a{sv}:properties)
[SIGNAL] org.ofono.MessageManager.MessageRemoved(o:path)
[METHOD] org.ofono.PushNotification.RegisterAgent(o:path) -> ()
[METHOD] org.ofono.PushNotification.UnregisterAgent(o:path) -> ()
[METHOD] org.ofono.SmartMessaging.RegisterAgent(o:path) -> ()
[METHOD] org.ofono.SmartMessaging.UnregisterAgent(o:path) -> ()
[METHOD] org.ofono.SmartMessaging.SendBusinessCard(s:to, ay:card) -> (o:path)
[METHOD] org.ofono.SmartMessaging.SendAppointment(s:to, ay:appointment) -> (o:path)
[METHOD] org.ofono.LocationReporting.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.LocationReporting.Request() -> (h:fd)
[METHOD] org.ofono.LocationReporting.Release() -> ()
[SIGNAL] org.ofono.LocationReporting.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.SupplementaryServices.Initiate(s:command) -> (s:result_name, v:value)
[METHOD] org.ofono.SupplementaryServices.Respond(s:reply) -> (s:result)
[METHOD] org.ofono.SupplementaryServices.Cancel() -> ()
[METHOD] org.ofono.SupplementaryServices.GetProperties() -> (a{sv}:properties)
[SIGNAL] org.ofono.SupplementaryServices.NotificationReceived(s:message)
[SIGNAL] org.ofono.SupplementaryServices.RequestReceived(s:message)
[SIGNAL] org.ofono.SupplementaryServices.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.CellBroadcast.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.CellBroadcast.SetProperty(s:property, v:value) -> ()
[SIGNAL] org.ofono.CellBroadcast.PropertyChanged(s:property, v:value)
[SIGNAL] org.ofono.CellBroadcast.IncomingBroadcast(s:message, q:channel)
[SIGNAL] org.ofono.CellBroadcast.EmergencyBroadcast(s:message, a{sv}:dict)
[METHOD] org.ofono.ConnectionManager.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.ConnectionManager.SetProperty(s:property, v:value) -> ()
[METHOD] org.ofono.ConnectionManager.AddContext(s:type) -> (o:path)
[METHOD] org.ofono.ConnectionManager.RemoveContext(o:path) -> ()
[METHOD] org.ofono.ConnectionManager.DeactivateAll() -> ()
[METHOD] org.ofono.ConnectionManager.GetContexts() -> (a(oa{sv}):contexts_with_properties)
[METHOD] org.ofono.ConnectionManager.ResetContexts() -> ()
[SIGNAL] org.ofono.ConnectionManager.PropertyChanged(s:name, v:value)
[SIGNAL] org.ofono.ConnectionManager.ContextAdded(o:path, a{sv}:properties)
[SIGNAL] org.ofono.ConnectionManager.ContextRemoved(o:path)
[METHOD] org.ofono.NetworkRegistration.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.NetworkRegistration.Register() -> ()
[METHOD] org.ofono.NetworkRegistration.GetOperators() -> (a(oa{sv}):operators_with_properties)
[METHOD] org.ofono.NetworkRegistration.Scan() -> (a(oa{sv}):operators_with_properties)
[SIGNAL] org.ofono.NetworkRegistration.PropertyChanged(s:name, v:value)
[[Category:Device]]
1ea5e7ce07e58e73abb5adf0346bf465f0622753
X86
0
106
751
2020-05-27T12:45:30Z
Brabo
38
Created page with "=== Running on x86/x86_64 === The contents of the <code>qcow2</code> file can be extracted and copied into hard drives for bare metal BIOS/Legacy CSM booting. To extract the..."
wikitext
text/x-wiki
=== Running on x86/x86_64 ===
The contents of the <code>qcow2</code> file can be extracted and copied into hard drives for bare metal BIOS/Legacy CSM booting.
To extract the contents of the <code>qcow2</code> file, decompress it first and convert it into <code>raw</code> format.
$ xz -d maemo-leste-1.0-amd64-virtual-20180425.qcow2.xz
$ qemu-img convert -f qcow2 -O raw maemo-leste-1.0-amd64-virtual-20180425.qcow2 maemo-leste-1.0-amd64-virtual-20180425.raw
The raw image that it yields, can then be setup as a loopback device, and its partitions mounted.
# losetup --partscan -f maemo-leste-1.0-amd64-virtual-20180425.raw
# mkdir /mnt/maemo-virt
# mount /dev/loop0p1 /mnt/maemo-virt
Setup one <code>Linux</code> partition on the device to be used for booting, format it with a GRUB-compatible filesystem (<i>ext4</i>, for example), then mount it as well.
# cfdisk /dev/sdb
# ...
# mkfs.ext4 /dev/sdb1
# mkdir /mnt/maemo-bare
# mount /dev/sdb1 /mnt/maemo-bare
Change directory to the loop partition, the copy over its contents into the bare metal partition.
# cd /mnt/maemo-virt
# rsync -aAHXv * /mnt/maemo-bare
Once finished copying, bind mount special filesystems into the bare metal Maemo partition, then change root.
# mount --bind /dev /mnt/maemo-bare/dev
# mount --bind /proc /mnt/maemo-bare/proc
# mount --bind /sys /mnt/maemo-bare/sys
# chroot /mnt/maemo-bare /bin/bash
Load the new root's shell profile, install GRUB to the bare metal boot device (<i>/dev/sdb</i>, in this example), then regenerate the GRUB configuration file.
# . /etc/profile
# grub-install /dev/sdb
# grub-mkconfig -o /boot/grub/grub.cfg
After that, you may exit the chroot environment (Ctrl+D), unmount all the filesystems, then reboot the system into your new bare metal Maemo Leste installation.
# umount /mnt/maemo-virt
# umount -AR /mnt/maemo-bare
# reboot
5ece8e51982d9a6396d96c7c818304338e584f12
770
751
2020-06-05T02:23:51Z
Derby
3
wikitext
text/x-wiki
{{DISPLAYTITLE:x86}}
=== Running on x86/x86_64 ===
The contents of the <code>qcow2</code> file can be extracted and copied into hard drives for bare metal BIOS/Legacy CSM booting.
To extract the contents of the <code>qcow2</code> file, decompress it first and convert it into <code>raw</code> format.
$ xz -d maemo-leste-1.0-amd64-virtual-20180425.qcow2.xz
$ qemu-img convert -f qcow2 -O raw maemo-leste-1.0-amd64-virtual-20180425.qcow2 maemo-leste-1.0-amd64-virtual-20180425.raw
The raw image that it yields, can then be setup as a loopback device, and its partitions mounted.
# losetup --partscan -f maemo-leste-1.0-amd64-virtual-20180425.raw
# mkdir /mnt/maemo-virt
# mount /dev/loop0p1 /mnt/maemo-virt
Setup one <code>Linux</code> partition on the device to be used for booting, format it with a GRUB-compatible filesystem (<i>ext4</i>, for example), then mount it as well.
# cfdisk /dev/sdb
# ...
# mkfs.ext4 /dev/sdb1
# mkdir /mnt/maemo-bare
# mount /dev/sdb1 /mnt/maemo-bare
Change directory to the loop partition, the copy over its contents into the bare metal partition.
# cd /mnt/maemo-virt
# rsync -aAHXv * /mnt/maemo-bare
Once finished copying, bind mount special filesystems into the bare metal Maemo partition, then change root.
# mount --bind /dev /mnt/maemo-bare/dev
# mount --bind /proc /mnt/maemo-bare/proc
# mount --bind /sys /mnt/maemo-bare/sys
# chroot /mnt/maemo-bare /bin/bash
Load the new root's shell profile, install GRUB to the bare metal boot device (<i>/dev/sdb</i>, in this example), then regenerate the GRUB configuration file.
# . /etc/profile
# grub-install /dev/sdb
# grub-mkconfig -o /boot/grub/grub.cfg
After that, you may exit the chroot environment (Ctrl+D), unmount all the filesystems, then reboot the system into your new bare metal Maemo Leste installation.
# umount /mnt/maemo-virt
# umount -AR /mnt/maemo-bare
# reboot
55daa81806d182590d09064a0363b4a475313d31
Development/Porting Packages
0
82
755
590
2020-05-28T11:32:03Z
Sicelo
5
wikitext
text/x-wiki
= Porting / Creating packages =
If you're looking at creating your own package, or porting software, the first things to do are:
# Check if someone already ported the package (if it in the repository? Is there an issue for it?)
# Check if there already are Debian packaging scripts/files. Debian packages a LOT of software, so it's likely that the software is already in the Maemo repository, or someone at least has build scripts for it.
# (TODO)
= Porting existing Maemo Fremantle packages =
Maemo Fremantle ("Nokia Maemo for the N900") contains a lot of packages that are open source. Most of them should run with very few changes on Maemo Leste, the main changes you will need to make will be:
# Check if someone already ported the package (if it in the repository? Is there an issue for it?)
# Updating of the Debian packaging files/scripts.
# Porting to newer libraries if old libraries are used (OpenSSL 0.9.8 -> OpenSSL 1.1.x, Qt4 -> Qt5, etc)
# Fixing any compile errors/warnings due to more strict compile flags
Source of the packages can be found at one of these places:
* http://maemo.org/packages/
* https://garage.maemo.org/
If you import a package, please try to preserve history if possible (converting from svn -> git is not too hard)
= Forking Debian/Devuan packages =
(TODO - Describe what branches need to be set up, Jenkins integration, etc)
= Preparing package for the repositories =
See https://leste.maemo.org/Development/Building_Packages
1ba78ae1a9da9ff73832b7a6fcd173484d796c30
Nokia N950
0
56
756
155
2020-05-29T08:56:07Z
Halftux
7
/* Installation */ changed link to the image
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Nokia
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
[https://github.com/maemo-leste/bugtracker/issues/121 Status]
=== Installation ===
''' [http://www.swagman.org/juice/ubiboot/ubiboot-02/ ubiboot] from eMMC '''
# [http://www.swagman.org/juice/ubiboot/README Install ubiboot].
# [https://talk.maemo.org/showthread.php?t=91914 Create a new slice on the eMMC] and format it to ext4.
# Mount your new ext4 slice and unpack the .tar.gz dist ([https://maedevu.maemo.org/images/n9/ N9], [https://maedevu.maemo.org/images/n950/ N950]) to it.
# Configure <code>ubiboot.conf</code>. This guide assumes you will use slot 5 for Maemo Leste ([https://github.com/dderby/ubiboot-animatronics/blob/master/ubiboot.conf example]):
#* Set '''G_OS5_INITSCRIPT''' to <code>\/sbin\/preinit</code>
#* Set '''G_OS5_NUM''' to <code>1</code>
#* Set '''G_OS5_PARTITION''' to the partition number of your Maemo Leste slice
#* Set '''G_OS5_NAME''' to <code>Maemo</code>
#* Set '''G_OS5_1_LABEL''' to <code>Maemo Leste - Linux 4.16</code> or whatever description you like
#* Set '''G_OS5_1_FILE''' to <code>/boot/Maemo/boot/zImage</code>
# Reboot to ubiboot and select the slot for Maemo Leste.
If you don't want to repartition your eMMC, there are two alternatives:
* Use [https://talk.maemo.org/showthread.php?t=94042 N9 Easy Boot].
* Unpack the dist to Harmattan's <code>/home</code> directory and set '''G_OS5_PARTITION''' in ubiboot.conf to <code>3</code>. This will result in Maemo Leste sharing a slice with Harmattan's <code>/home</code>. Be careful when removing Maemo Leste, not to remove Harmattan's <code>user</code> or <code>developer</code> home directories.
=== Kernel development ===
Linux 4.16.4 plus patches
N950 status: https://elinux.org/N950
N9 status: https://elinux.org/N9
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.16.y linux-stable 4.16.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n950-patches N950 patches], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n9-patches N9 patches]
[[Category:Device]]
78c1f63bfa5810e139176e3a5ca2196ee9686c02
Main Page
0
1
762
655
2020-06-02T08:58:06Z
Wizzup
4
wikitext
text/x-wiki
= Description =
Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more.
You can find us on '''freenode''', channel '''#maemo-leste'''.
For an overview of the current status, you might want to check out: [[Status]]
Maemo Leste is based on Devuan Beowulf (Debian Buster) and all the "supported" devices ship with recent Linux (mainline-based) kernels.
The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers.
For some devices, we have development images available, such as the N900. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software.
= Frequently Asked Questions =
See [[Leste_FAQ|FAQ]]
= Supported Devices =
See [[:Category:Device]]
= Development =
See [[Development]]
= Roadmap =
== Project milestones ==
https://github.com/maemo-leste/bugtracker/milestones
== Wishlist ==
You have an application you want to see in Leste? Please let us know [[Wishlist|here]].
= Talks =
See [[Talks]]
= Links =
<div>
The central point of meeting and talking is IRC (irc.freenode.net in #maemo-leste) and this thread: https://talk.maemo.org/showthread.php?t=100192.
*Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io]
*Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues]
*Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/]
*Our Extras Github: [https://github.com/maemo-leste-extras/ https://github.com/maemo-leste-extras/]
*Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/]
*Our Jenkins build server: [https://phoenix.maemo.org/ https://phoenix.maemo.org/]
*Our IRC history: [http://maedevu.maemo.org/irc.txt http://maedevu.maemo.org/irc.txt]
*Our YouTube channel: [https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w] (via [https://www.invidio.us/channel/UCgAWiHvWSuJAg5hjk7JYn1w Invidious] )
*Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
*RSS feed: [https://maemo-leste.github.io/feeds/all.atom.xml https://maemo-leste.github.io/feeds/all.atom.xml]
*[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)]
</div>
c4839082a2dabc7c8a850440cf4247e63d6e9c15
790
762
2020-06-27T00:45:22Z
Wizzup
4
wikitext
text/x-wiki
= Description =
Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more.
You can find us on '''freenode''', channel '''#maemo-leste'''.
For an overview of the current status, you might want to check out: [[Status]]
Maemo Leste is based on Devuan Beowulf (Debian Buster) and all the "supported" devices ship with recent Linux (mainline-based) kernels.
The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers.
For some devices, we have development images available, such as the N900. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software.
If you have not used Maemo before, you might want to check out some of the tips on the [[HowTo]] page.
== Frequently Asked Questions ==
See [[Leste_FAQ|FAQ]]
== Supported Devices ==
See [[:Category:Device]]
== Development ==
See [[Development]]
== Roadmap ==
=== Project milestones ===
https://github.com/maemo-leste/bugtracker/milestones
=== Wishlist ===
You have an application you want to see in Leste? Please let us know [[Wishlist|here]].
== Talks ==
See [[Talks]]
== Links ==
<div>
The central point of meeting and talking is IRC (irc.freenode.net in #maemo-leste) and this thread: https://talk.maemo.org/showthread.php?t=100192.
*Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io]
*Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues]
*Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/]
*Our Extras Github: [https://github.com/maemo-leste-extras/ https://github.com/maemo-leste-extras/]
*Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/]
*Our Jenkins build server: [https://phoenix.maemo.org/ https://phoenix.maemo.org/]
*Our IRC history: [http://maedevu.maemo.org/irc.txt http://maedevu.maemo.org/irc.txt]
*Our YouTube channel: [https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w] (via [https://www.invidio.us/channel/UCgAWiHvWSuJAg5hjk7JYn1w Invidious] )
*Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
*RSS feed: [https://maemo-leste.github.io/feeds/all.atom.xml https://maemo-leste.github.io/feeds/all.atom.xml]
*[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)]
</div>
0b9d4c801bf91eae4a72c46ad5b1957274c3ef1e
Motorola Droid 4
0
50
763
740
2020-06-03T08:45:32Z
Uvos
39
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.6.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Work with AT commands, needs ofono porting work, and then Leste UI
|-
| Phone calls || WIP || Work with AT commands (good call quality, too), needs ofono porting work, and then Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Currently disabled due to interference with WiFi
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available in /sys, but not yet as input device, needs kernel and MCE work https://github.com/maemo-leste/bugtracker/issues/294
|-
| Compass || ? || Available in /sys (after loading ak8975 module. No applications using it yet
|-
| Proximity sensor || WIP || Sensor works, not yet exposed as evdev device
|-
| Ambient Light Sensor || Yes || https://github.com/maemo-leste/mce/pull/8
|-
| Vibration Motor || Yes || No userspace yet (should be in mce)
|-
| HDMI-out || WIP || works
|-
| TV-out || N/A ||
|-
| GPS || ? || Works but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
* Poweroff device, grab the SD card
* Backup any important files
* Grab latest image from https://maedevu.maemo.org/images/droid4/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Wifi ====
The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
# apt-get install ti-utils-wilink6 droid4-wlanconfig
Run calibration:
# sudo maserati-calibrate
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this over SSH:
<pre>
Read modem output:
# cat /dev/motmdm1 &
Online modem:
# printf "AT+CFUN=1\r" > /dev/motmdm1
Connect to network:
# printf "AT+COPS=1\r" > /dev/motmdm1
Print connected network:
# printf "AT+COPS?\r" > /dev/motmdm1
Not sure, do it anyway:
# printf "AT+SCRN=0\r" > /dev/motmdm1
Dial a number:
# printf "ATD+1234567890\r" > /dev/motmdm1
Hang up:
# printf "ATH\r" > /dev/motmdm1
Answer incoming call:
# printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero.
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
</gallery>
[[Category:Device]]
e13569dab3b972a8d387d5750e2f996791ab1f94
764
763
2020-06-03T08:47:01Z
Uvos
39
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.6.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Work with AT commands, needs ofono porting work, and then Leste UI
|-
| Phone calls || WIP || Work with AT commands (good call quality, too), needs ofono porting work, and then Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Currently disabled due to interference with WiFi
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available in /sys, but not yet as input device, needs kernel and MCE work https://github.com/maemo-leste/bugtracker/issues/294
|-
| Compass || ? || Available in /sys (after loading ak8975 module. No applications using it yet
|-
| Proximity sensor || WIP || Sensor works, not yet exposed as evdev device
|-
| Ambient Light Sensor || Yes || https://github.com/maemo-leste/mce/pull/8
|-
| Vibration Motor || Yes || No userspace yet (should be in mce)
|-
| HDMI-out || WIP || works
|-
| TV-out || N/A ||
|-
| GPS || ? || Works but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
* Poweroff device, grab the SD card
* Backup any important files
* Grab latest image from https://maedevu.maemo.org/images/droid4/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Wifi ====
The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
<\pre>
Run calibration:
<pre>
sudo maserati-calibrate
<\pre>
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this over SSH:
<pre>
Read modem output:
# cat /dev/motmdm1 &
Online modem:
# printf "AT+CFUN=1\r" > /dev/motmdm1
Connect to network:
# printf "AT+COPS=1\r" > /dev/motmdm1
Print connected network:
# printf "AT+COPS?\r" > /dev/motmdm1
Not sure, do it anyway:
# printf "AT+SCRN=0\r" > /dev/motmdm1
Dial a number:
# printf "ATD+1234567890\r" > /dev/motmdm1
Hang up:
# printf "ATH\r" > /dev/motmdm1
Answer incoming call:
# printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero.
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
</gallery>
[[Category:Device]]
48191243f9d37087175bc52b9d436fa57f99d463
765
764
2020-06-03T08:49:28Z
Uvos
39
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.6.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Work with AT commands, needs ofono porting work, and then Leste UI
|-
| Phone calls || WIP || Work with AT commands (good call quality, too), needs ofono porting work, and then Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Currently disabled due to interference with WiFi
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available in /sys, but not yet as input device, needs kernel and MCE work https://github.com/maemo-leste/bugtracker/issues/294
|-
| Compass || ? || Available in /sys (after loading ak8975 module. No applications using it yet
|-
| Proximity sensor || WIP || Sensor works, not yet exposed as evdev device
|-
| Ambient Light Sensor || Yes || https://github.com/maemo-leste/mce/pull/8
|-
| Vibration Motor || Yes || No userspace yet (should be in mce)
|-
| HDMI-out || WIP || works
|-
| TV-out || N/A ||
|-
| GPS || ? || Works but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
* Poweroff device, grab the SD card
* Backup any important files
* Grab latest image from https://maedevu.maemo.org/images/droid4/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Wifi ====
The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this over SSH:
<pre>
Read modem output:
# cat /dev/motmdm1 &
Online modem:
# printf "AT+CFUN=1\r" > /dev/motmdm1
Connect to network:
# printf "AT+COPS=1\r" > /dev/motmdm1
Print connected network:
# printf "AT+COPS?\r" > /dev/motmdm1
Not sure, do it anyway:
# printf "AT+SCRN=0\r" > /dev/motmdm1
Dial a number:
# printf "ATD+1234567890\r" > /dev/motmdm1
Hang up:
# printf "ATH\r" > /dev/motmdm1
Answer incoming call:
# printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero.
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
</gallery>
[[Category:Device]]
c430c0ffb51296555bd8cc4725ae1e3f4d497486
785
765
2020-06-20T17:24:23Z
Sicelo
5
/* Status */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.6.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| 2G/3G data || WIP || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works with ofono (good call quality, too), needs Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Currently disabled due to interference with WiFi
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available in /sys, but not yet as input device, needs kernel and MCE work https://github.com/maemo-leste/bugtracker/issues/294
|-
| Compass || ? || Available in /sys (after loading ak8975 module. No applications using it yet
|-
| Proximity sensor || WIP || Sensor works, not yet exposed as evdev device
|-
| Ambient Light Sensor || Yes || https://github.com/maemo-leste/mce/pull/8
|-
| Vibration Motor || Yes || No userspace yet (should be in mce)
|-
| HDMI-out || WIP || works
|-
| TV-out || N/A ||
|-
| GPS || ? || Works but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
* Poweroff device, grab the SD card
* Backup any important files
* Grab latest image from https://maedevu.maemo.org/images/droid4/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Wifi ====
The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this over SSH:
<pre>
Read modem output:
# cat /dev/motmdm1 &
Online modem:
# printf "AT+CFUN=1\r" > /dev/motmdm1
Connect to network:
# printf "AT+COPS=1\r" > /dev/motmdm1
Print connected network:
# printf "AT+COPS?\r" > /dev/motmdm1
Not sure, do it anyway:
# printf "AT+SCRN=0\r" > /dev/motmdm1
Dial a number:
# printf "ATD+1234567890\r" > /dev/motmdm1
Hang up:
# printf "ATH\r" > /dev/motmdm1
Answer incoming call:
# printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero.
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
</gallery>
[[Category:Device]]
0ca05039344581f850db6f73b1986a9eba599a23
787
785
2020-06-24T16:58:59Z
Xsetiadi
33
/* Status */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.7.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| 2G/3G data || WIP || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works with ofono (good call quality, too), needs Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Currently disabled due to interference with WiFi
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available in /sys, but not yet as input device, needs kernel and MCE work https://github.com/maemo-leste/bugtracker/issues/294
|-
| Compass || ? || Available in /sys (after loading ak8975 module. No applications using it yet
|-
| Proximity sensor || WIP || Sensor works, not yet exposed as evdev device
|-
| Ambient Light Sensor || Yes || https://github.com/maemo-leste/mce/pull/8
|-
| Vibration Motor || Yes || No userspace yet (should be in mce)
|-
| HDMI-out || WIP || works
|-
| TV-out || N/A ||
|-
| GPS || ? || Works but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
* Poweroff device, grab the SD card
* Backup any important files
* Grab latest image from https://maedevu.maemo.org/images/droid4/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Wifi ====
The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this over SSH:
<pre>
Read modem output:
# cat /dev/motmdm1 &
Online modem:
# printf "AT+CFUN=1\r" > /dev/motmdm1
Connect to network:
# printf "AT+COPS=1\r" > /dev/motmdm1
Print connected network:
# printf "AT+COPS?\r" > /dev/motmdm1
Not sure, do it anyway:
# printf "AT+SCRN=0\r" > /dev/motmdm1
Dial a number:
# printf "ATD+1234567890\r" > /dev/motmdm1
Hang up:
# printf "ATH\r" > /dev/motmdm1
Answer incoming call:
# printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero.
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
</gallery>
[[Category:Device]]
9eb2f5be8ef319a732edd55c3b610371e3de3375
788
787
2020-06-25T12:59:22Z
Xsetiadi
33
/* Stuff to try */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.7.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| 2G/3G data || WIP || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works with ofono (good call quality, too), needs Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Currently disabled due to interference with WiFi
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available in /sys, but not yet as input device, needs kernel and MCE work https://github.com/maemo-leste/bugtracker/issues/294
|-
| Compass || ? || Available in /sys (after loading ak8975 module. No applications using it yet
|-
| Proximity sensor || WIP || Sensor works, not yet exposed as evdev device
|-
| Ambient Light Sensor || Yes || https://github.com/maemo-leste/mce/pull/8
|-
| Vibration Motor || Yes || No userspace yet (should be in mce)
|-
| HDMI-out || WIP || works
|-
| TV-out || N/A ||
|-
| GPS || ? || Works but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
* Poweroff device, grab the SD card
* Backup any important files
* Grab latest image from https://maedevu.maemo.org/images/droid4/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Make Audio Automaticaly set up ====
Adding this in /etc/rc.local above the ''exit 0'' to make audio work from boot.
amixer cset numid=22 HiFi
amixer cset numid=21 HiFi
amixer cset numid=26 HiFi
amixer cset numid=25 HiFi
amixer cset numid=1 50%
==== Wifi ====
The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this over SSH:
<pre>
Read modem output:
# cat /dev/motmdm1 &
Online modem:
# printf "AT+CFUN=1\r" > /dev/motmdm1
Connect to network:
# printf "AT+COPS=1\r" > /dev/motmdm1
Print connected network:
# printf "AT+COPS?\r" > /dev/motmdm1
Not sure, do it anyway:
# printf "AT+SCRN=0\r" > /dev/motmdm1
Dial a number:
# printf "ATD+1234567890\r" > /dev/motmdm1
Hang up:
# printf "ATH\r" > /dev/motmdm1
Answer incoming call:
# printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero.
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
</gallery>
[[Category:Device]]
30b6abfc4f529e3c2d6b1f068dd0afc998d4bc22
789
788
2020-06-25T13:02:22Z
Xsetiadi
33
/* Make Audio Automaticaly set up */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.7.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| 2G/3G data || WIP || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works with ofono (good call quality, too), needs Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Currently disabled due to interference with WiFi
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available in /sys, but not yet as input device, needs kernel and MCE work https://github.com/maemo-leste/bugtracker/issues/294
|-
| Compass || ? || Available in /sys (after loading ak8975 module. No applications using it yet
|-
| Proximity sensor || WIP || Sensor works, not yet exposed as evdev device
|-
| Ambient Light Sensor || Yes || https://github.com/maemo-leste/mce/pull/8
|-
| Vibration Motor || Yes || No userspace yet (should be in mce)
|-
| HDMI-out || WIP || works
|-
| TV-out || N/A ||
|-
| GPS || ? || Works but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
* Poweroff device, grab the SD card
* Backup any important files
* Grab latest image from https://maedevu.maemo.org/images/droid4/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Make Audio Automaticaly set up ====
Adding this in /etc/rc.local above the ''exit 0'' to make audio work from boot.
amixer cset numid=22 HiFi #set left speaker to HiFi
amixer cset numid=21 HiFi #set right speaker to HiFi
amixer cset numid=26 HiFi #set left headset to HiFi
amixer cset numid=25 HiFi #set right headset to HiFi
amixer cset numid=1 50% #set HiFi volumes to 50%
==== Wifi ====
The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this over SSH:
<pre>
Read modem output:
# cat /dev/motmdm1 &
Online modem:
# printf "AT+CFUN=1\r" > /dev/motmdm1
Connect to network:
# printf "AT+COPS=1\r" > /dev/motmdm1
Print connected network:
# printf "AT+COPS?\r" > /dev/motmdm1
Not sure, do it anyway:
# printf "AT+SCRN=0\r" > /dev/motmdm1
Dial a number:
# printf "ATD+1234567890\r" > /dev/motmdm1
Hang up:
# printf "ATH\r" > /dev/motmdm1
Answer incoming call:
# printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero.
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
</gallery>
[[Category:Device]]
1b41138165cc9da5b8c83b7b995bd14703408221
HowTo
0
107
766
2020-06-03T09:16:16Z
Wizzup
4
Created page with "This page serves to answer commonly asked "How do I do X?" question. __TOC__ == Generic (not device specific) == === How do I play music? === Currently, pick any UNIX..."
wikitext
text/x-wiki
This page serves to answer commonly asked "How do I do X?" question.
__TOC__
== Generic (not device specific) ==
=== How do I play music? ===
Currently, pick any UNIX or GUI tool from standard debian that you like.
In the future, we would recommend the Maemo player: https://wiki.maemo.org/Open_Media_Player
== Motorola Droid 4 ==
874376eeebd2fcd035369af94dce1b7068f28193
767
766
2020-06-04T13:59:49Z
Wizzup
4
wikitext
text/x-wiki
This page serves to answer commonly asked "How do I do X?" question.
__TOC__
== Generic (not device specific) ==
=== How I lock or unlock the device? ===
Pressing the power button twice in quick succession will lock the device. Pressing the button once will activate the screen to allow you to unlock the device.
If your device has a slider, like the [[Nokia_N900]] does, then you can also use that slider to lock and unlock the device.
Additionally, if your device has sliding keyboard (like the [[Nokia_N900]] and [[Motorola_Droid_4]]), then opening the keyboard will also unlock the device.
=== How do I play music? ===
Currently, pick any UNIX or GUI tool from standard debian that you like.
In the future, we would recommend the Maemo player: https://wiki.maemo.org/Open_Media_Player
== Motorola Droid 4 ==
1765ca7f0ae3f0dd375a7533644e06a4ecbdc277
768
767
2020-06-04T14:00:09Z
Wizzup
4
wikitext
text/x-wiki
This page serves to answer commonly asked "How do I do X?" question.
__TOC__
== Generic (not device specific) ==
=== How I lock and unlock the device? ===
Pressing the power button twice in quick succession will lock the device. Pressing the button once will activate the screen to allow you to unlock the device.
If your device has a slider, like the [[Nokia_N900]] does, then you can also use that slider to lock and unlock the device.
Additionally, if your device has sliding keyboard (like the [[Nokia_N900]] and [[Motorola_Droid_4]]), then opening the keyboard will also unlock the device.
=== How do I play music? ===
Currently, pick any UNIX or GUI tool from standard debian that you like.
In the future, we would recommend the Maemo player: https://wiki.maemo.org/Open_Media_Player
== Motorola Droid 4 ==
7535b76ae6b143bd6f8a50310d4ed9f8486de460
769
768
2020-06-04T15:05:20Z
Wizzup
4
wikitext
text/x-wiki
This page serves to answer commonly asked "How do I do X?" question.
__TOC__
== Generic (not device specific) ==
=== How I lock and unlock the device? ===
Pressing the power button twice in quick succession will lock the device. Pressing the button once will activate the screen to allow you to unlock the device.
If your device has a slider, like the [[Nokia_N900]] does, then you can also use that slider to lock and unlock the device.
Additionally, if your device has sliding keyboard (like the [[Nokia_N900]] and [[Motorola_Droid_4]]), then opening the keyboard will also unlock the device.
=== How do I play music? ===
Currently, pick any UNIX or GUI tool from standard debian that you like.
In the future, we would recommend the Maemo player: https://wiki.maemo.org/Open_Media_Player
== Motorola Droid 4 ==
=== How do I improve battery life? ===
In an optimal case, with a healthy battery, you should be able to get several days of uptime with the modem online. This will probably get a little better over time.
But there are also lots of things that might hinder power management, so it might also be less. We're still actively working on this.
Currently, you should consider stopping ntp (/etc/init.d/ntp stop) since it will eat a lot of battery needlessly.
bd24eed3efb4fd67386d0ece9a5dd85b1a4bcce5
771
769
2020-06-06T12:21:55Z
Wizzup
4
wikitext
text/x-wiki
This page serves to answer commonly asked "How do I do X?" question.
__TOC__
== Generic (not device specific) ==
=== How I lock and unlock the device? ===
Pressing the power button twice in quick succession will lock the device. Pressing the button once will activate the screen to allow you to unlock the device.
If your device has a slider, like the [[Nokia_N900]] does, then you can also use that slider to lock and unlock the device.
Additionally, if your device has sliding keyboard (like the [[Nokia_N900]] and [[Motorola_Droid_4]]), then opening the keyboard will also unlock the device.
=== How do I play music? ===
Currently, pick any UNIX or GUI tool from standard debian that you like.
In the future, we would recommend the Maemo player: https://wiki.maemo.org/Open_Media_Player
=== How do I get the virtual keyboard to show up? ===
Go to the application menu and start the control panel. From the control panel, open the text input applet, and make sure "Use virtual keyboard is checked".
The next you time touch an input field, you should see the virtual keyboard pop up. (If your device has a keyboard attached, then this will work slightly differently, depending on the sliding state of the keyboard)
== Motorola Droid 4 ==
=== How do I improve battery life? ===
In an optimal case, with a healthy battery, you should be able to get several days of uptime with the modem online. This will probably get a little better over time.
But there are also lots of things that might hinder power management, so it might also be less. We're still actively working on this.
Currently, you should consider stopping ntp (/etc/init.d/ntp stop) since it will eat a lot of battery needlessly.
== Nokia N900 ==
=== How do I show the special keys virtual keyboard? ===
Press the blue arrow, and then press the ctrl key.
03f24f9fad31a51713781cff9477d92e47ecdad3
775
771
2020-06-07T17:05:43Z
Wizzup
4
wikitext
text/x-wiki
This page serves to answer commonly asked "How do I do X?" question.
__TOC__
== Generic (not device specific) ==
=== How I lock and unlock the device? ===
Pressing the power button twice in quick succession will lock the device. Pressing the button once will activate the screen to allow you to unlock the device.
If your device has a slider, like the [[Nokia_N900]] does, then you can also use that slider to lock and unlock the device.
Additionally, if your device has sliding keyboard (like the [[Nokia_N900]] and [[Motorola_Droid_4]]), then opening the keyboard will also unlock the device.
=== How do I play music? ===
Currently, pick any UNIX or GUI tool from standard debian that you like.
In the future, we would recommend the Maemo player: https://wiki.maemo.org/Open_Media_Player
=== How do I get the virtual keyboard to show up? ===
Go to the application menu and start the control panel. From the control panel, open the text input applet, and make sure "Use virtual keyboard is checked".
The next you time touch an input field, you should see the virtual keyboard pop up. (If your device has a keyboard attached, then this will work slightly differently, depending on the sliding state of the keyboard)
== Motorola Droid 4 ==
=== How do I improve battery life? ===
In an optimal case, with a healthy battery, you should be able to get several days of uptime with the modem online. This will probably get a little better over time.
But there are also lots of things that might hinder power management, so it might also be less. We're still actively working on this.
Currently, you should consider stopping ntp (/etc/init.d/ntp stop) since it will eat a lot of battery needlessly.
=== How do I show the special keys virtual keyboard? ===
Press the OK button, and then press the key labelled "shift" (but really is the control key).
== Nokia N900 ==
=== How do I show the special keys virtual keyboard? ===
Press the blue arrow, and then press the ctrl key.
972bb985f22679271f6a5e8ed7a559800afea191
776
775
2020-06-13T13:15:11Z
Sicelo
5
/* How I lock and unlock the device? */
wikitext
text/x-wiki
This page serves to answer commonly asked "How do I do X?" question.
__TOC__
== Generic (not device specific) ==
=== How I lock and unlock the device? ===
If the device is unlocked, pressing the power button twice in quick succession will lock it. Also, pressing the power button once will pop up a dialog with an option to allow you to lock the device.
If the device is locked, pressing the power button once will bring up the lock screen with a slider you can drag to unlock the device.
('''NB''': on the Droid 4, the unlock slider may sometimes not show up or show up in the wrong place. In this case, you can still 'drag' it blindly. The drag area is exactly halfway from the top to the bottom of the screen, and starts around 1/4 of the width of the screen and extends to about 3/4 of its width.)
Additionally, if your device has sliding keyboard (like the [[Nokia_N900]] and [[Motorola_Droid_4]]), then opening the keyboard will also unlock the device. Closing the keyboard will lock the device again, but only if you have not interacted with the screen since the last slide up. Devices such as the [[Nokia_N900]] can also be locked/unlocked by toggling their physical lock/unlock slider.
=== How do I play music? ===
Currently, pick any UNIX or GUI tool from standard debian that you like.
In the future, we would recommend the Maemo player: https://wiki.maemo.org/Open_Media_Player
=== How do I get the virtual keyboard to show up? ===
Go to the application menu and start the control panel. From the control panel, open the text input applet, and make sure "Use virtual keyboard is checked".
The next you time touch an input field, you should see the virtual keyboard pop up. (If your device has a keyboard attached, then this will work slightly differently, depending on the sliding state of the keyboard)
== Motorola Droid 4 ==
=== How do I improve battery life? ===
In an optimal case, with a healthy battery, you should be able to get several days of uptime with the modem online. This will probably get a little better over time.
But there are also lots of things that might hinder power management, so it might also be less. We're still actively working on this.
Currently, you should consider stopping ntp (/etc/init.d/ntp stop) since it will eat a lot of battery needlessly.
=== How do I show the special keys virtual keyboard? ===
Press the OK button, and then press the key labelled "shift" (but really is the control key).
== Nokia N900 ==
=== How do I show the special keys virtual keyboard? ===
Press the blue arrow, and then press the ctrl key.
110cd9b7c86d11e9a3c9ff7c62d3fdaf07c6c4f2
777
776
2020-06-13T13:17:28Z
Sicelo
5
/* How do I play music? */
wikitext
text/x-wiki
This page serves to answer commonly asked "How do I do X?" question.
__TOC__
== Generic (not device specific) ==
=== How I lock and unlock the device? ===
If the device is unlocked, pressing the power button twice in quick succession will lock it. Also, pressing the power button once will pop up a dialog with an option to allow you to lock the device.
If the device is locked, pressing the power button once will bring up the lock screen with a slider you can drag to unlock the device.
('''NB''': on the Droid 4, the unlock slider may sometimes not show up or show up in the wrong place. In this case, you can still 'drag' it blindly. The drag area is exactly halfway from the top to the bottom of the screen, and starts around 1/4 of the width of the screen and extends to about 3/4 of its width.)
Additionally, if your device has sliding keyboard (like the [[Nokia_N900]] and [[Motorola_Droid_4]]), then opening the keyboard will also unlock the device. Closing the keyboard will lock the device again, but only if you have not interacted with the screen since the last slide up. Devices such as the [[Nokia_N900]] can also be locked/unlocked by toggling their physical lock/unlock slider.
=== How do I play music? ===
Currently, pick any commandline or GUI tool from standard Debian/Devuan that you like.
In the future, we will recommend and ship the open-source clone of the player from Maemo: https://wiki.maemo.org/Open_Media_Player
=== How do I get the virtual keyboard to show up? ===
Go to the application menu and start the control panel. From the control panel, open the text input applet, and make sure "Use virtual keyboard is checked".
The next you time touch an input field, you should see the virtual keyboard pop up. (If your device has a keyboard attached, then this will work slightly differently, depending on the sliding state of the keyboard)
== Motorola Droid 4 ==
=== How do I improve battery life? ===
In an optimal case, with a healthy battery, you should be able to get several days of uptime with the modem online. This will probably get a little better over time.
But there are also lots of things that might hinder power management, so it might also be less. We're still actively working on this.
Currently, you should consider stopping ntp (/etc/init.d/ntp stop) since it will eat a lot of battery needlessly.
=== How do I show the special keys virtual keyboard? ===
Press the OK button, and then press the key labelled "shift" (but really is the control key).
== Nokia N900 ==
=== How do I show the special keys virtual keyboard? ===
Press the blue arrow, and then press the ctrl key.
3b930b6730c85ff84aa644b48acb71ed12715942
778
777
2020-06-13T13:18:59Z
Sicelo
5
/* How do I show the special keys virtual keyboard? */
wikitext
text/x-wiki
This page serves to answer commonly asked "How do I do X?" question.
__TOC__
== Generic (not device specific) ==
=== How I lock and unlock the device? ===
If the device is unlocked, pressing the power button twice in quick succession will lock it. Also, pressing the power button once will pop up a dialog with an option to allow you to lock the device.
If the device is locked, pressing the power button once will bring up the lock screen with a slider you can drag to unlock the device.
('''NB''': on the Droid 4, the unlock slider may sometimes not show up or show up in the wrong place. In this case, you can still 'drag' it blindly. The drag area is exactly halfway from the top to the bottom of the screen, and starts around 1/4 of the width of the screen and extends to about 3/4 of its width.)
Additionally, if your device has sliding keyboard (like the [[Nokia_N900]] and [[Motorola_Droid_4]]), then opening the keyboard will also unlock the device. Closing the keyboard will lock the device again, but only if you have not interacted with the screen since the last slide up. Devices such as the [[Nokia_N900]] can also be locked/unlocked by toggling their physical lock/unlock slider.
=== How do I play music? ===
Currently, pick any commandline or GUI tool from standard Debian/Devuan that you like.
In the future, we will recommend and ship the open-source clone of the player from Maemo: https://wiki.maemo.org/Open_Media_Player
=== How do I get the virtual keyboard to show up? ===
Go to the application menu and start the control panel. From the control panel, open the text input applet, and make sure "Use virtual keyboard is checked".
The next you time touch an input field, you should see the virtual keyboard pop up. (If your device has a keyboard attached, then this will work slightly differently, depending on the sliding state of the keyboard)
== Motorola Droid 4 ==
=== How do I improve battery life? ===
In an optimal case, with a healthy battery, you should be able to get several days of uptime with the modem online. This will probably get a little better over time.
But there are also lots of things that might hinder power management, so it might also be less. We're still actively working on this.
Currently, you should consider stopping ntp (/etc/init.d/ntp stop) since it will eat a lot of battery needlessly.
=== How do I show the special keys virtual keyboard? ===
Press the OK button, and then press the key labelled "shift" (but really is the control key).
== Nokia N900 ==
=== How do I show the special keys virtual keyboard? ===
On the keyboard, the blue arrow, and then press the Ctrl key.
a36e7cbbabbd374a2d007ed429b9580204a81590
779
778
2020-06-13T13:21:27Z
Sicelo
5
/* Nokia N900 */
wikitext
text/x-wiki
This page serves to answer commonly asked "How do I do X?" question.
__TOC__
== Generic (not device specific) ==
=== How I lock and unlock the device? ===
If the device is unlocked, pressing the power button twice in quick succession will lock it. Also, pressing the power button once will pop up a dialog with an option to allow you to lock the device.
If the device is locked, pressing the power button once will bring up the lock screen with a slider you can drag to unlock the device.
('''NB''': on the Droid 4, the unlock slider may sometimes not show up or show up in the wrong place. In this case, you can still 'drag' it blindly. The drag area is exactly halfway from the top to the bottom of the screen, and starts around 1/4 of the width of the screen and extends to about 3/4 of its width.)
Additionally, if your device has sliding keyboard (like the [[Nokia_N900]] and [[Motorola_Droid_4]]), then opening the keyboard will also unlock the device. Closing the keyboard will lock the device again, but only if you have not interacted with the screen since the last slide up. Devices such as the [[Nokia_N900]] can also be locked/unlocked by toggling their physical lock/unlock slider.
=== How do I play music? ===
Currently, pick any commandline or GUI tool from standard Debian/Devuan that you like.
In the future, we will recommend and ship the open-source clone of the player from Maemo: https://wiki.maemo.org/Open_Media_Player
=== How do I get the virtual keyboard to show up? ===
Go to the application menu and start the control panel. From the control panel, open the text input applet, and make sure "Use virtual keyboard is checked".
The next you time touch an input field, you should see the virtual keyboard pop up. (If your device has a keyboard attached, then this will work slightly differently, depending on the sliding state of the keyboard)
== Motorola Droid 4 ==
=== How do I improve battery life? ===
In an optimal case, with a healthy battery, you should be able to get several days of uptime with the modem online. This will probably get a little better over time.
But there are also lots of things that might hinder power management, so it might also be less. We're still actively working on this.
Currently, you should consider stopping ntp (/etc/init.d/ntp stop) since it will eat a lot of battery needlessly.
=== How do I show the special keys virtual keyboard? ===
Press the OK button, and then press the key labelled "shift" (but really is the control key).
== Nokia N900 ==
=== How do I show the special keys virtual keyboard? ===
On the hardware keyboard, press the blue arrow, and then press the Ctrl key. If you are using the touch keyboard instead, the special keys are already included.
004c38d37690f4f4d75de6acf1c62585c041a26c
780
779
2020-06-13T13:28:23Z
Sicelo
5
/* How do I show the special keys virtual keyboard? */
wikitext
text/x-wiki
This page serves to answer commonly asked "How do I do X?" question.
__TOC__
== Generic (not device specific) ==
=== How I lock and unlock the device? ===
If the device is unlocked, pressing the power button twice in quick succession will lock it. Also, pressing the power button once will pop up a dialog with an option to allow you to lock the device.
If the device is locked, pressing the power button once will bring up the lock screen with a slider you can drag to unlock the device.
('''NB''': on the Droid 4, the unlock slider may sometimes not show up or show up in the wrong place. In this case, you can still 'drag' it blindly. The drag area is exactly halfway from the top to the bottom of the screen, and starts around 1/4 of the width of the screen and extends to about 3/4 of its width.)
Additionally, if your device has sliding keyboard (like the [[Nokia_N900]] and [[Motorola_Droid_4]]), then opening the keyboard will also unlock the device. Closing the keyboard will lock the device again, but only if you have not interacted with the screen since the last slide up. Devices such as the [[Nokia_N900]] can also be locked/unlocked by toggling their physical lock/unlock slider.
=== How do I play music? ===
Currently, pick any commandline or GUI tool from standard Debian/Devuan that you like.
In the future, we will recommend and ship the open-source clone of the player from Maemo: https://wiki.maemo.org/Open_Media_Player
=== How do I get the virtual keyboard to show up? ===
Go to the application menu and start the control panel. From the control panel, open the text input applet, and make sure "Use virtual keyboard is checked".
The next you time touch an input field, you should see the virtual keyboard pop up. (If your device has a keyboard attached, then this will work slightly differently, depending on the sliding state of the keyboard)
== Motorola Droid 4 ==
=== How do I improve battery life? ===
In an optimal case, with a healthy battery, you should be able to get several days of uptime with the modem online. This will probably get a little better over time.
But there are also lots of things that might hinder power management, so it might also be less. We're still actively working on this.
Currently, you should consider stopping ntp (/etc/init.d/ntp stop) since it will eat a lot of battery needlessly.
=== How do I show the special keys virtual keyboard? ===
Press the OK button, and then press the key labelled "Shift" (Maemo Leste uses it as the Ctrl key). If you are using the touch keyboard instead, the special keys are already included.
'''NB:''' Some of the symbols in the special keys are sticky, so you will need to press them twice to enter them. Maemo will hightlight the symbol blue to alert you of this. Pressing it once allows you to combine it with another letter/character, e.g. the tilde (~) can be entered by tapping '~' twice on the special symbols view. However, if you press it once, then type 'a', you get 'ã'
== Nokia N900 ==
=== How do I show the special keys virtual keyboard? ===
On the hardware keyboard, press the blue arrow, and then press the Ctrl key. If you are using the touch keyboard instead, the special keys are already included.
dbc851dc80db125cdd7ab27466f917927f20a8ec
781
780
2020-06-13T13:31:22Z
Sicelo
5
/* How do I get the virtual keyboard to show up? */
wikitext
text/x-wiki
This page serves to answer commonly asked "How do I do X?" question.
__TOC__
== Generic (not device specific) ==
=== How I lock and unlock the device? ===
If the device is unlocked, pressing the power button twice in quick succession will lock it. Also, pressing the power button once will pop up a dialog with an option to allow you to lock the device.
If the device is locked, pressing the power button once will bring up the lock screen with a slider you can drag to unlock the device.
('''NB''': on the Droid 4, the unlock slider may sometimes not show up or show up in the wrong place. In this case, you can still 'drag' it blindly. The drag area is exactly halfway from the top to the bottom of the screen, and starts around 1/4 of the width of the screen and extends to about 3/4 of its width.)
Additionally, if your device has sliding keyboard (like the [[Nokia_N900]] and [[Motorola_Droid_4]]), then opening the keyboard will also unlock the device. Closing the keyboard will lock the device again, but only if you have not interacted with the screen since the last slide up. Devices such as the [[Nokia_N900]] can also be locked/unlocked by toggling their physical lock/unlock slider.
=== How do I play music? ===
Currently, pick any commandline or GUI tool from standard Debian/Devuan that you like.
In the future, we will recommend and ship the open-source clone of the player from Maemo: https://wiki.maemo.org/Open_Media_Player
=== How do I use the virtual keyboard ===
First, enable it. Go to the application menu and start the Control Panel. From here, open the Text Input applet, and make sure "Use virtual keyboard" is checked.
The next you time touch an input field, you should see the virtual keyboard pop up. (If your device has a keyboard attached, then this will work slightly differently, depending on the sliding state of the keyboard).
'''NB:''' Some of the symbols are sticky, so you will need to press them twice to enter them. Maemo will hightlight the symbol blue to alert you of this. Pressing it once allows you to combine it with another letter/character, e.g. the tilde (~) can be entered by tapping '~' twice on the special symbols view. However, if you press it once, then type 'a', you get 'ã'.
== Motorola Droid 4 ==
=== How do I improve battery life? ===
In an optimal case, with a healthy battery, you should be able to get several days of uptime with the modem online. This will probably get a little better over time.
But there are also lots of things that might hinder power management, so it might also be less. We're still actively working on this.
Currently, you should consider stopping ntp (/etc/init.d/ntp stop) since it will eat a lot of battery needlessly.
=== How do I show the special keys virtual keyboard? ===
Press the OK button, and then press the key labelled "Shift" (Maemo Leste uses it as the Ctrl key). If you are using the touch keyboard instead, the special keys are already included.
'''NB:''' Some of the symbols in the special keys are sticky, so you will need to press them twice to enter them. Maemo will hightlight the symbol blue to alert you of this. Pressing it once allows you to combine it with another letter/character, e.g. the tilde (~) can be entered by tapping '~' twice on the special symbols view. However, if you press it once, then type 'a', you get 'ã'
== Nokia N900 ==
=== How do I show the special keys virtual keyboard? ===
On the hardware keyboard, press the blue arrow, and then press the Ctrl key. If you are using the touch keyboard instead, the special keys are already included.
893704d3c7544262de5d26312f81bceb6510902d
782
781
2020-06-13T13:37:03Z
Sicelo
5
/* How do I show the special keys virtual keyboard? */
wikitext
text/x-wiki
This page serves to answer commonly asked "How do I do X?" question.
__TOC__
== Generic (not device specific) ==
=== How I lock and unlock the device? ===
If the device is unlocked, pressing the power button twice in quick succession will lock it. Also, pressing the power button once will pop up a dialog with an option to allow you to lock the device.
If the device is locked, pressing the power button once will bring up the lock screen with a slider you can drag to unlock the device.
('''NB''': on the Droid 4, the unlock slider may sometimes not show up or show up in the wrong place. In this case, you can still 'drag' it blindly. The drag area is exactly halfway from the top to the bottom of the screen, and starts around 1/4 of the width of the screen and extends to about 3/4 of its width.)
Additionally, if your device has sliding keyboard (like the [[Nokia_N900]] and [[Motorola_Droid_4]]), then opening the keyboard will also unlock the device. Closing the keyboard will lock the device again, but only if you have not interacted with the screen since the last slide up. Devices such as the [[Nokia_N900]] can also be locked/unlocked by toggling their physical lock/unlock slider.
=== How do I play music? ===
Currently, pick any commandline or GUI tool from standard Debian/Devuan that you like.
In the future, we will recommend and ship the open-source clone of the player from Maemo: https://wiki.maemo.org/Open_Media_Player
=== How do I use the virtual keyboard ===
First, enable it. Go to the application menu and start the Control Panel. From here, open the Text Input applet, and make sure "Use virtual keyboard" is checked.
The next you time touch an input field, you should see the virtual keyboard pop up. (If your device has a keyboard attached, then this will work slightly differently, depending on the sliding state of the keyboard).
'''NB:''' Some of the symbols are sticky, so you will need to press them twice to enter them. Maemo will hightlight the symbol blue to alert you of this. Pressing it once allows you to combine it with another letter/character, e.g. the tilde (~) can be entered by tapping '~' twice on the special symbols view. However, if you press it once, then type 'a', you get 'ã'.
== Motorola Droid 4 ==
=== How do I improve battery life? ===
In an optimal case, with a healthy battery, you should be able to get several days of uptime with the modem online. This will probably get a little better over time.
But there are also lots of things that might hinder power management, so it might also be less. We're still actively working on this.
Currently, you should consider stopping ntp (/etc/init.d/ntp stop) since it will eat a lot of battery needlessly.
=== How do I show the special keys virtual keyboard? ===
Press the OK button, and then press the key labelled "Shift" (Maemo Leste uses it as the Ctrl key). If you are using the touch keyboard instead, the special keys are already included.
See the [[HowTo#How_do_I_use_the_virtual_keyboard|Virtual Keyboard help]] for a special/useful feature of the virtual keyboard(s)
== Nokia N900 ==
=== How do I show the special keys virtual keyboard? ===
On the hardware keyboard, press the blue arrow, and then press the Ctrl key. If you are using the touch keyboard instead, the special keys are already included.
9a59991cd1939ea22bab2a8f5425cda4d632f8dd
783
782
2020-06-13T13:37:23Z
Sicelo
5
/* How do I show the special keys virtual keyboard? */
wikitext
text/x-wiki
This page serves to answer commonly asked "How do I do X?" question.
__TOC__
== Generic (not device specific) ==
=== How I lock and unlock the device? ===
If the device is unlocked, pressing the power button twice in quick succession will lock it. Also, pressing the power button once will pop up a dialog with an option to allow you to lock the device.
If the device is locked, pressing the power button once will bring up the lock screen with a slider you can drag to unlock the device.
('''NB''': on the Droid 4, the unlock slider may sometimes not show up or show up in the wrong place. In this case, you can still 'drag' it blindly. The drag area is exactly halfway from the top to the bottom of the screen, and starts around 1/4 of the width of the screen and extends to about 3/4 of its width.)
Additionally, if your device has sliding keyboard (like the [[Nokia_N900]] and [[Motorola_Droid_4]]), then opening the keyboard will also unlock the device. Closing the keyboard will lock the device again, but only if you have not interacted with the screen since the last slide up. Devices such as the [[Nokia_N900]] can also be locked/unlocked by toggling their physical lock/unlock slider.
=== How do I play music? ===
Currently, pick any commandline or GUI tool from standard Debian/Devuan that you like.
In the future, we will recommend and ship the open-source clone of the player from Maemo: https://wiki.maemo.org/Open_Media_Player
=== How do I use the virtual keyboard ===
First, enable it. Go to the application menu and start the Control Panel. From here, open the Text Input applet, and make sure "Use virtual keyboard" is checked.
The next you time touch an input field, you should see the virtual keyboard pop up. (If your device has a keyboard attached, then this will work slightly differently, depending on the sliding state of the keyboard).
'''NB:''' Some of the symbols are sticky, so you will need to press them twice to enter them. Maemo will hightlight the symbol blue to alert you of this. Pressing it once allows you to combine it with another letter/character, e.g. the tilde (~) can be entered by tapping '~' twice on the special symbols view. However, if you press it once, then type 'a', you get 'ã'.
== Motorola Droid 4 ==
=== How do I improve battery life? ===
In an optimal case, with a healthy battery, you should be able to get several days of uptime with the modem online. This will probably get a little better over time.
But there are also lots of things that might hinder power management, so it might also be less. We're still actively working on this.
Currently, you should consider stopping ntp (/etc/init.d/ntp stop) since it will eat a lot of battery needlessly.
=== How do I show the special keys virtual keyboard? ===
Press the OK button, and then press the key labelled "Shift" (Maemo Leste uses it as the Ctrl key). If you are using the touch keyboard instead, the special keys are already included.
See [[HowTo#How_do_I_use_the_virtual_keyboard|Virtual Keyboard help]] for a special/useful feature of the virtual keyboard(s)
== Nokia N900 ==
=== How do I show the special keys virtual keyboard? ===
On the hardware keyboard, press the blue arrow, and then press the Ctrl key. If you are using the touch keyboard instead, the special keys are already included.
ed4b9272fee8db98fca321dbf44a8181010c84fe
784
783
2020-06-13T13:37:46Z
Sicelo
5
/* How do I show the special keys virtual keyboard? */
wikitext
text/x-wiki
This page serves to answer commonly asked "How do I do X?" question.
__TOC__
== Generic (not device specific) ==
=== How I lock and unlock the device? ===
If the device is unlocked, pressing the power button twice in quick succession will lock it. Also, pressing the power button once will pop up a dialog with an option to allow you to lock the device.
If the device is locked, pressing the power button once will bring up the lock screen with a slider you can drag to unlock the device.
('''NB''': on the Droid 4, the unlock slider may sometimes not show up or show up in the wrong place. In this case, you can still 'drag' it blindly. The drag area is exactly halfway from the top to the bottom of the screen, and starts around 1/4 of the width of the screen and extends to about 3/4 of its width.)
Additionally, if your device has sliding keyboard (like the [[Nokia_N900]] and [[Motorola_Droid_4]]), then opening the keyboard will also unlock the device. Closing the keyboard will lock the device again, but only if you have not interacted with the screen since the last slide up. Devices such as the [[Nokia_N900]] can also be locked/unlocked by toggling their physical lock/unlock slider.
=== How do I play music? ===
Currently, pick any commandline or GUI tool from standard Debian/Devuan that you like.
In the future, we will recommend and ship the open-source clone of the player from Maemo: https://wiki.maemo.org/Open_Media_Player
=== How do I use the virtual keyboard ===
First, enable it. Go to the application menu and start the Control Panel. From here, open the Text Input applet, and make sure "Use virtual keyboard" is checked.
The next you time touch an input field, you should see the virtual keyboard pop up. (If your device has a keyboard attached, then this will work slightly differently, depending on the sliding state of the keyboard).
'''NB:''' Some of the symbols are sticky, so you will need to press them twice to enter them. Maemo will hightlight the symbol blue to alert you of this. Pressing it once allows you to combine it with another letter/character, e.g. the tilde (~) can be entered by tapping '~' twice on the special symbols view. However, if you press it once, then type 'a', you get 'ã'.
== Motorola Droid 4 ==
=== How do I improve battery life? ===
In an optimal case, with a healthy battery, you should be able to get several days of uptime with the modem online. This will probably get a little better over time.
But there are also lots of things that might hinder power management, so it might also be less. We're still actively working on this.
Currently, you should consider stopping ntp (/etc/init.d/ntp stop) since it will eat a lot of battery needlessly.
=== How do I show the special keys virtual keyboard? ===
Press the OK button, and then press the key labelled "Shift" (Maemo Leste uses it as the Ctrl key). If you are using the touch keyboard instead, the special keys are already included.
See [[HowTo#How_do_I_use_the_virtual_keyboard|Virtual Keyboard help]] for a special/useful feature of the virtual keyboard(s)
== Nokia N900 ==
=== How do I show the special keys virtual keyboard? ===
On the hardware keyboard, press the blue arrow, and then press the Ctrl key. If you are using the touch keyboard instead, the special keys are already included.
See [[HowTo#How_do_I_use_the_virtual_keyboard|Virtual Keyboard help]] for a special/useful feature of the virtual keyboard(s)
010603c25d388b5eead64b568525d2934e3ab0f0
791
784
2020-06-27T15:56:20Z
Sicelo
5
/* How I lock and unlock the device? */
wikitext
text/x-wiki
This page serves to answer commonly asked "How do I do X?" question.
__TOC__
== Generic (not device specific) ==
=== How do I lock and unlock the device? ===
If the device is unlocked, pressing the power button twice in quick succession will lock it. Also, pressing the power button once will pop up a dialog with an option to allow you to lock the device.
If the device is locked, pressing the power button once will bring up the lock screen with a slider you can drag to unlock the device.
('''NB''': on the Droid 4, the unlock slider may sometimes not show up or show up in the wrong place. In this case, you can still 'drag' it blindly. The drag area is exactly halfway from the top to the bottom of the screen, and starts around 1/4 of the width of the screen and extends to about 3/4 of its width.)
Additionally, if your device has sliding keyboard (like the [[Nokia_N900]] and [[Motorola_Droid_4]]), then opening the keyboard will also unlock the device. Closing the keyboard will lock the device again, but only if you have not interacted with the screen since the last slide up. Devices such as the [[Nokia_N900]] can also be locked/unlocked by toggling their physical lock/unlock slider.
=== How do I play music? ===
Currently, pick any commandline or GUI tool from standard Debian/Devuan that you like.
In the future, we will recommend and ship the open-source clone of the player from Maemo: https://wiki.maemo.org/Open_Media_Player
=== How do I use the virtual keyboard ===
First, enable it. Go to the application menu and start the Control Panel. From here, open the Text Input applet, and make sure "Use virtual keyboard" is checked.
The next you time touch an input field, you should see the virtual keyboard pop up. (If your device has a keyboard attached, then this will work slightly differently, depending on the sliding state of the keyboard).
'''NB:''' Some of the symbols are sticky, so you will need to press them twice to enter them. Maemo will hightlight the symbol blue to alert you of this. Pressing it once allows you to combine it with another letter/character, e.g. the tilde (~) can be entered by tapping '~' twice on the special symbols view. However, if you press it once, then type 'a', you get 'ã'.
== Motorola Droid 4 ==
=== How do I improve battery life? ===
In an optimal case, with a healthy battery, you should be able to get several days of uptime with the modem online. This will probably get a little better over time.
But there are also lots of things that might hinder power management, so it might also be less. We're still actively working on this.
Currently, you should consider stopping ntp (/etc/init.d/ntp stop) since it will eat a lot of battery needlessly.
=== How do I show the special keys virtual keyboard? ===
Press the OK button, and then press the key labelled "Shift" (Maemo Leste uses it as the Ctrl key). If you are using the touch keyboard instead, the special keys are already included.
See [[HowTo#How_do_I_use_the_virtual_keyboard|Virtual Keyboard help]] for a special/useful feature of the virtual keyboard(s)
== Nokia N900 ==
=== How do I show the special keys virtual keyboard? ===
On the hardware keyboard, press the blue arrow, and then press the Ctrl key. If you are using the touch keyboard instead, the special keys are already included.
See [[HowTo#How_do_I_use_the_virtual_keyboard|Virtual Keyboard help]] for a special/useful feature of the virtual keyboard(s)
4b769b339d6e125b2348cee8ff9c0aa34ac90645
Leste FAQ
0
62
772
745
2020-06-06T17:01:31Z
Derby
3
/* Is Maemo Leste completely free? */
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is an operating system based on GNU/Linux that is currently in development. It is aimed at mobile devices with touch screens such as smartphones, tablets and PDAs.
It is built on top of '''[https://devuan.org/ Devuan]''', and thus indirectly based on [https://www.debian.org/ Debian]. Essentially, it is a modernised and liberated version of '''[https://en.wikipedia.org/wiki/Maemo#Maemo_5 Maemo 5/Fremantle]'''; the last version of the mobile Linux OS from Nokia that was released in 2009 for the [https://en.wikipedia.org/wiki/Nokia_N900 Nokia N900] internet tablet/smartphone. Unlike its predecessor which only ran on a single device, Maemo Leste runs on a variety of devices. It also uses a '''[[#What_is_mainline_Linux.3F|mainline Linux]]''' kernel.
In Maemo Leste, closed-source packages that originate from Fremantle have been reversed engineered, liberated, updated and rebuilt; whilst open-source Fremantle packages have been updated to newer libraries and APIs, including [https://en.wikipedia.org/wiki/Hildon Hildon], the mobile user interface from Fremantle.
Building on top an actively developed Linux distribution makes Maemo Leste maintenance sustainable. Fremantle was built on top of Debian packages forked from several versions of Debian, leaving the onus on Nokia to maintain every single package. Leste however, utilises Devuan's package repositories meaning that much of the heavy lifting is already done by upstream; we only have to manage and maintain a limited set of packages. This also gives us the benefit of having access to over 20,000 packages from upstream, immediately available for installation in Maemo Leste.
All in all, Maemo Leste aims to provide an unconstrained and free mobile Linux distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
Today's smartphone industry is dominated by the duopoly of Apple and Google with their iOS and Android operating systems. This leaves those of us who value information privacy and software freedoms with virtually no options when it comes to choosing a smartphone. Some pretenders have tried to change this but have ultimately [[#How_about_other_popular_non-Android_mobile_Linux_distributions.3F|fallen short in some areas]]. Maemo Leste aims to put an end to this dire situation. We provide a ''true'' GNU/Linux experience which evolves along with the base Linux distribution from which it is built on top of. Maemo Leste is the only multi-device mobile Linux distribution that prioritises the use of mainline Linux. We hope that Maemo Leste will help to raise awareness of the [[#Why_is_it_important_to_run_mainline_Linux.3F|importance of running mainline Linux]] which may eventually lead to increased consumer demand for devices that are compatible with mainline Linux, leading to improved options when choosing a smartphone.
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle.
We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired.
Halium uses kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long-term supported stable releases.
=== What's wrong with Android (vendor) kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained by vendors with almost no effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices on the market, all with kernels based on Linux; yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline].
=== Does Maemo Leste run with pure mainline Linux? ===
The primary devices that we support can run with a pure mainline Linux kernel, however right now our images use mainline plus a few patches. As we are still in the early phases of development, our current priority is to ensure that our supported devices are as fully functional as they can possibly be, thus the additional patches help to achieve this. We have already upstreamed some of our patches and our goal is to upstream the remaining ones to be able to switch to using a 100% mainline kernel on our devices.
=== Is Maemo Leste completely free? ===
Unfortunately not. There is still no smartphone available that is fully functional without the use of [https://en.wikipedia.org/wiki/Proprietary_device_driver binary blobs]. Our primary supported devices currently require closed firmware to be able to use Wi-Fi and Bluetooth, and the TI OMAP-based devices have integrated PowerVR video hardware which require closed user space drivers for video acceleration. It's an unfortunate state of affairs, however progress is being made, and the PinePhone is a great example of this as it can have video acceleration with the Lima driver which is 100% free software.
Our current goal is to provide full functionality for our supported devices, however there are plans to additionally provide a blob-free, libre version of Maemo Leste with missing functionality where blobs would be required.
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk], [https://dpa.li/temp/l5-maemo.mp4 video]).
=== How about other popular non-Android mobile Linux distributions? ===
The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided.
One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution.
Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland.
Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_kernels.3F|Android kernels]], preferring to prioritise device compatibility and ease of device porting, instead of prioritising software freedoms.
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticeable in the project).
Maemo Fremantle uses the ''upstart'' init system. We initially chose Devuan because we figured Devuan might support upstart to some degree as well, so we would not have to deal with rewriting the init scripts (although we ended up rewriting them anyway as Maemo Leste now uses OpenRC). Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate; there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== Can Maemo Leste work with a Debian/systemd base? ===
Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste.
=== musl libc kicks arse. Can I use Maemo Leste with musl? ===
We love musl libc too. musl provides a lean, efficient and standards-compliant implementation of libc. What's not to like? Well unfortunately a lot of software built for Linux is glibc-dependent and is not standards-compliant. Rebuilding this software with musl can result in unexpected runtime behaviour or bugs. musl would be an extra hurdle that we don't really need right now. Still, it would be nice to one day see Maemo Leste rebuilt against musl and might make for an interesting future project, but until then, make sure you check out postmarketOS.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve. As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
=== Are ARM packages Thumb-compiled? ===
Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb
cec7c5fc5e44621ada76491028b293c649a9591d
773
772
2020-06-06T17:03:05Z
Derby
3
/* How does Maemo Leste compare with PureOS? */ Removing link to viedo as it is no longer available
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is an operating system based on GNU/Linux that is currently in development. It is aimed at mobile devices with touch screens such as smartphones, tablets and PDAs.
It is built on top of '''[https://devuan.org/ Devuan]''', and thus indirectly based on [https://www.debian.org/ Debian]. Essentially, it is a modernised and liberated version of '''[https://en.wikipedia.org/wiki/Maemo#Maemo_5 Maemo 5/Fremantle]'''; the last version of the mobile Linux OS from Nokia that was released in 2009 for the [https://en.wikipedia.org/wiki/Nokia_N900 Nokia N900] internet tablet/smartphone. Unlike its predecessor which only ran on a single device, Maemo Leste runs on a variety of devices. It also uses a '''[[#What_is_mainline_Linux.3F|mainline Linux]]''' kernel.
In Maemo Leste, closed-source packages that originate from Fremantle have been reversed engineered, liberated, updated and rebuilt; whilst open-source Fremantle packages have been updated to newer libraries and APIs, including [https://en.wikipedia.org/wiki/Hildon Hildon], the mobile user interface from Fremantle.
Building on top an actively developed Linux distribution makes Maemo Leste maintenance sustainable. Fremantle was built on top of Debian packages forked from several versions of Debian, leaving the onus on Nokia to maintain every single package. Leste however, utilises Devuan's package repositories meaning that much of the heavy lifting is already done by upstream; we only have to manage and maintain a limited set of packages. This also gives us the benefit of having access to over 20,000 packages from upstream, immediately available for installation in Maemo Leste.
All in all, Maemo Leste aims to provide an unconstrained and free mobile Linux distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
Today's smartphone industry is dominated by the duopoly of Apple and Google with their iOS and Android operating systems. This leaves those of us who value information privacy and software freedoms with virtually no options when it comes to choosing a smartphone. Some pretenders have tried to change this but have ultimately [[#How_about_other_popular_non-Android_mobile_Linux_distributions.3F|fallen short in some areas]]. Maemo Leste aims to put an end to this dire situation. We provide a ''true'' GNU/Linux experience which evolves along with the base Linux distribution from which it is built on top of. Maemo Leste is the only multi-device mobile Linux distribution that prioritises the use of mainline Linux. We hope that Maemo Leste will help to raise awareness of the [[#Why_is_it_important_to_run_mainline_Linux.3F|importance of running mainline Linux]] which may eventually lead to increased consumer demand for devices that are compatible with mainline Linux, leading to improved options when choosing a smartphone.
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle.
We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired.
Halium uses kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long-term supported stable releases.
=== What's wrong with Android (vendor) kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained by vendors with almost no effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices on the market, all with kernels based on Linux; yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline].
=== Does Maemo Leste run with pure mainline Linux? ===
The primary devices that we support can run with a pure mainline Linux kernel, however right now our images use mainline plus a few patches. As we are still in the early phases of development, our current priority is to ensure that our supported devices are as fully functional as they can possibly be, thus the additional patches help to achieve this. We have already upstreamed some of our patches and our goal is to upstream the remaining ones to be able to switch to using a 100% mainline kernel on our devices.
=== Is Maemo Leste completely free? ===
Unfortunately not. There is still no smartphone available that is fully functional without the use of [https://en.wikipedia.org/wiki/Proprietary_device_driver binary blobs]. Our primary supported devices currently require closed firmware to be able to use Wi-Fi and Bluetooth, and the TI OMAP-based devices have integrated PowerVR video hardware which require closed user space drivers for video acceleration. It's an unfortunate state of affairs, however progress is being made, and the PinePhone is a great example of this as it can have video acceleration with the Lima driver which is 100% free software.
Our current goal is to provide full functionality for our supported devices, however there are plans to additionally provide a blob-free, libre version of Maemo Leste with missing functionality where blobs would be required.
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk]).
=== How about other popular non-Android mobile Linux distributions? ===
The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided.
One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution.
Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland.
Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_kernels.3F|Android kernels]], preferring to prioritise device compatibility and ease of device porting, instead of prioritising software freedoms.
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticeable in the project).
Maemo Fremantle uses the ''upstart'' init system. We initially chose Devuan because we figured Devuan might support upstart to some degree as well, so we would not have to deal with rewriting the init scripts (although we ended up rewriting them anyway as Maemo Leste now uses OpenRC). Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate; there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== Can Maemo Leste work with a Debian/systemd base? ===
Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste.
=== musl libc kicks arse. Can I use Maemo Leste with musl? ===
We love musl libc too. musl provides a lean, efficient and standards-compliant implementation of libc. What's not to like? Well unfortunately a lot of software built for Linux is glibc-dependent and is not standards-compliant. Rebuilding this software with musl can result in unexpected runtime behaviour or bugs. musl would be an extra hurdle that we don't really need right now. Still, it would be nice to one day see Maemo Leste rebuilt against musl and might make for an interesting future project, but until then, make sure you check out postmarketOS.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve. As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
=== Are ARM packages Thumb-compiled? ===
Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb
0367e2f336c689ce652b1183a8b21aae73a02bd1
774
773
2020-06-06T17:43:49Z
Derby
3
/* How about other popular non-Android mobile Linux distributions? */
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is an operating system based on GNU/Linux that is currently in development. It is aimed at mobile devices with touch screens such as smartphones, tablets and PDAs.
It is built on top of '''[https://devuan.org/ Devuan]''', and thus indirectly based on [https://www.debian.org/ Debian]. Essentially, it is a modernised and liberated version of '''[https://en.wikipedia.org/wiki/Maemo#Maemo_5 Maemo 5/Fremantle]'''; the last version of the mobile Linux OS from Nokia that was released in 2009 for the [https://en.wikipedia.org/wiki/Nokia_N900 Nokia N900] internet tablet/smartphone. Unlike its predecessor which only ran on a single device, Maemo Leste runs on a variety of devices. It also uses a '''[[#What_is_mainline_Linux.3F|mainline Linux]]''' kernel.
In Maemo Leste, closed-source packages that originate from Fremantle have been reversed engineered, liberated, updated and rebuilt; whilst open-source Fremantle packages have been updated to newer libraries and APIs, including [https://en.wikipedia.org/wiki/Hildon Hildon], the mobile user interface from Fremantle.
Building on top an actively developed Linux distribution makes Maemo Leste maintenance sustainable. Fremantle was built on top of Debian packages forked from several versions of Debian, leaving the onus on Nokia to maintain every single package. Leste however, utilises Devuan's package repositories meaning that much of the heavy lifting is already done by upstream; we only have to manage and maintain a limited set of packages. This also gives us the benefit of having access to over 20,000 packages from upstream, immediately available for installation in Maemo Leste.
All in all, Maemo Leste aims to provide an unconstrained and free mobile Linux distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
Today's smartphone industry is dominated by the duopoly of Apple and Google with their iOS and Android operating systems. This leaves those of us who value information privacy and software freedoms with virtually no options when it comes to choosing a smartphone. Some pretenders have tried to change this but have ultimately [[#How_about_other_popular_non-Android_mobile_Linux_distributions.3F|fallen short in some areas]]. Maemo Leste aims to put an end to this dire situation. We provide a ''true'' GNU/Linux experience which evolves along with the base Linux distribution from which it is built on top of. Maemo Leste is the only multi-device mobile Linux distribution that prioritises the use of mainline Linux. We hope that Maemo Leste will help to raise awareness of the [[#Why_is_it_important_to_run_mainline_Linux.3F|importance of running mainline Linux]] which may eventually lead to increased consumer demand for devices that are compatible with mainline Linux, leading to improved options when choosing a smartphone.
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle.
We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired.
Halium uses kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long-term supported stable releases.
=== What's wrong with Android (vendor) kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained by vendors with almost no effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices on the market, all with kernels based on Linux; yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline].
=== Does Maemo Leste run with pure mainline Linux? ===
The primary devices that we support can run with a pure mainline Linux kernel, however right now our images use mainline plus a few patches. As we are still in the early phases of development, our current priority is to ensure that our supported devices are as fully functional as they can possibly be, thus the additional patches help to achieve this. We have already upstreamed some of our patches and our goal is to upstream the remaining ones to be able to switch to using a 100% mainline kernel on our devices.
=== Is Maemo Leste completely free? ===
Unfortunately not. There is still no smartphone available that is fully functional without the use of [https://en.wikipedia.org/wiki/Proprietary_device_driver binary blobs]. Our primary supported devices currently require closed firmware to be able to use Wi-Fi and Bluetooth, and the TI OMAP-based devices have integrated PowerVR video hardware which require closed user space drivers for video acceleration. It's an unfortunate state of affairs, however progress is being made, and the PinePhone is a great example of this as it can have video acceleration with the Lima driver which is 100% free software.
Our current goal is to provide full functionality for our supported devices, however there are plans to additionally provide a blob-free, libre version of Maemo Leste with missing functionality where blobs would be required.
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk]).
=== How about other popular non-Android mobile Linux distributions? ===
The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided.
One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution.
Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland.
Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_kernels.3F|Android kernels]], which favours device compatibility and ease of device porting, at the expense of software freedoms.
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticeable in the project).
Maemo Fremantle uses the ''upstart'' init system. We initially chose Devuan because we figured Devuan might support upstart to some degree as well, so we would not have to deal with rewriting the init scripts (although we ended up rewriting them anyway as Maemo Leste now uses OpenRC). Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate; there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== Can Maemo Leste work with a Debian/systemd base? ===
Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste.
=== musl libc kicks arse. Can I use Maemo Leste with musl? ===
We love musl libc too. musl provides a lean, efficient and standards-compliant implementation of libc. What's not to like? Well unfortunately a lot of software built for Linux is glibc-dependent and is not standards-compliant. Rebuilding this software with musl can result in unexpected runtime behaviour or bugs. musl would be an extra hurdle that we don't really need right now. Still, it would be nice to one day see Maemo Leste rebuilt against musl and might make for an interesting future project, but until then, make sure you check out postmarketOS.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve. As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
=== Are ARM packages Thumb-compiled? ===
Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb
24023e915c1189adff612238b09727be730837f5
Wishlist
0
89
786
724
2020-06-21T11:13:09Z
Linmob
40
/* Applications */ Commented on Maps GPS (FoxtrotGPS)
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
{| class="wikitable"http://maemo.org/packages/view/orecchiette/
! Package name
! Done
! Reason
! User
! URL
! Notes
|-
| osso-notes || Yes (quicknote) || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Quicknote currently packaged. Usage notes - http://wiki.maemo.org/Quicknote
|-
| pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation.
|-
| scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please
|-
| [[Games/Brainparty|brainparty]] || Yes || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ ||
|-
| Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || http://maemo.org/packages/view/orecchiette/(has also Psycho Pinball installable)
|-
| Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||http://maemo.org/packages/view/orecchiette/
|-
| Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend
|-
| PDF reader || Yes || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || libhildonfm has bugs regarding file opening dialogs that need to be fixed
|-
| Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port.
|-
| Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI
|-
| Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/
|-
| Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel
|-
|Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0
|-
| Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ ||
|-
| Image viewer/editor || Yes || || [[User:Maemish]] || https://github.com/maemo-leste-extras/mihphoto ||
|-
| Mail with imap support || No || || [[User:Maemish]] || ||
|-
| RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || ||
|-
| Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ ||
|-
| OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer ||
|-
| SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net ||
|-
| Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ ||
|-
| D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ ||
|-
| Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ ||
|-
| MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms ||
|-
| Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ ||
|-
| Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed.
|-
| Firewall || No || || [[User:Maemish]] || || Something with easy configuration.
|-
| Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ ||
|-
|bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ ||
|-
| cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ ||
|-
| gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ ||
|-|-
| hamsterfiler || No || utilities/files || [[User:ric9k]] || http://maemo.org/packages/view/hamsterfiler/ ||
|-|-
| alarmed (or cron?) || No || utilities || [[User:ric9k]] || http://maemo.org/packages/view/alarmed/ ||
|-|-
| user friendly tracker || No || utilities? || [[User:ric9k]] || n/a :-) ||
|-|-
| Maps (offline) || No || Navigation || [[User:Sicelo]] || || Ideally something like https://f-droid.org/en/packages/com.github.axet.maps/ from Android, but Modrana, https://github.com/M4rtinK/modrana may be easier as a start. [FoxtrotGPS https://www.foxtrotgps.org] might be the easiest to adapt, it is already packaged in Devuan.
|-
| Orecchiette || No || calls recording || [[User:capitannemo]] || http://maemo.org/packages/view/orecchiette/ ||
|-
| Panucci || No || audiobook || [[User:capitannemo]] || http://maemo.org/packages/view/panucci/ ||
|-
| gPodder || No || podcast || [[User:capitannemo]] || http://maemo.org/packages/view/gpodder/ ||
|-
| Symfonie || No || directory-based audioplayer || [[User:capitannemo]] || http://maemo.org/packages/view/symfonie/ ||
|-
| osso-clock || No || clock and alarms application || pavel || ||
|-
| freecell4maemo || No || freecell game || pavel || ||
|-
| [http://festvox.org/index.html CMU Flite] || ? || Accessibility (TTS) || [[User:Buffer|Buffer]] ([[User talk:Buffer|talk]]) 21:48, 2 March 2020 (UTC) || https://github.com/festvox/flite ||
|)
d58e33ab0d7ad1042c33baf7dbe34be319c8d149
Status/GPS
0
76
792
286
2020-06-28T13:30:01Z
Wizzup
4
wikitext
text/x-wiki
Relevant tickets:
* https://github.com/maemo-leste/bugtracker/issues/151
* https://github.com/maemo-leste/bugtracker/issues/57
* http://talk.maemo.org/showthread.php?t=100363
* (On combining multiple gps sources such as A-GPL/SUPL and gpsd) https://lists.gnu.org/archive/html/gpsd-dev/2012-07/msg00018.html
* supl implementation: https://github.com/tajuma/supl
5506c260a9331a0862e591037ee08c16d27b8086
793
792
2020-06-28T20:39:36Z
Parazyd
1
gps discoveries
wikitext
text/x-wiki
== Fremantle Gypsy ==
is actually not gypsy. Rather (some) gypsy calls implemented as "location-daemon".
location-daemon/gypsy gets spawned after an application requests GPS. How exactly - TBD.
== Relevant URLs ==
* https://github.com/maemo-leste/bugtracker/issues/151
* https://github.com/maemo-leste/bugtracker/issues/57
* http://talk.maemo.org/showthread.php?t=100363
* (On combining multiple gps sources such as A-GPL/SUPL and gpsd) https://lists.gnu.org/archive/html/gpsd-dev/2012-07/msg00018.html
* supl implementation: https://github.com/tajuma/supl
* https://talk.maemo.org/showthread.php?t=93910
* https://github.com/postmarketOS/gps-nokia-n900/blob/master/gps-nokia-n900.c
6a0e73d721afb71db97e880de3ee53cf637a8383
794
793
2020-06-29T20:41:52Z
Wizzup
4
wikitext
text/x-wiki
== Fremantle Gypsy ==
is actually not gypsy. Rather (some) gypsy calls implemented as "location-daemon".
location-daemon/gypsy gets spawned after an application requests GPS. How exactly - TBD.
== Relevant URLs ==
* https://github.com/maemo-leste/bugtracker/issues/151
* https://github.com/maemo-leste/bugtracker/issues/57
* http://talk.maemo.org/showthread.php?t=100363
* (On combining multiple gps sources such as A-GPL/SUPL and gpsd) https://lists.gnu.org/archive/html/gpsd-dev/2012-07/msg00018.html
* supl implementation: https://github.com/tajuma/supl
* https://talk.maemo.org/showthread.php?t=93910
* https://github.com/postmarketOS/gps-nokia-n900/blob/master/gps-nokia-n900.c
== Regarding Droid 4 GPS ==
<pre>
17:05 < Wizzup> tmlind: wrt gps on the droid, you said there is currently a bug that allows opening
/dev/gnss* only once?
17:09 < tmlind> Wizzup: i think that was a bug in gpsd, did not happen last time i tried. if you hit
that one, opening secondary clients like gpspipe -R won't output anything
17:09 < Wizzup> ah, so it's not a kernel problem, ok
17:10 < Wizzup> once maemo-input-sounds is done (hopefully tonight) I will work on location stuff in
case I can go on vacation and need gps, or until fmg is done with abook and we then
look at rtcom
17:10 < Wizzup> in any case, I was wondering what the gps status is, but I think we'll start gpsd on
demand, so that's fine
17:11 < Wizzup> from a pm pov, I assume closing the fd will stop gps recv?
17:11 < Wizzup> also, this is on the wiki: 22:30 < tmlind> hmm there's a probably kernel gnss bug for
gsp access fyi, you can currently only open one connection before you have to restart
gpsd :)
17:13 < tmlind> Wizzup: yeah so if hiking, you probably want to modprobe gnss_motmdm rate_ms=3000 or
even higher to allow the soc to sleep inbetween
17:14 < tmlind> Wizzup: the default gpsd options only open device if there's a client and times out
automatically
17:14 < Wizzup> interesting.
17:14 < Wizzup> regarding module - well noted
17:14 < Wizzup> I didn't know gpsd auto closed, that's nice.
17:15 < tmlind> i think i measured about 200 - 250 mW with gps enabled screen blanked etc
</pre>
== Regarding A-GPS in general, but also N900 and Droid 4 specifics ==
<pre>
17:15 < Wizzup> also ran into this: https://lists.gnu.org/archive/html/gpsd-dev/2012-07/msg00018.html
17:15 < Entitlement> Wizzup - [ Re: [gpsd-dev] Using multiple location sources to improve accuracy and
r ]
17:15 < Wizzup> (regarding agps)
17:15 < tmlind> Wizzup: yeah so don't enable gpsd -n option, that will keep the gps open
17:15 < Wizzup> looks like ESR suggests to write a daemon that sits in the middle and mixes in agps
info
17:15 < Wizzup> ok
17:16 < Wizzup> regarding rate_ms, I wonder if it makes more sense to keep it lower until a proper fix
is found
17:16 < Wizzup> although I suppose that's only the reporting rate, so it probably doesn't matter
17:16 < tmlind> yeah it defaults to 1s so just leave it out by default
17:16 < tmlind> it will be some generic option eventually and not a module param
17:17 -!- z3ntu_ [z3ntumatri@gateway/shell/matrix.org/x-lnssiqwycssoqteb] has quit [Quit: Idle for 30+
days]
17:18 < tmlind> not sure how much stuff i'll get done over next few months in general, but at some
point i'm planning to continue on the droid4-agps tool..
17:19 < Wizzup> tmlind: what would that do?
17:19 < Wizzup> I figured agps could be done via with https://github.com/tajuma/supl
17:19 < Entitlement> Wizzup - [ GitHub - tajuma/supl ]
17:19 < Wizzup> s/via with/with this/
17:20 -!- peetah [~peetah@cha92-9-82-236-202-86.fbx.proxad.net] has joined #maemo-leste
17:22 < bencoh> (tested and more or less working on maemo5, btw)
17:22 < Wizzup> bencoh: just now?
17:22 < bencoh> no
17:22 < Wizzup> :)
17:23 < bencoh> I used it to proxify supl requests to google
17:23 < tmlind> Wizzup: hmm maybe not sure. in this case we need to download qcom provided up to date
xtra2.bin file for the gnss, not sure if the older formats work at all for the gnss
17:25 < bencoh> tmlind: I'd tend to think you would need to keep gps "always on" before the first fix
17:25 < bencoh> otherwise you will never get enough information from satellites
17:25 < bencoh> (unless you have agps/supl, of course)
17:26 < Wizzup> tmlind: from what I can tell that tool just takes lac/mcc/mns and such (like we can
get from ofono or from modem directly) and just calls to a SUPL service?
17:27 < bencoh> Wizzup: google would even return you a rough position with those
17:27 < tmlind> bencoh: yes it does that already automatically and won't start idling until the fix is
done
17:27 < bencoh> tmlind: ah, I see
17:28 < tmlind> Wizzup: yeh i figured, not sure if the modem nvram settings for supl are working or
not, i somehow have an impression they're only working for some older modems, could be
wrong
17:28 < Wizzup> I don't know enough about AGPS clearly, but from what I currently understand, it's
just a data connection to a server with some cell data
17:29 < Wizzup> so I am not sure what the modem would do specifically
17:29 < Wizzup> I suppose there are probably many "assisted" methods
17:29 < bencoh> Wizzup: you're supposed to receive orbital data / almanac
17:30 < Wizzup> ah
17:30 < bencoh> and feed it to the gps subsystem
17:30 < tmlind> yeah this xtra2.bin stuff is an almanac in some proprietary format for a week i think
17:30 < Wizzup> oh, right, to actually feed it
17:30 < Wizzup> I get it now.
17:30 < Wizzup> when I was searching for methods to tell gpsd about agps nothing turned out, explains
it now
17:31 < Wizzup> s/turned out/turned up/
17:31 < bencoh> iiuc on n900, the modem itself manages the supl connection; the location daemon only
acts as a proxy to provide it a tcp connection
17:31 < Wizzup> ok, yeah, so for the n900 we will have to RE some stuff
17:31 < bencoh> yeah
17:31 < tmlind> bencoh: afaik also mdm6600 nvram has something for supl server, not sure if it works
though
17:32 < tmlind> bencoh: if you want to try it, you can tweak the nvram values with tcmdrw on
github.com/tmlind
17:32 < bencoh> tmlind: meaning implementing/RE-ing such a proxy would make sense for both platforms
17:33 < tmlind> bencoh: hmm proxy running where? on the device?
17:33 < bencoh> on n900/maemo5, yeah
17:33 < bencoh> iirc it is location-proxy (forked on demand I think)
17:33 < tmlind> well i think the modem uses the supl server directly probably based on some
requirements from the ministry of silly walks
17:34 < Wizzup> bencoh: there is location-proxy and location-daemon btw
17:34 < bencoh> it does; the "proxy" only provides the modem with a mean to open a tcp socket and
read/write to it
17:34 < bencoh> Wizzup: indeed
17:34 < Wizzup> if you have more info please share :)
17:34 < Wizzup> I can RE some stuff, but want to RE the right things only
17:35 < bencoh> I haven't toyed with those for quite some time, but lemme see
17:35 < tmlind> well the thing to try with droid4 mdm6600 would be to configure supl server in nvram,
start modem data connection, then gps and see how fast it gets a fix
17:38 < tmlind> i'd try clearing openpst NV_AAGPS_XTRA_ENABLED_I value to try to disable xtra2.bin
use, then try to configure whatever nvram values there might be for a supl server,
sorry no idea what those entries might be but i see the dumps contain some url in hex
format
17:40 < bencoh> Wizzup: see /usr/lib/liblas.so.0.0.0
17:41 < bencoh> especially the las_socket_*
17:41 < bencoh> location-proxy refers to those
17:42 < Wizzup> hm 32K
17:42 < Wizzup> this is likely all n900 specific though right?
17:42 < bencoh> Wizzup: http://pastebin.notk.org/pastebin.php?show=f7f7b371d
17:42 < Entitlement> bencoh - [ pastebin private pastebin - collaborative debugging tool ]
17:42 < bencoh> most likely n900-specific yeah
17:42 < tmlind> hmm so a quick search for the NV_AAGPS_XTRA_ENABLED_I points to some earlier pastebin
page at https://pastebin.com/dyfsUcHc, maybe try configuring those and disable xtra
stuff?
17:42 < Entitlement> tmlind - [ QPST 378 NV Items that are in i535 but NOT in i535 dev ed -
Pastebin.com ]
17:43 < bencoh> tmlind: I don't think supl server address would go into nvram
17:43 < Wizzup> bencoh: ah, so you're suggesting we make some generic "how to write supl data to a
modem" lib?
17:43 < bencoh> tmlind: well, unless it has a mean to actually ask for a specific supl server from the
AP processor
17:43 < tmlind> bencoh: i'm pretty sure the uri goes to nvram, see NV_CGPS_UMTS_PDE_SERVER_ADDR_URL_I
in the link above
17:43 < bencoh> oh
17:44 < bencoh> well, on n900/maemo5, the host gets to decide on that
17:44 < tmlind> ok
17:45 < bencoh> Wizzup: I guess we would want a "generic" glue lib with support for various (two?)
platforms
17:45 < tmlind> bencoh: there seems to be a bunch PDE related nvram entries, see libopenpst dm_nv.h
file
17:46 < bencoh> right
17:47 < bencoh> Actually I wonder if the supl connection would need to go through the host cpu at all
on the mdm6600
17:47 < tmlind> bencoh: no afaik it can't
17:48 < bencoh> it might try and use the gprs/umts data channels
17:48 < tmlind> i think it has to
17:48 < bencoh> without even bothering with the host
17:48 < tmlind> right
17:48 < bencoh> it's a completely different design then
17:48 < bencoh> meaning it should work automagically once we setup pde server properly
17:49 < tmlind> yeah it should hopefully unless it's working only in the xtra2.bin mode
17:49 < bencoh> and that it'll stop working forever once supl servers break support for it
17:49 < tmlind> bencoh: so i did also a tool for the xtra2.bin stuff but it's not complete, also on my
github page droid4-agps or something like that
17:49 < bencoh> (unlike n900, where we managed to somehow get some kind of support using supl-proxy
from tajuma)
17:50 < tmlind> bencoh: at least the supl stuff is a standard format, let's hope it works :)
17:51 < bencoh> it's "standard" until google decides some input fields become mandatory
17:51 < bencoh> but yeah
17:51 < tmlind> i think there are other supl servers available too, right?
17:51 < Wizzup> bencoh: there were other supl servers I think
17:51 < bencoh> (I think that's the reason supl.google.com doesn't work on n900 without any proxy)
17:51 < Wizzup> bencoh: oh?
17:51 < bencoh> well, it depends on your phone service provider
17:52 < bencoh> vodaphone has (had?) one for their customers, but it's not available from outside
their network
17:52 < bencoh> nokia died
17:52 < bencoh> I think sony had one, but ...
17:53 < bencoh> we could also run one, but we'd need to write a fair bit of code for that
17:53 < Wizzup> didn't see any code for it so far
17:53 < Wizzup> (googling around)
17:54 < Wizzup> as in, for a supl server
17:54 < bencoh> Wizzup: https://github.com/fairwaves/RRLP-2.8
17:54 < Entitlement> bencoh - [ GitHub - fairwaves/RRLP-2.8: OpenBTS 2.8 RRLP server, Fairwaves
version ]
17:55 < bencoh> that's for the rrlp part
17:56 < bencoh> I don't remember whether they implemented the SUPL part, but if not, one would need to
wrap the RRLP payload in SUPL packets
17:56 < tmlind> well just having a server proxying the supl data from various sources should do, sort
of what ntpd does
17:57 < Wizzup> it would be nice to have a supl server one can just run, though
17:57 < tmlind> yup
17:57 < bencoh> tmlind: yup, that's exactly what we started doing on maemo5/n900
17:57 < Wizzup> all of this sounds like we will just do GPS with A-GPS first though ;)
17:57 < Wizzup> (for leste, to at least get the frameworks in place)
17:58 < bencoh> I ran a supl-proxy everytime I needed to get a gps fix
17:54 < bencoh> Wizzup: https://github.com/fairwaves/RRLP-2.8
17:54 < Entitlement> bencoh - [ GitHub - fairwaves/RRLP-2.8: OpenBTS 2.8 RRLP server, Fairwaves
version ]
17:55 < bencoh> that's for the rrlp part
17:56 < bencoh> I don't remember whether they implemented the SUPL part, but if not, one would need to
wrap the RRLP payload in SUPL packets
17:56 < tmlind> well just having a server proxying the supl data from various sources should do, sort
of what ntpd does
17:57 < Wizzup> it would be nice to have a supl server one can just run, though
17:57 < tmlind> yup
17:57 < bencoh> tmlind: yup, that's exactly what we started doing on maemo5/n900
17:57 < Wizzup> all of this sounds like we will just do GPS with A-GPS first though ;)
17:57 < Wizzup> (for leste, to at least get the frameworks in place)
17:58 < bencoh> I ran a supl-proxy everytime I needed to get a gps fix
17:58 < Wizzup> I should probably do it on fremantle too, didn't look at the proxying
17:58 < bencoh> (I think it stopped working at some point, but I haven't investigated it. It might be
a cert issue)
17:58 < tmlind> well i meant running a proxying supl server on maemo.org picking data from various
sources so devices would just point to the maemo supl server
17:58 < bencoh> Wizzup: Sicelo eventually wrote a howto https://wiki.maemo.org/N900_GPS_Proxy
17:58 < Entitlement> bencoh - [ N900 GPS Proxy - maemo.org wiki ]
17:59 < bencoh> tmlind: *nod*
17:59 < Wizzup> check
17:59 < Wizzup> tmlind: ah, right
17:59 < Wizzup> that's definitely a good stopgap at least
18:00 < bencoh> We almost have the code for that
18:00 < tmlind> yeah then adding supl data from some open source data feed could be just added
18:00 < bencoh> we just need to add multi-client support to supl-proxy
18:00 < tmlind> cool
18:01 < bencoh> err, except that supl-proxy will actually fetch data for every request
18:01 < tmlind> heh that probably creates a google maps traffic jam to where that server is hosted :)
18:01 < bencoh> :))
18:02 < tmlind> not sure if there are some legal aspects to consider there, not familiar with the supl
stuff really
18:02 < bencoh> you need to supply a valid cell (mnc/lac/whatever) coordinate, and supl response is
customized accordingly
18:02 < bencoh> afaict
18:02 < tmlind> huh why do you need mnc/lac?
18:03 < tmlind> to limit the data size?
18:03 < bencoh> I'm pretty certain you wouldn't need it in theory to get a full ephemeric/almanac dump
18:03 < tmlind> bbl
18:03 < bencoh> but iirc it's mandatory for supl.google.com
18:04 < bencoh> (I can see a pretty good reason for that, actually ... google loves knowing where you
are)
18:06 < Wizzup> yeah
18:06 < Wizzup> from 3) A-GPS here , there seem to be only a few
https://www.reddit.com/r/privacy/comments/cldrym/how_to_degoogle_lineageos_in_2019/
18:06 < Entitlement> Wizzup - [ How to deGoogle LineageOS in 2019 : privacy ]
18:06 < Wizzup> (providers that run a supl server)
18:12 < bencoh> wow, supl.sonyericsson.com actually works as well
18:13 < bencoh> and vodafone too. funny, last time I tried I couldn't use it
18:17 < tmlind> cool, anyways multiple source for the proxying supl server would be best, sort of like
with nptd
18:17 * bencoh nods
</pre>
53cd487465588ea0de57b384c5b89a4050871c3b
795
794
2020-06-29T20:42:38Z
Wizzup
4
wikitext
text/x-wiki
== Fremantle Gypsy ==
is actually not gypsy. Rather (some) gypsy calls implemented as "location-daemon".
location-daemon/gypsy gets spawned after an application requests GPS. How exactly - TBD.
== Relevant URLs ==
* https://github.com/maemo-leste/bugtracker/issues/151
* https://github.com/maemo-leste/bugtracker/issues/57
* http://talk.maemo.org/showthread.php?t=100363
* <s>(On combining multiple gps sources such as A-GPS/SUPL and gpsd) https://lists.gnu.org/archive/html/gpsd-dev/2012-07/msg00018.html</s> (not actually relevant, A-GPS needs to fed to the GPS driver/subsystem, not merged as info into gpsd)
* supl implementation: https://github.com/tajuma/supl
* https://talk.maemo.org/showthread.php?t=93910
* https://github.com/postmarketOS/gps-nokia-n900/blob/master/gps-nokia-n900.c
== Regarding Droid 4 GPS ==
<pre>
17:05 < Wizzup> tmlind: wrt gps on the droid, you said there is currently a bug that allows opening
/dev/gnss* only once?
17:09 < tmlind> Wizzup: i think that was a bug in gpsd, did not happen last time i tried. if you hit
that one, opening secondary clients like gpspipe -R won't output anything
17:09 < Wizzup> ah, so it's not a kernel problem, ok
17:10 < Wizzup> once maemo-input-sounds is done (hopefully tonight) I will work on location stuff in
case I can go on vacation and need gps, or until fmg is done with abook and we then
look at rtcom
17:10 < Wizzup> in any case, I was wondering what the gps status is, but I think we'll start gpsd on
demand, so that's fine
17:11 < Wizzup> from a pm pov, I assume closing the fd will stop gps recv?
17:11 < Wizzup> also, this is on the wiki: 22:30 < tmlind> hmm there's a probably kernel gnss bug for
gsp access fyi, you can currently only open one connection before you have to restart
gpsd :)
17:13 < tmlind> Wizzup: yeah so if hiking, you probably want to modprobe gnss_motmdm rate_ms=3000 or
even higher to allow the soc to sleep inbetween
17:14 < tmlind> Wizzup: the default gpsd options only open device if there's a client and times out
automatically
17:14 < Wizzup> interesting.
17:14 < Wizzup> regarding module - well noted
17:14 < Wizzup> I didn't know gpsd auto closed, that's nice.
17:15 < tmlind> i think i measured about 200 - 250 mW with gps enabled screen blanked etc
</pre>
== Regarding A-GPS in general, but also N900 and Droid 4 specifics ==
<pre>
17:15 < Wizzup> also ran into this: https://lists.gnu.org/archive/html/gpsd-dev/2012-07/msg00018.html
17:15 < Entitlement> Wizzup - [ Re: [gpsd-dev] Using multiple location sources to improve accuracy and
r ]
17:15 < Wizzup> (regarding agps)
17:15 < tmlind> Wizzup: yeah so don't enable gpsd -n option, that will keep the gps open
17:15 < Wizzup> looks like ESR suggests to write a daemon that sits in the middle and mixes in agps
info
17:15 < Wizzup> ok
17:16 < Wizzup> regarding rate_ms, I wonder if it makes more sense to keep it lower until a proper fix
is found
17:16 < Wizzup> although I suppose that's only the reporting rate, so it probably doesn't matter
17:16 < tmlind> yeah it defaults to 1s so just leave it out by default
17:16 < tmlind> it will be some generic option eventually and not a module param
17:17 -!- z3ntu_ [z3ntumatri@gateway/shell/matrix.org/x-lnssiqwycssoqteb] has quit [Quit: Idle for 30+
days]
17:18 < tmlind> not sure how much stuff i'll get done over next few months in general, but at some
point i'm planning to continue on the droid4-agps tool..
17:19 < Wizzup> tmlind: what would that do?
17:19 < Wizzup> I figured agps could be done via with https://github.com/tajuma/supl
17:19 < Entitlement> Wizzup - [ GitHub - tajuma/supl ]
17:19 < Wizzup> s/via with/with this/
17:20 -!- peetah [~peetah@cha92-9-82-236-202-86.fbx.proxad.net] has joined #maemo-leste
17:22 < bencoh> (tested and more or less working on maemo5, btw)
17:22 < Wizzup> bencoh: just now?
17:22 < bencoh> no
17:22 < Wizzup> :)
17:23 < bencoh> I used it to proxify supl requests to google
17:23 < tmlind> Wizzup: hmm maybe not sure. in this case we need to download qcom provided up to date
xtra2.bin file for the gnss, not sure if the older formats work at all for the gnss
17:25 < bencoh> tmlind: I'd tend to think you would need to keep gps "always on" before the first fix
17:25 < bencoh> otherwise you will never get enough information from satellites
17:25 < bencoh> (unless you have agps/supl, of course)
17:26 < Wizzup> tmlind: from what I can tell that tool just takes lac/mcc/mns and such (like we can
get from ofono or from modem directly) and just calls to a SUPL service?
17:27 < bencoh> Wizzup: google would even return you a rough position with those
17:27 < tmlind> bencoh: yes it does that already automatically and won't start idling until the fix is
done
17:27 < bencoh> tmlind: ah, I see
17:28 < tmlind> Wizzup: yeh i figured, not sure if the modem nvram settings for supl are working or
not, i somehow have an impression they're only working for some older modems, could be
wrong
17:28 < Wizzup> I don't know enough about AGPS clearly, but from what I currently understand, it's
just a data connection to a server with some cell data
17:29 < Wizzup> so I am not sure what the modem would do specifically
17:29 < Wizzup> I suppose there are probably many "assisted" methods
17:29 < bencoh> Wizzup: you're supposed to receive orbital data / almanac
17:30 < Wizzup> ah
17:30 < bencoh> and feed it to the gps subsystem
17:30 < tmlind> yeah this xtra2.bin stuff is an almanac in some proprietary format for a week i think
17:30 < Wizzup> oh, right, to actually feed it
17:30 < Wizzup> I get it now.
17:30 < Wizzup> when I was searching for methods to tell gpsd about agps nothing turned out, explains
it now
17:31 < Wizzup> s/turned out/turned up/
17:31 < bencoh> iiuc on n900, the modem itself manages the supl connection; the location daemon only
acts as a proxy to provide it a tcp connection
17:31 < Wizzup> ok, yeah, so for the n900 we will have to RE some stuff
17:31 < bencoh> yeah
17:31 < tmlind> bencoh: afaik also mdm6600 nvram has something for supl server, not sure if it works
though
17:32 < tmlind> bencoh: if you want to try it, you can tweak the nvram values with tcmdrw on
github.com/tmlind
17:32 < bencoh> tmlind: meaning implementing/RE-ing such a proxy would make sense for both platforms
17:33 < tmlind> bencoh: hmm proxy running where? on the device?
17:33 < bencoh> on n900/maemo5, yeah
17:33 < bencoh> iirc it is location-proxy (forked on demand I think)
17:33 < tmlind> well i think the modem uses the supl server directly probably based on some
requirements from the ministry of silly walks
17:34 < Wizzup> bencoh: there is location-proxy and location-daemon btw
17:34 < bencoh> it does; the "proxy" only provides the modem with a mean to open a tcp socket and
read/write to it
17:34 < bencoh> Wizzup: indeed
17:34 < Wizzup> if you have more info please share :)
17:34 < Wizzup> I can RE some stuff, but want to RE the right things only
17:35 < bencoh> I haven't toyed with those for quite some time, but lemme see
17:35 < tmlind> well the thing to try with droid4 mdm6600 would be to configure supl server in nvram,
start modem data connection, then gps and see how fast it gets a fix
17:38 < tmlind> i'd try clearing openpst NV_AAGPS_XTRA_ENABLED_I value to try to disable xtra2.bin
use, then try to configure whatever nvram values there might be for a supl server,
sorry no idea what those entries might be but i see the dumps contain some url in hex
format
17:40 < bencoh> Wizzup: see /usr/lib/liblas.so.0.0.0
17:41 < bencoh> especially the las_socket_*
17:41 < bencoh> location-proxy refers to those
17:42 < Wizzup> hm 32K
17:42 < Wizzup> this is likely all n900 specific though right?
17:42 < bencoh> Wizzup: http://pastebin.notk.org/pastebin.php?show=f7f7b371d
17:42 < Entitlement> bencoh - [ pastebin private pastebin - collaborative debugging tool ]
17:42 < bencoh> most likely n900-specific yeah
17:42 < tmlind> hmm so a quick search for the NV_AAGPS_XTRA_ENABLED_I points to some earlier pastebin
page at https://pastebin.com/dyfsUcHc, maybe try configuring those and disable xtra
stuff?
17:42 < Entitlement> tmlind - [ QPST 378 NV Items that are in i535 but NOT in i535 dev ed -
Pastebin.com ]
17:43 < bencoh> tmlind: I don't think supl server address would go into nvram
17:43 < Wizzup> bencoh: ah, so you're suggesting we make some generic "how to write supl data to a
modem" lib?
17:43 < bencoh> tmlind: well, unless it has a mean to actually ask for a specific supl server from the
AP processor
17:43 < tmlind> bencoh: i'm pretty sure the uri goes to nvram, see NV_CGPS_UMTS_PDE_SERVER_ADDR_URL_I
in the link above
17:43 < bencoh> oh
17:44 < bencoh> well, on n900/maemo5, the host gets to decide on that
17:44 < tmlind> ok
17:45 < bencoh> Wizzup: I guess we would want a "generic" glue lib with support for various (two?)
platforms
17:45 < tmlind> bencoh: there seems to be a bunch PDE related nvram entries, see libopenpst dm_nv.h
file
17:46 < bencoh> right
17:47 < bencoh> Actually I wonder if the supl connection would need to go through the host cpu at all
on the mdm6600
17:47 < tmlind> bencoh: no afaik it can't
17:48 < bencoh> it might try and use the gprs/umts data channels
17:48 < tmlind> i think it has to
17:48 < bencoh> without even bothering with the host
17:48 < tmlind> right
17:48 < bencoh> it's a completely different design then
17:48 < bencoh> meaning it should work automagically once we setup pde server properly
17:49 < tmlind> yeah it should hopefully unless it's working only in the xtra2.bin mode
17:49 < bencoh> and that it'll stop working forever once supl servers break support for it
17:49 < tmlind> bencoh: so i did also a tool for the xtra2.bin stuff but it's not complete, also on my
github page droid4-agps or something like that
17:49 < bencoh> (unlike n900, where we managed to somehow get some kind of support using supl-proxy
from tajuma)
17:50 < tmlind> bencoh: at least the supl stuff is a standard format, let's hope it works :)
17:51 < bencoh> it's "standard" until google decides some input fields become mandatory
17:51 < bencoh> but yeah
17:51 < tmlind> i think there are other supl servers available too, right?
17:51 < Wizzup> bencoh: there were other supl servers I think
17:51 < bencoh> (I think that's the reason supl.google.com doesn't work on n900 without any proxy)
17:51 < Wizzup> bencoh: oh?
17:51 < bencoh> well, it depends on your phone service provider
17:52 < bencoh> vodaphone has (had?) one for their customers, but it's not available from outside
their network
17:52 < bencoh> nokia died
17:52 < bencoh> I think sony had one, but ...
17:53 < bencoh> we could also run one, but we'd need to write a fair bit of code for that
17:53 < Wizzup> didn't see any code for it so far
17:53 < Wizzup> (googling around)
17:54 < Wizzup> as in, for a supl server
17:54 < bencoh> Wizzup: https://github.com/fairwaves/RRLP-2.8
17:54 < Entitlement> bencoh - [ GitHub - fairwaves/RRLP-2.8: OpenBTS 2.8 RRLP server, Fairwaves
version ]
17:55 < bencoh> that's for the rrlp part
17:56 < bencoh> I don't remember whether they implemented the SUPL part, but if not, one would need to
wrap the RRLP payload in SUPL packets
17:56 < tmlind> well just having a server proxying the supl data from various sources should do, sort
of what ntpd does
17:57 < Wizzup> it would be nice to have a supl server one can just run, though
17:57 < tmlind> yup
17:57 < bencoh> tmlind: yup, that's exactly what we started doing on maemo5/n900
17:57 < Wizzup> all of this sounds like we will just do GPS with A-GPS first though ;)
17:57 < Wizzup> (for leste, to at least get the frameworks in place)
17:58 < bencoh> I ran a supl-proxy everytime I needed to get a gps fix
17:54 < bencoh> Wizzup: https://github.com/fairwaves/RRLP-2.8
17:54 < Entitlement> bencoh - [ GitHub - fairwaves/RRLP-2.8: OpenBTS 2.8 RRLP server, Fairwaves
version ]
17:55 < bencoh> that's for the rrlp part
17:56 < bencoh> I don't remember whether they implemented the SUPL part, but if not, one would need to
wrap the RRLP payload in SUPL packets
17:56 < tmlind> well just having a server proxying the supl data from various sources should do, sort
of what ntpd does
17:57 < Wizzup> it would be nice to have a supl server one can just run, though
17:57 < tmlind> yup
17:57 < bencoh> tmlind: yup, that's exactly what we started doing on maemo5/n900
17:57 < Wizzup> all of this sounds like we will just do GPS with A-GPS first though ;)
17:57 < Wizzup> (for leste, to at least get the frameworks in place)
17:58 < bencoh> I ran a supl-proxy everytime I needed to get a gps fix
17:58 < Wizzup> I should probably do it on fremantle too, didn't look at the proxying
17:58 < bencoh> (I think it stopped working at some point, but I haven't investigated it. It might be
a cert issue)
17:58 < tmlind> well i meant running a proxying supl server on maemo.org picking data from various
sources so devices would just point to the maemo supl server
17:58 < bencoh> Wizzup: Sicelo eventually wrote a howto https://wiki.maemo.org/N900_GPS_Proxy
17:58 < Entitlement> bencoh - [ N900 GPS Proxy - maemo.org wiki ]
17:59 < bencoh> tmlind: *nod*
17:59 < Wizzup> check
17:59 < Wizzup> tmlind: ah, right
17:59 < Wizzup> that's definitely a good stopgap at least
18:00 < bencoh> We almost have the code for that
18:00 < tmlind> yeah then adding supl data from some open source data feed could be just added
18:00 < bencoh> we just need to add multi-client support to supl-proxy
18:00 < tmlind> cool
18:01 < bencoh> err, except that supl-proxy will actually fetch data for every request
18:01 < tmlind> heh that probably creates a google maps traffic jam to where that server is hosted :)
18:01 < bencoh> :))
18:02 < tmlind> not sure if there are some legal aspects to consider there, not familiar with the supl
stuff really
18:02 < bencoh> you need to supply a valid cell (mnc/lac/whatever) coordinate, and supl response is
customized accordingly
18:02 < bencoh> afaict
18:02 < tmlind> huh why do you need mnc/lac?
18:03 < tmlind> to limit the data size?
18:03 < bencoh> I'm pretty certain you wouldn't need it in theory to get a full ephemeric/almanac dump
18:03 < tmlind> bbl
18:03 < bencoh> but iirc it's mandatory for supl.google.com
18:04 < bencoh> (I can see a pretty good reason for that, actually ... google loves knowing where you
are)
18:06 < Wizzup> yeah
18:06 < Wizzup> from 3) A-GPS here , there seem to be only a few
https://www.reddit.com/r/privacy/comments/cldrym/how_to_degoogle_lineageos_in_2019/
18:06 < Entitlement> Wizzup - [ How to deGoogle LineageOS in 2019 : privacy ]
18:06 < Wizzup> (providers that run a supl server)
18:12 < bencoh> wow, supl.sonyericsson.com actually works as well
18:13 < bencoh> and vodafone too. funny, last time I tried I couldn't use it
18:17 < tmlind> cool, anyways multiple source for the proxying supl server would be best, sort of like
with nptd
18:17 * bencoh nods
</pre>
912fa5e1f13843940f817a0551f1759cc70486ac
Motorola Droid 4
0
50
796
789
2020-07-02T06:50:08Z
Xsetiadi
33
/* Make Audio Automaticaly set up */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.7.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| 2G/3G data || WIP || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works with ofono (good call quality, too), needs Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Currently disabled due to interference with WiFi
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available in /sys, but not yet as input device, needs kernel and MCE work https://github.com/maemo-leste/bugtracker/issues/294
|-
| Compass || ? || Available in /sys (after loading ak8975 module. No applications using it yet
|-
| Proximity sensor || WIP || Sensor works, not yet exposed as evdev device
|-
| Ambient Light Sensor || Yes || https://github.com/maemo-leste/mce/pull/8
|-
| Vibration Motor || Yes || No userspace yet (should be in mce)
|-
| HDMI-out || WIP || works
|-
| TV-out || N/A ||
|-
| GPS || ? || Works but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
* Poweroff device, grab the SD card
* Backup any important files
* Grab latest image from https://maedevu.maemo.org/images/droid4/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Make Audio Automaticaly set up (Temporary Solution) ====
Adding this in /etc/rc.local above the ''exit 0'' to make audio work from boot.
amixer cset numid=22 HiFi #set left speaker to HiFi
amixer cset numid=21 HiFi #set right speaker to HiFi
amixer cset numid=26 HiFi #set left headset to HiFi
amixer cset numid=25 HiFi #set right headset to HiFi
amixer cset numid=1 50% #set HiFi volumes to 50%
==== Wifi ====
The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this over SSH:
<pre>
Read modem output:
# cat /dev/motmdm1 &
Online modem:
# printf "AT+CFUN=1\r" > /dev/motmdm1
Connect to network:
# printf "AT+COPS=1\r" > /dev/motmdm1
Print connected network:
# printf "AT+COPS?\r" > /dev/motmdm1
Not sure, do it anyway:
# printf "AT+SCRN=0\r" > /dev/motmdm1
Dial a number:
# printf "ATD+1234567890\r" > /dev/motmdm1
Hang up:
# printf "ATH\r" > /dev/motmdm1
Answer incoming call:
# printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero.
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
</gallery>
[[Category:Device]]
83c075d5d83e10afb0b9886c38208ee20e1abee9
809
796
2020-07-23T18:10:39Z
Uvos
39
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.7.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| 2G/3G data || WIP || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || WIP || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works with ofono (good call quality, too), needs Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Currently disabled due to interference with WiFi
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || ? || Available in /sys, but not yet as input device, needs kernel and MCE work https://github.com/maemo-leste/bugtracker/issues/294
|-
| Compass || ? || Available in /sys (after loading ak8975 module. No applications using it yet
|-
| Proximity sensor || WIP || Sensor works, not yet exposed as evdev device
|-
| Ambient Light Sensor || Yes || https://github.com/maemo-leste/mce/pull/8
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || WIP || works
|-
| TV-out || N/A ||
|-
| GPS || ? || Works but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
* Poweroff device, grab the SD card
* Backup any important files
* Grab latest image from https://maedevu.maemo.org/images/droid4/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Make Audio Automaticaly set up (Temporary Solution) ====
Adding this in /etc/rc.local above the ''exit 0'' to make audio work from boot.
amixer cset numid=22 HiFi #set left speaker to HiFi
amixer cset numid=21 HiFi #set right speaker to HiFi
amixer cset numid=26 HiFi #set left headset to HiFi
amixer cset numid=25 HiFi #set right headset to HiFi
amixer cset numid=1 50% #set HiFi volumes to 50%
==== Wifi ====
The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this over SSH:
<pre>
Read modem output:
# cat /dev/motmdm1 &
Online modem:
# printf "AT+CFUN=1\r" > /dev/motmdm1
Connect to network:
# printf "AT+COPS=1\r" > /dev/motmdm1
Print connected network:
# printf "AT+COPS?\r" > /dev/motmdm1
Not sure, do it anyway:
# printf "AT+SCRN=0\r" > /dev/motmdm1
Dial a number:
# printf "ATD+1234567890\r" > /dev/motmdm1
Hang up:
# printf "ATH\r" > /dev/motmdm1
Answer incoming call:
# printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero.
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
</gallery>
[[Category:Device]]
859990c8d936c2f36307b65a78216743736da191
815
809
2020-08-16T10:30:51Z
Sicelo
5
/* Status */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.7.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || Yes || Available in /sys, but not yet as input device, needs kernel and MCE work https://github.com/maemo-leste/bugtracker/issues/294
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet
|-
| Proximity sensor || WIP || Sensor works, not yet exposed as evdev device
|-
| Ambient Light Sensor || Yes || https://github.com/maemo-leste/mce/pull/8
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No ||
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
* Poweroff device, grab the SD card
* Backup any important files
* Grab latest image from https://maedevu.maemo.org/images/droid4/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Make Audio Automaticaly set up (Temporary Solution) ====
Adding this in /etc/rc.local above the ''exit 0'' to make audio work from boot.
amixer cset numid=22 HiFi #set left speaker to HiFi
amixer cset numid=21 HiFi #set right speaker to HiFi
amixer cset numid=26 HiFi #set left headset to HiFi
amixer cset numid=25 HiFi #set right headset to HiFi
amixer cset numid=1 50% #set HiFi volumes to 50%
==== Wifi ====
The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this over SSH:
<pre>
Read modem output:
# cat /dev/motmdm1 &
Online modem:
# printf "AT+CFUN=1\r" > /dev/motmdm1
Connect to network:
# printf "AT+COPS=1\r" > /dev/motmdm1
Print connected network:
# printf "AT+COPS?\r" > /dev/motmdm1
Not sure, do it anyway:
# printf "AT+SCRN=0\r" > /dev/motmdm1
Dial a number:
# printf "ATD+1234567890\r" > /dev/motmdm1
Hang up:
# printf "ATH\r" > /dev/motmdm1
Answer incoming call:
# printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero.
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
</gallery>
[[Category:Device]]
2a3f18a07a7cc39f6aeda401139f1c4a566b0a36
836
815
2020-10-21T12:41:40Z
Uvos
39
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.7.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || Yes || Available in /sys, and as input device via iio-uinput
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)
|-
| Proximity sensor || WIP || needs mce work
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No ||
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
* Poweroff device, grab the SD card
* Backup any important files
* Grab latest image from https://maedevu.maemo.org/images/droid4/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Make Audio Automaticaly set up (Temporary Solution) ====
Adding this in /etc/rc.local above the ''exit 0'' to make audio work from boot.
amixer cset numid=22 HiFi #set left speaker to HiFi
amixer cset numid=21 HiFi #set right speaker to HiFi
amixer cset numid=26 HiFi #set left headset to HiFi
amixer cset numid=25 HiFi #set right headset to HiFi
amixer cset numid=1 50% #set HiFi volumes to 50%
==== Wifi ====
The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this over SSH:
<pre>
Read modem output:
# cat /dev/motmdm1 &
Online modem:
# printf "AT+CFUN=1\r" > /dev/motmdm1
Connect to network:
# printf "AT+COPS=1\r" > /dev/motmdm1
Print connected network:
# printf "AT+COPS?\r" > /dev/motmdm1
Not sure, do it anyway:
# printf "AT+SCRN=0\r" > /dev/motmdm1
Dial a number:
# printf "ATD+1234567890\r" > /dev/motmdm1
Hang up:
# printf "ATH\r" > /dev/motmdm1
Answer incoming call:
# printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero.
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
</gallery>
[[Category:Device]]
a0b00560b3d9013d013e3761d1a0a78414f97fc1
837
836
2020-10-21T12:42:19Z
Uvos
39
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.8.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || Yes || Available in /sys, and as input device via iio-uinput
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)
|-
| Proximity sensor || WIP || needs mce work
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No ||
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
* Poweroff device, grab the SD card
* Backup any important files
* Grab latest image from https://maedevu.maemo.org/images/droid4/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Make Audio Automaticaly set up (Temporary Solution) ====
Adding this in /etc/rc.local above the ''exit 0'' to make audio work from boot.
amixer cset numid=22 HiFi #set left speaker to HiFi
amixer cset numid=21 HiFi #set right speaker to HiFi
amixer cset numid=26 HiFi #set left headset to HiFi
amixer cset numid=25 HiFi #set right headset to HiFi
amixer cset numid=1 50% #set HiFi volumes to 50%
==== Wifi ====
The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this over SSH:
<pre>
Read modem output:
# cat /dev/motmdm1 &
Online modem:
# printf "AT+CFUN=1\r" > /dev/motmdm1
Connect to network:
# printf "AT+COPS=1\r" > /dev/motmdm1
Print connected network:
# printf "AT+COPS?\r" > /dev/motmdm1
Not sure, do it anyway:
# printf "AT+SCRN=0\r" > /dev/motmdm1
Dial a number:
# printf "ATD+1234567890\r" > /dev/motmdm1
Hang up:
# printf "ATH\r" > /dev/motmdm1
Answer incoming call:
# printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero.
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
</gallery>
[[Category:Device]]
f5d40f70787401b3b381c94e95412fb1dcb859cc
841
837
2020-10-22T17:47:01Z
Uvos
39
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.8.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || Yes || Available in /sys, and as input device via iio-uinput
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)
|-
| Proximity sensor || WIP || needs mce work
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No ||
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normaly you can just apt update && apt dist-upgrade to update to the latest version. I for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab latest image from https://maedevu.maemo.org/images/droid4/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Make Audio Automaticaly set up (Temporary Solution) ====
Adding this in /etc/rc.local above the ''exit 0'' to make audio work from boot.
amixer cset numid=22 HiFi #set left speaker to HiFi
amixer cset numid=21 HiFi #set right speaker to HiFi
amixer cset numid=26 HiFi #set left headset to HiFi
amixer cset numid=25 HiFi #set right headset to HiFi
amixer cset numid=1 50% #set HiFi volumes to 50%
==== Wifi ====
The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this over SSH:
<pre>
Read modem output:
# cat /dev/motmdm1 &
Online modem:
# printf "AT+CFUN=1\r" > /dev/motmdm1
Connect to network:
# printf "AT+COPS=1\r" > /dev/motmdm1
Print connected network:
# printf "AT+COPS?\r" > /dev/motmdm1
Not sure, do it anyway:
# printf "AT+SCRN=0\r" > /dev/motmdm1
Dial a number:
# printf "ATD+1234567890\r" > /dev/motmdm1
Hang up:
# printf "ATH\r" > /dev/motmdm1
Answer incoming call:
# printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero.
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
</gallery>
[[Category:Device]]
cb87a566f28275efd6cb3a882761e6767a153ac1
842
841
2020-10-22T18:14:34Z
Sicelo
5
/* Updating */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.8.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || Yes || Available in /sys, and as input device via iio-uinput
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)
|-
| Proximity sensor || WIP || needs mce work
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No ||
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab the latest image from https://phoenix.maemo.org/view/Images/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Make Audio Automaticaly set up (Temporary Solution) ====
Adding this in /etc/rc.local above the ''exit 0'' to make audio work from boot.
amixer cset numid=22 HiFi #set left speaker to HiFi
amixer cset numid=21 HiFi #set right speaker to HiFi
amixer cset numid=26 HiFi #set left headset to HiFi
amixer cset numid=25 HiFi #set right headset to HiFi
amixer cset numid=1 50% #set HiFi volumes to 50%
==== Wifi ====
The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this over SSH:
<pre>
Read modem output:
# cat /dev/motmdm1 &
Online modem:
# printf "AT+CFUN=1\r" > /dev/motmdm1
Connect to network:
# printf "AT+COPS=1\r" > /dev/motmdm1
Print connected network:
# printf "AT+COPS?\r" > /dev/motmdm1
Not sure, do it anyway:
# printf "AT+SCRN=0\r" > /dev/motmdm1
Dial a number:
# printf "ATD+1234567890\r" > /dev/motmdm1
Hang up:
# printf "ATH\r" > /dev/motmdm1
Answer incoming call:
# printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero.
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
</gallery>
[[Category:Device]]
ee1bde059df148700f7847a97ced9ca3cb35e6f4
Nokia N900
0
48
797
747
2020-07-02T09:07:01Z
Parazyd
1
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The Nokia N900.
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing non-free firmware
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || Yes || Works fast(!)
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters)
|-
| Bluetooth || No || Driver problems in mainline
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on Bluetooth. [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/staging?id=757c2bf597a8e9f859f8efceda9c5108607fd98d Removed in Linux 5.4-rc1.]
|-
| Accelerometer || Not yet || Available as input device, needs MCE work
|-
| Compass || N/A || Missing in hardware
|-
| Proximity sensor || Not yet ||
|-
| Ambient Light Sensor || Not yet ||
|-
| Vibration Motor || Yes || No integration yet
|-
| HDMI-out || N/A || Missing in hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || WIP || Works using gps3 and gpsd, needs integration still
|-
| Infrared || Yes || TX only (hardware limitation).
|}
== Installation ==
Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
Image archive: http://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to use/install Fremantle, or want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''.
To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Notes ==
* If your battery is not calibrated, the battery applet will not give you any data. Charge the battery fully, and then let it discharge (almost) completely.
* Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful.
Also see: https://elinux.org/N900
Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
== Power Management ==
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
[[Category:Device]]
e913c4b966f938f8ee4c6b802d4adde47bd20bd2
798
797
2020-07-02T09:07:37Z
Parazyd
1
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The Nokia N900.
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing non-free firmware
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || Yes || Works fast(!)
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters)
|-
| Bluetooth || No || Driver problems in mainline
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on Bluetooth. [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/staging?id=757c2bf597a8e9f859f8efceda9c5108607fd98d Removed in Linux 5.4-rc1.]
|-
| Accelerometer || Not yet || Available as input device, needs MCE work
|-
| Compass || N/A || Missing in hardware
|-
| Proximity sensor || Not yet ||
|-
| Ambient Light Sensor || Not yet ||
|-
| Vibration Motor || Yes || No integration yet
|-
| HDMI-out || N/A || Missing in hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || WIP || Works using gps3 and gpsd, needs integration still
|-
| Infrared || Yes || TX only (hardware limitation).
|}
== Installation ==
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to use/install Fremantle, or want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''.
To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Notes ==
* If your battery is not calibrated, the battery applet will not give you any data. Charge the battery fully, and then let it discharge (almost) completely.
* Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful.
Also see: https://elinux.org/N900
Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
== Power Management ==
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
[[Category:Device]]
6970dfad254cccd44848f8c03d81f1907bd153c7
805
798
2020-07-09T20:30:44Z
Sicelo
5
/* Notes */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The Nokia N900.
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing non-free firmware
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || Yes || Works fast(!)
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters)
|-
| Bluetooth || No || Driver problems in mainline
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on Bluetooth. [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/staging?id=757c2bf597a8e9f859f8efceda9c5108607fd98d Removed in Linux 5.4-rc1.]
|-
| Accelerometer || Not yet || Available as input device, needs MCE work
|-
| Compass || N/A || Missing in hardware
|-
| Proximity sensor || Not yet ||
|-
| Ambient Light Sensor || Not yet ||
|-
| Vibration Motor || Yes || No integration yet
|-
| HDMI-out || N/A || Missing in hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || WIP || Works using gps3 and gpsd, needs integration still
|-
| Infrared || Yes || TX only (hardware limitation).
|}
== Installation ==
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to use/install Fremantle, or want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''.
To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Notes ==
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are possible concerns regarding the possibility to blow them
Also see: https://elinux.org/N900
Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
== Power Management ==
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
[[Category:Device]]
f88d421a4b4d940d21f8087bf0d5356397b511c7
806
805
2020-07-09T20:32:31Z
Sicelo
5
Rearrange
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The Nokia N900.
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing non-free firmware
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || Yes || Works fast(!)
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters)
|-
| Bluetooth || No || Driver problems in mainline
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on Bluetooth. [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/staging?id=757c2bf597a8e9f859f8efceda9c5108607fd98d Removed in Linux 5.4-rc1.]
|-
| Accelerometer || Not yet || Available as input device, needs MCE work
|-
| Compass || N/A || Missing in hardware
|-
| Proximity sensor || Not yet ||
|-
| Ambient Light Sensor || Not yet ||
|-
| Vibration Motor || Yes || No integration yet
|-
| HDMI-out || N/A || Missing in hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || WIP || Works using gps3 and gpsd, needs integration still
|-
| Infrared || Yes || TX only (hardware limitation).
|}
== Installation ==
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to use/install Fremantle, or want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''.
To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Notes ==
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are possible concerns regarding the possibility to blow them
Also see: https://elinux.org/N900
Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
== Power Management ==
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
[[Category:Device]]
480f182a26cde9cebd5342597b09418264a62d16
810
806
2020-08-13T12:47:39Z
L29Ah
41
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The Nokia N900.
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing non-free firmware
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || Yes || Works fast(!)
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters)
|-
| Bluetooth || No || Driver problems in mainline
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on Bluetooth. [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/staging?id=757c2bf597a8e9f859f8efceda9c5108607fd98d Removed in Linux 5.4-rc1.]
|-
| Accelerometer || Not yet || Available as input device, needs MCE work
|-
| Compass || N/A || Missing in hardware
|-
| Proximity sensor || Not yet ||
|-
| Ambient Light Sensor || Not yet ||
|-
| Vibration Motor || Yes || No integration yet
|-
| HDMI-out || N/A || Missing in hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || WIP || Works using gps3 and gpsd, needs integration still
|-
| Infrared || Yes || TX only (hardware limitation).
|-
| Camera || ||
|}
== Installation ==
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to use/install Fremantle, or want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''.
To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Notes ==
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are possible concerns regarding the possibility to blow them
Also see: https://elinux.org/N900
Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
== Power Management ==
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
[[Category:Device]]
2aab7313e442bca3b7308404e728b0a659034794
813
810
2020-08-16T10:21:46Z
Sicelo
5
/* Status */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The Nokia N900.
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || Yes || Works fast(!)
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || WIP || Works with ofono; UI under way: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will be implemented using telepathy-ring, no UI yet
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, not enabled by default (might require pulseaudio audio filters)
|-
| Bluetooth || No || Driver problems in mainline
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on Bluetooth. [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/staging?id=757c2bf597a8e9f859f8efceda9c5108607fd98d Removed in Linux 5.4-rc1.]
|-
| Accelerometer || Yes || Available as input device, no integration yet. Needs MCE work
|-
| Compass || N/A || Missing in hardware
|-
| Proximity sensor || Yes || No integration yet
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || Missing in hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || WIP || Works using gps3 and gpsd, needs integration still, and work on a-gps
|-
| Infrared || Yes || TX only (hardware limitation).
|-
| Camera || || Needs complex v4l work
|}
== Installation ==
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to use/install Fremantle, or want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''.
To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Notes ==
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are possible concerns regarding the possibility to blow them
Also see: https://elinux.org/N900
Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
== Power Management ==
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
[[Category:Device]]
befa808277442f7378554eb4adf0daa800bd2e3c
814
813
2020-08-16T10:24:46Z
Sicelo
5
/* Status */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The Nokia N900.
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || Yes || Works fast(!)
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || Yes || Works with ofono; UI under way: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || Yes || Works with ofono, will be implemented using telepathy-ring, no UI yet
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, not enabled by default (might require pulseaudio audio filters)
|-
| Bluetooth || No || Driver problems in mainline
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on Bluetooth. [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/staging?id=757c2bf597a8e9f859f8efceda9c5108607fd98d Removed in Linux 5.4-rc1.]
|-
| Accelerometer || Yes || Available as input device, no integration yet. Needs MCE work
|-
| Compass || N/A || Missing in hardware
|-
| Proximity sensor || Yes || No integration yet
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || Missing in hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || WIP || Works using gps3 and gpsd, needs integration still, and work on a-gps
|-
| Infrared || Yes || TX only (hardware limitation).
|-
| Camera || || Needs complex v4l work
|}
== Installation ==
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to use/install Fremantle, or want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''.
To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Notes ==
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are possible concerns regarding the possibility to blow them
Also see: https://elinux.org/N900
Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
== Power Management ==
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
[[Category:Device]]
b1d189c992aa1c488f3218c3f9c433188aed550a
Status
0
64
799
700
2020-07-04T11:13:52Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
For Device specific status pages, see See [[:Category:Device]]
The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device
{| class="wikitable"
! Feature
! Status
! Leste software
! Notes
|-
| Desktop environment || OK || hildon || hildon home, hildon desktop, .
|-
| Terminal || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] ||
|-
| [[Status/VirtualKeyboard|Virtual keyboard]] || OK || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work fine for all devices
|-
| [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Works out of the box. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7
|-
| Bluetooth || No(t yet) || ? ||
|-
| [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily. Some also use netsurf-gtk.
|-
| [[Status/Audio|Audio]] || WIP || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio ; will need to import alsa-policy-enforcement, port OHM
|-
| Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] ||
|-
| [[Status/USB Peripheral|USB Peripheral]] || OK || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv
|-
| LED control || OK || mce || Works on the N900 - make sure the notifications are enabled in settings.
|-
| [[Status/Mobile Data|Mobile Data]] || WIP || [https://github.com/maemo-leste/connui-cellular connui-cellular] [https://github.com/maemo-leste/libicd-network-ofono libicd-network-ofono] || There is basic libicd-network-ofono, connui-cellular is being ported to ofono
|-
| [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed
|-
| [[Status/SMS|SMS]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue]
|-
| [[Status/Phone Calls|Phone Calls]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue]
|-
| [[Status/Application Manager|Application Manager]] || OK || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || Mostly works, but needs serious testing [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue]
|-
| [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue]
|-
| [[Status/PDF Viewer|PDF Viewer]] || Mostly works || osso-pdf-viewer || [https://github.com/maemo-leste/osso-pdf-viewer osso-pdf-viewer]
|-
| [[Status/Games|Games & Entertainment]] || OK || Works (available in [[Leste Extras]] || [https://github.com/maemo-leste/bugtracker/issues/18 sdl fullscreen] [https://github.com/maemo-leste/bugtracker/issues/238 game importing]
|-
| [[Status/Theming|Theming]] || OK || Works with themes (available in [[Leste Extras]] ||
|}
d30df1a3d0f61460ed935403540f08029a9d108c
818
799
2020-10-03T11:38:42Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
For Device specific status pages, see See [[:Category:Device]]
The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device
{| class="wikitable"
! Feature
! Status
! Leste software
! Notes
|-
| Desktop environment || OK || hildon || hildon home, hildon desktop, .
|-
| Terminal || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] ||
|-
| [[Status/VirtualKeyboard|Virtual keyboard]] || OK || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work fine for all devices
|-
| [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Works out of the box. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7
|-
| Bluetooth || No(t yet) || ? ||
|-
| [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily. Some also use netsurf-gtk.
|-
| [[Status/Audio|Audio]] || WIP || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio ; will need to import alsa-policy-enforcement, port OHM
|-
| Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] ||
|-
| [[Status/USB Peripheral|USB Peripheral]] || OK || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv
|-
| LED control || OK || mce || Works on the N900 - make sure the notifications are enabled in settings.
|-
| [[Status/Mobile Data|Mobile Data]] || WIP || [https://github.com/maemo-leste/connui-cellular connui-cellular] [https://github.com/maemo-leste/libicd-network-ofono libicd-network-ofono] || There is basic libicd-network-ofono, connui-cellular is being ported to ofono
|-
| [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed
|-
| [[Status/SMS|SMS]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue]
|-
| [[Status/Phone Calls|Phone Calls]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue]
|-
| [[Status/Application Manager|Application Manager]] || OK || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || Mostly works, but needs serious testing [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue]
|-
| [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue]
|-
| [[Status/PDF Viewer|PDF Viewer]] || Mostly works || osso-pdf-viewer || [https://github.com/maemo-leste/osso-pdf-viewer osso-pdf-viewer]
|-
| [[Status/Games|Games & Entertainment]] || OK || Works (available in [[Leste Extras]] || [https://github.com/maemo-leste/bugtracker/issues/18 sdl fullscreen] [https://github.com/maemo-leste/bugtracker/issues/238 game importing]
|-
| [[Status/Theming|Theming]] || OK || Works with themes (available in [[Leste Extras]] ||
|-
| [[Calendar|Calendar]] || WIP || Works with themes (available in [[Leste Extras]] ||
|}
eff8f3a1dd466da9f76839818cabe1d6a88ed3a4
819
818
2020-10-03T11:39:08Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
For Device specific status pages, see See [[:Category:Device]]
The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device
{| class="wikitable"
! Feature
! Status
! Leste software
! Notes
|-
| Desktop environment || OK || hildon || hildon home, hildon desktop, .
|-
| Terminal || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] ||
|-
| [[Status/VirtualKeyboard|Virtual keyboard]] || OK || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work fine for all devices
|-
| [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Works out of the box. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7
|-
| Bluetooth || No(t yet) || ? ||
|-
| [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily. Some also use netsurf-gtk.
|-
| [[Status/Audio|Audio]] || WIP || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio ; will need to import alsa-policy-enforcement, port OHM
|-
| Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] ||
|-
| [[Status/USB Peripheral|USB Peripheral]] || OK || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv
|-
| LED control || OK || mce || Works on the N900 - make sure the notifications are enabled in settings.
|-
| [[Status/Mobile Data|Mobile Data]] || WIP || [https://github.com/maemo-leste/connui-cellular connui-cellular] [https://github.com/maemo-leste/libicd-network-ofono libicd-network-ofono] || There is basic libicd-network-ofono, connui-cellular is being ported to ofono
|-
| [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed
|-
| [[Status/SMS|SMS]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue]
|-
| [[Status/Phone Calls|Phone Calls]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue]
|-
| [[Status/Application Manager|Application Manager]] || OK || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || Mostly works, but needs serious testing [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue]
|-
| [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue]
|-
| [[Status/PDF Viewer|PDF Viewer]] || Mostly works || osso-pdf-viewer || [https://github.com/maemo-leste/osso-pdf-viewer osso-pdf-viewer]
|-
| [[Status/Games|Games & Entertainment]] || OK || Works (available in [[Leste Extras]] || [https://github.com/maemo-leste/bugtracker/issues/18 sdl fullscreen] [https://github.com/maemo-leste/bugtracker/issues/238 game importing]
|-
| [[Status/Theming|Theming]] || OK || Works with themes (available in [[Leste Extras]] ||
|-
| [[Calendar|Calendar]] || WIP || Qalendar UI, evolution backend and syncing being worked on ||
|}
9cf8dd3ed2e2d18d714f1823fd40bd144981e567
831
819
2020-10-07T15:50:08Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
For Device specific status pages, see See [[:Category:Device]]
The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device
{| class="wikitable"
! Feature
! Status
! Leste software
! Notes
|-
| Desktop environment || OK || hildon || hildon home, hildon desktop, .
|-
| Terminal || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] ||
|-
| [[Status/VirtualKeyboard|Virtual keyboard]] || OK || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work fine for all devices
|-
| [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Works out of the box. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7
|-
| Bluetooth || No(t yet) || ? ||
|-
| [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily. Some also use netsurf-gtk.
|-
| [[Status/Audio|Audio]] || WIP || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio ; will need to import alsa-policy-enforcement, port OHM
|-
| Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] ||
|-
| [[Status/USB Peripheral|USB Peripheral]] || OK || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv
|-
| LED control || OK || mce || Works on the N900 - make sure the notifications are enabled in settings.
|-
| [[Status/Mobile Data|Mobile Data]] || WIP || [https://github.com/maemo-leste/connui-cellular connui-cellular] [https://github.com/maemo-leste/libicd-network-ofono libicd-network-ofono] || There is basic libicd-network-ofono, connui-cellular is being ported to ofono
|-
| [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed
|-
| [[Status/SMS|SMS]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue]
|-
| [[Status/Phone Calls|Phone Calls]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue]
|-
| [[Status/Application Manager|Application Manager]] || OK || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || Mostly works, but needs serious testing [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue]
|-
| [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue]
|-
| [[Status/PDF Viewer|PDF Viewer]] || Mostly works || osso-pdf-viewer || [https://github.com/maemo-leste/osso-pdf-viewer osso-pdf-viewer]
|-
| [[Status/Games|Games & Entertainment]] || OK || Works (available in [[Leste Extras]] || [https://github.com/maemo-leste/bugtracker/issues/18 sdl fullscreen] [https://github.com/maemo-leste/bugtracker/issues/238 game importing]
|-
| [[Status/Theming|Theming]] || OK || Works with themes (available in [[Leste Extras]] ||
|-
| [[Calendar|Calendar]] || OK || Qalendar UI, syncing works. (UI needs some scrolling work) ||
|}
1a739ad88b5b794b9805f12662931110f3bf0b61
Status/Audio
0
108
800
2020-07-04T11:17:56Z
Wizzup
4
Created page with "== Current status == * Most devices should just work with ALSA, installing pulseaudio is possible, but it should be started in system mode - we're working on making that the..."
wikitext
text/x-wiki
== Current status ==
* Most devices should just work with ALSA, installing pulseaudio is possible, but it should be started in system mode - we're working on making that the default.
* We have yet to figure out device policies: what to do on jack unplug, what to do on jack plug while listening to music, what to do on jack unplug when you're on a phone call, etc.
== Development notes ==
For each device, we'll need to create usable Alsa UCM files. And we'll need to learn a bunch about pulseaudio's routing and policy management, how to act on certain plug events, etc.
Unsorted (useful) links:
* https://www.systutorials.com/docs/linux/man/1-alsaucm/
* https://github.com/alsa-project/alsa-ucm-conf
* https://wiki.postmarketos.org/wiki/Alsa_UCM
* https://wiki.archlinux.org/index.php/PulseAudio/Examples
* https://unix.stackexchange.com/questions/115302/disable-headphone-jack-detection-in-pulseaudio
b0b111c0e7f5e29c6ac32f403b95bb61bd621e9e
801
800
2020-07-04T19:20:51Z
Wizzup
4
wikitext
text/x-wiki
== Current status ==
* Most devices should just work with ALSA, installing pulseaudio is possible, but it should be started in system mode - we're working on making that the default.
* We have yet to figure out device policies: what to do on jack unplug, what to do on jack plug while listening to music, what to do on jack unplug when you're on a phone call, etc.
== Development notes ==
For each device, we'll need to create usable Alsa UCM files. And we'll need to learn a bunch about pulseaudio's routing and policy management, how to act on certain plug events, etc.
Unsorted (useful) links:
* https://www.systutorials.com/docs/linux/man/1-alsaucm/
* https://github.com/alsa-project/alsa-ucm-conf
* https://wiki.postmarketos.org/wiki/Alsa_UCM
* https://wiki.archlinux.org/index.php/PulseAudio/Examples
* https://unix.stackexchange.com/questions/115302/disable-headphone-jack-detection-in-pulseaudio
* https://wiki.merproject.org/wiki/Nemo/Audio
5409c232033c6537d6de48e919e7e1850306e98f
802
801
2020-07-06T00:51:37Z
Sicelo
5
added possibly useful link. remove otherwise
wikitext
text/x-wiki
== Current status ==
* Most devices should just work with ALSA, installing pulseaudio is possible, but it should be started in system mode - we're working on making that the default.
* We have yet to figure out device policies: what to do on jack unplug, what to do on jack plug while listening to music, what to do on jack unplug when you're on a phone call, etc.
== Development notes ==
For each device, we'll need to create usable Alsa UCM files. And we'll need to learn a bunch about pulseaudio's routing and policy management, how to act on certain plug events, etc.
Unsorted (useful) links:
* https://www.systutorials.com/docs/linux/man/1-alsaucm/
* https://github.com/alsa-project/alsa-ucm-conf
* https://wiki.postmarketos.org/wiki/Alsa_UCM
* https://wiki.archlinux.org/index.php/PulseAudio/Examples
* https://unix.stackexchange.com/questions/115302/disable-headphone-jack-detection-in-pulseaudio
* https://wiki.merproject.org/wiki/Nemo/Audio
* http://wiki.maemo.org/Porting/Audio/Q_and_A_RE-PA
f9faafb558718ba0448651b395418cb14b6869ff
803
802
2020-07-06T00:56:25Z
Sicelo
5
/* Development notes */
wikitext
text/x-wiki
== Current status ==
* Most devices should just work with ALSA, installing pulseaudio is possible, but it should be started in system mode - we're working on making that the default.
* We have yet to figure out device policies: what to do on jack unplug, what to do on jack plug while listening to music, what to do on jack unplug when you're on a phone call, etc.
== Development notes ==
For each device, we'll need to create usable Alsa UCM files. And we'll need to learn a bunch about pulseaudio's routing and policy management, how to act on certain plug events, etc.
Unsorted (useful) links:
* https://www.systutorials.com/docs/linux/man/1-alsaucm/
* https://github.com/alsa-project/alsa-ucm-conf
* https://wiki.postmarketos.org/wiki/Alsa_UCM
* https://wiki.archlinux.org/index.php/PulseAudio/Examples
* https://unix.stackexchange.com/questions/115302/disable-headphone-jack-detection-in-pulseaudio
* https://wiki.merproject.org/wiki/Nemo/Audio
* (Fremantle/N900-specific) http://wiki.maemo.org/Porting/Audio/Q_and_A_RE-PA
* (Fremantle/N900-specific) https://blog.linuxplumbersconf.org/2009/slides/Jyri-Sarha-audio_miniconf_slides.pdf
ab7793da1314af534acc9cd65c835942b577b64b
HowTo
0
107
804
791
2020-07-06T12:42:33Z
Parazyd
1
/* How do I use the virtual keyboard */
wikitext
text/x-wiki
This page serves to answer commonly asked "How do I do X?" question.
__TOC__
== Generic (not device specific) ==
=== How do I lock and unlock the device? ===
If the device is unlocked, pressing the power button twice in quick succession will lock it. Also, pressing the power button once will pop up a dialog with an option to allow you to lock the device.
If the device is locked, pressing the power button once will bring up the lock screen with a slider you can drag to unlock the device.
('''NB''': on the Droid 4, the unlock slider may sometimes not show up or show up in the wrong place. In this case, you can still 'drag' it blindly. The drag area is exactly halfway from the top to the bottom of the screen, and starts around 1/4 of the width of the screen and extends to about 3/4 of its width.)
Additionally, if your device has sliding keyboard (like the [[Nokia_N900]] and [[Motorola_Droid_4]]), then opening the keyboard will also unlock the device. Closing the keyboard will lock the device again, but only if you have not interacted with the screen since the last slide up. Devices such as the [[Nokia_N900]] can also be locked/unlocked by toggling their physical lock/unlock slider.
=== How do I play music? ===
Currently, pick any commandline or GUI tool from standard Debian/Devuan that you like.
In the future, we will recommend and ship the open-source clone of the player from Maemo: https://wiki.maemo.org/Open_Media_Player
=== How do I use the virtual keyboard ===
Go to the application menu and start the Control Panel. From here, open the Text Input applet, and make sure "Use virtual keyboard" is checked. It should, however, be enabled by default.
The next you time touch an input field, you should see the virtual keyboard pop up. (If your device has a keyboard attached, then this will work slightly differently, depending on the sliding state of the keyboard).
'''NB:''' Some of the symbols are sticky, so you will need to press them twice to enter them. Maemo will highlight the symbol blue to alert you of this. Pressing it once allows you to combine it with another letter/character, e.g. the tilde (~) can be entered by tapping '~' twice on the special symbols view. However, if you press it once, then type 'a', you get 'ã'.
== Motorola Droid 4 ==
=== How do I improve battery life? ===
In an optimal case, with a healthy battery, you should be able to get several days of uptime with the modem online. This will probably get a little better over time.
But there are also lots of things that might hinder power management, so it might also be less. We're still actively working on this.
Currently, you should consider stopping ntp (/etc/init.d/ntp stop) since it will eat a lot of battery needlessly.
=== How do I show the special keys virtual keyboard? ===
Press the OK button, and then press the key labelled "Shift" (Maemo Leste uses it as the Ctrl key). If you are using the touch keyboard instead, the special keys are already included.
See [[HowTo#How_do_I_use_the_virtual_keyboard|Virtual Keyboard help]] for a special/useful feature of the virtual keyboard(s)
== Nokia N900 ==
=== How do I show the special keys virtual keyboard? ===
On the hardware keyboard, press the blue arrow, and then press the Ctrl key. If you are using the touch keyboard instead, the special keys are already included.
See [[HowTo#How_do_I_use_the_virtual_keyboard|Virtual Keyboard help]] for a special/useful feature of the virtual keyboard(s)
3616d25e2292fbf78bc8d816e53dd884888e7b38
Image Builder
0
100
807
651
2020-07-21T12:34:35Z
Parazyd
1
/* Maemo 7 Leste */
wikitext
text/x-wiki
= How to build your own images =
== Maemo 7 Leste ==
'''[https://github.com/maemo-leste/image-builder Github]'''
# Install the following packages: <pre>curl git wget qemu-user-static build-essential rsync gcc-arm-none-eabi gcc-multilib lib32z1 u-boot-tools device-tree-compiler lzop dosfstools vboot-utils vboot-kernel-utils libftdi-dev libfdt-dev swig libpython-dev bc bison flex libssl-dev</pre>
# In your terminal, run the following commands:
$ git clone --recurse-submodules https://github.com/maemo-leste/image-builder.git
$ cd image-builder/arm-sdk
$ ./init.sh # (only needed on first run)
$ zsh -f
$ source sdk
$ load devuan DEVICE_NAME maemo
$ build_image_dist
Note: replace <code>DEVICE_NAME</code> with your board name:
* n900
* n950
* n9
* droid4
* odroidxu
* odroidxu4
* ouya
* raspi1
* raspi2
* raspi3
* raspi4
* rock64
* pinephone-dontbeevil
* pinephone
* pinetab
* sunxi
* turbox-twister
5b09c00d65a64bd06e9cff8aeb4960dba1f14cca
Development
0
61
808
735
2020-07-21T12:35:22Z
Parazyd
1
wikitext
text/x-wiki
Maemo Leste development is split up in a few different places.
== Communication and organising ==
* Our https://maemo-leste.github.io website is where we post (news) updates, as well as on talk.maemo.org (see this subforum https://talk.maemo.org/forumdisplay.php?f=66 and this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192)
* There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker
* The day-to-day development and user chatter mostly takes place in the [[IRC channel]]
* We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
* This wiki: for documenting the status of various long-running projects, status per device, etc.
== Task Summary ==
For current (semi) impactful tasks, see
[[Development/Tasks]]
== Codename ==
* Maemo Leste is currently based on Devuan Beowulf, which is based on Debian Buster.
== Guides ==
* [[Development/Porting Packages]]
* [[Development/Building Packages]]
* [[Development/Modified Software]]
* [[Development/Device Bringup]]
* https://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide
== Technical ==
All our git repositories can be found here: https://github.com/maemo-leste
=== Jenkins ===
To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/
=== Developing on a device ===
Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM)
The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]].
=== Building a Maemo Leste image ===
See https://leste.maemo.org/Image_Builder
=== Crossbuilding ===
Multiarch is an ability present on modern Debian systems that allows you to build native packages for different architectures. This is nice because you can build packages for an ARM based phone using the full power of your x86 based PC/Mac/Notebook or a server.
Here we show how you can easily setup a multiarch environment and build a native package for Maemo Leste running on Nokia N900. We are going to make a container (chroot) for this job. It's because we don't want to pollute our main system.
# Make a container for our development system
DIR=/var/lib/container/stretch
sudo apt-get install qemu-user-static debootstrap &&
sudo debootstrap stretch $DIR http://deb.debian.org/debian &&
echo "strech_cross" | sudo tee $DIR/etc/debian_chroot &&
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR
# Setup build environment inside the container
cat >> ~/.bashrc << EOF &&
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
export CC=arm-linux-gnueabihf-gcc
export JOBS=$(grep processor /proc/cpuinfo | wc -l)
EOF
dpkg --add-architecture armhf &&
apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates &&
cat >> /etc/apt/sources.list << "EOF" &&
deb http://maedevu.maemo.org/leste ascii main contrib non-free n900
deb http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900
deb-src http://deb.debian.org/debian stretch main
deb-src http://maedevu.maemo.org/leste ascii main contrib non-free n900
deb-src http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900
EOF
wget https://maedevu.maemo.org/testing-key.asc &&
apt-key add testing-key.asc &&
rm -f testing-key.asc &&
rm -f /var/cache/apt/archives/*.deb &&
apt-get update &&
exec bash
# Build Xorg for Nokia N900
apt-get source xserver-xorg-core &&
cd xorg-server-1.19.2 &&
wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch &&
mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches &&
echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series &&
apt-get -y build-dep -a armhf . &&
time dpkg-buildpackage -aarmhf -j$JOBS -b &&
echo OK || echo FAIL
To login the container later:
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch
To remove the container:
sudo rm -fr /var/lib/container/stretch
=== Cross-distro solution for development inside an ARM/ARM64 chroot on a PC ===
It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices.
1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]:
$ sudo apt-get install qemu-user-static binfmt-support
The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''':
$ sudo update-binfmts --display qemu-arm
qemu-arm (enabled):
package = qemu-user-static
type = magic
offset = 0
magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00
mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff
interpreter = /usr/bin/qemu-arm-static
detector =
2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it:
$ mkdir leste-arm64
$ cd leste-arm64
$ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf -
3. From the same directory, configure the chroot with a few resources from your host system:
$ sudo mount -t proc proc proc
$ sudo mount -o bind /dev dev
$ sudo mount -o bind /dev/pts dev/pts
4. From the same directory, create a symlink for the mount table:
$ sudo ln -s /proc/mounts etc/mtab
5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user:
$ sudo LC_ALL=C chroot . /bin/su - user
You'll now be ready to use your Maemo Leste ARM64 development environment:
$ uname -m
aarch64
Once you have finished with it, you can exit and unmount the resources you previously mounted:
$ exit
$ sudo umount dev/pts dev proc
=== TODO ===
* Discuss where people look to pick up issues (clear answer is the bugtracker, but still)
* How people can make changes and how to send them in
399bb1f69e52be8311bcc71c050755dfefc2f88f
Main Page
0
1
811
790
2020-08-13T14:04:22Z
Sicelo
5
/* Description */
wikitext
text/x-wiki
= Description =
Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more.
You can find us on '''freenode''', channel '''#maemo-leste'''.
For an overview of the current status, you might want to check out: [[Status]]
Maemo Leste is based on Devuan Beowulf (Debian Buster) and all the "supported" devices ship with recent Linux (mainline-based) kernels.
The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers.
For some devices, we have development images available, such as the N900. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software.
If you have not used Maemo before, you might want to check out some of the tips on the [[HowTo]] page.
== Frequently Asked Questions ==
See [[Leste_FAQ|FAQ]]
== Supported Devices ==
See [[:Category:Device]]
== Latest Images ==
https://phoenix.maemo.org/view/Images/
== Development ==
See [[Development]]
== Roadmap ==
=== Project milestones ===
https://github.com/maemo-leste/bugtracker/milestones
=== Wishlist ===
You have an application you want to see in Leste? Please let us know [[Wishlist|here]].
== Talks ==
See [[Talks]]
== Links ==
<div>
The central point of meeting and talking is IRC (irc.freenode.net in #maemo-leste) and this thread: https://talk.maemo.org/showthread.php?t=100192.
*Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io]
*Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues]
*Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/]
*Our Extras Github: [https://github.com/maemo-leste-extras/ https://github.com/maemo-leste-extras/]
*Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/]
*Our Jenkins build server: [https://phoenix.maemo.org/ https://phoenix.maemo.org/]
*Our IRC history: [http://maedevu.maemo.org/irc.txt http://maedevu.maemo.org/irc.txt]
*Our YouTube channel: [https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w] (via [https://www.invidio.us/channel/UCgAWiHvWSuJAg5hjk7JYn1w Invidious] )
*Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
*RSS feed: [https://maemo-leste.github.io/feeds/all.atom.xml https://maemo-leste.github.io/feeds/all.atom.xml]
*[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)]
</div>
84d790f349198d48c43c4c36c1de2b5b0af6d80e
812
811
2020-08-13T17:28:28Z
Sicelo
5
/* Links */
wikitext
text/x-wiki
= Description =
Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more.
You can find us on '''freenode''', channel '''#maemo-leste'''.
For an overview of the current status, you might want to check out: [[Status]]
Maemo Leste is based on Devuan Beowulf (Debian Buster) and all the "supported" devices ship with recent Linux (mainline-based) kernels.
The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers.
For some devices, we have development images available, such as the N900. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software.
If you have not used Maemo before, you might want to check out some of the tips on the [[HowTo]] page.
== Frequently Asked Questions ==
See [[Leste_FAQ|FAQ]]
== Supported Devices ==
See [[:Category:Device]]
== Latest Images ==
https://phoenix.maemo.org/view/Images/
== Development ==
See [[Development]]
== Roadmap ==
=== Project milestones ===
https://github.com/maemo-leste/bugtracker/milestones
=== Wishlist ===
You have an application you want to see in Leste? Please let us know [[Wishlist|here]].
== Talks ==
See [[Talks]]
== Links ==
<div>
The central point of meeting and talking is IRC (irc.freenode.net in #maemo-leste) and this thread: https://talk.maemo.org/showthread.php?t=100192.
*Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io]
*Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues]
*Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/]
*Our Extras Github: [https://github.com/maemo-leste-extras/ https://github.com/maemo-leste-extras/]
*Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] and https://phoenix.maemo.org/view/Images/
*Our Jenkins build server: [https://phoenix.maemo.org/ https://phoenix.maemo.org/]
*Our IRC history: [http://maedevu.maemo.org/irc.txt http://maedevu.maemo.org/irc.txt]
*Our YouTube channel: [https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w] (via [https://www.invidio.us/channel/UCgAWiHvWSuJAg5hjk7JYn1w Invidious] )
*Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
*RSS feed: [https://maemo-leste.github.io/feeds/all.atom.xml https://maemo-leste.github.io/feeds/all.atom.xml]
*[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)]
</div>
59d320ef513533ede7714f95c8a5f791bdf8ab1f
Development/Tasks
0
92
816
720
2020-08-16T10:44:46Z
Sicelo
5
/* Applications */
wikitext
text/x-wiki
== Applications ==
This page lists some of the more important open issues for Maemo Leste. We have a complete list here, on github, but it's a bit hard to navigate: https://github.com/maemo-leste/bugtracker/issues
{| class="wikitable"
! Task
! Description
! Task Status
! User(s) working on task
! GH Bug
! URLs
! Notes
|-
| Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || DONE || [[User:ThomasAH]], Spinal84 || https://github.com/maemo-leste/ke-recv/pull/2 ; https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || ke-recv part for slide monitoring is in place, we just need live keyboard-attached monitoring now. https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda). mer-core (sailfish/nemomobile) has keyboard monitoring integrated into mce, so we could also look at (using) that
|-
| Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. <b>Funding is available for this task</b> || WIP/TODO || || https://github.com/maemo-leste/bugtracker/issues/261 || || Some work was done in the past
|-
| Qt5 of theme and hildon widgets || Big task, port hildon widgets and theme from qt4 to qt5. <b>Funding is available for this task</b> || WIP || [[User:freemangordon]] made a start, [[User:Wizzup]] picking up some of the work || || https://github.com/maemo-leste/qtstyleplugins/ || Mainly usable already!
|-
| Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 ? || *MAYBE* Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || DONE (by staying at clutter 0.8) || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches ||
|-
| libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || TODO || || || ||
|-
| Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || wIP || Tony, Pavel and [[User:Wizzup]] are working on this || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 ||
|-
| Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || DONE || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ ||
|-
| Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || https://github.com/maemo-leste/bugtracker/issues/256 || https://github.com/maemo-leste/connui-cellular ||
|-
| Test phone calls on the N900 || Figure out cmtspeechdata magic || WIP? || [[User:Wizzup]], [[User:Sicelo]], Pavel || || ||
|-
| Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || WORKS || [[User:Wizzup]], [[User:Sicelo]] || || ||
|-
| Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || WIP || ? || || ||
|-
|"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || WIP || [[User:Parazyd]] || || ||
|-
| Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || WIP || [[User:Wizzup]], tmlind || || || Actually works quite well on the droid4. Let's do the same for Droid4. :)
|-
| osso-abook || We need osso-abook in place for all applications that need contacts (phone ui, sms ui, email ui, more) || WIP || [[User:freemangordon]] || ||https://github.com/maemo-leste/osso-abook || Making good progress
|-
| hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || DONE || [[User:minicom]], [[User:Wizzup]], [[User:Parazyd]] || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc.
|-
| Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || DONE || || || ||
|-
| Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || WIP? || [[User:freemangordon]] || || ||
|-
| Port all packages for maemo-leste to debhelper 9 or higher || Requires for us to migrate to a newer Debian (Buster) / Devuan (Beowulf) || DONE || [[User:Parazyd]], [[User:Wizzup]], [[User:meridion]], [[User:Spinal84]] || https://github.com/maemo-leste/bugtracker/issues/234 || ||
|-
|}
812bed9f6e4ddb65e64c7397978fd93cbe0a1caf
Development/Building Packages
0
80
817
721
2020-09-30T08:23:41Z
Parazyd
1
Ascii to Beowulf
wikitext
text/x-wiki
= Maintenance workflow =
Each package in Maemo Leste uses a specific git-based workflow which makes it easy to track history and maintain in an easy way.
Taking the https://github.com/maemo-leste/libcal/ package as an example - a valid repository contains at least two git branches:
# master
# maemo/beowulf
Ideally, the branches should have no difference, but sometimes this may vary.
Your git repository should contain your code, and a '''debian''' directory - which contains the debian package build logic.
The <i>compat</i> level of the package should be no less than '''9''' and preferably it should use '''debhelper'''.
Once you have your package ready and it builds locally on your Maemo Leste VM/device, there are just a couple more things to
do to make it ready for building on Jenkins:
== The git tag ==
In '''debian/changelog''' you should have your package version. It is very important to have a git tag that reflects this version
so Jenkins and jenkins-debian-glue can figure out which revision to build.
Keep in mind that the git tag should '''only''' contain the upstream version and no package revisions or epochs, for example if we have:
<code>libcal (0.3-2) unstable; urgency=medium</code>
Our git tag would be <i>0.3</i>, and '''not''' <i>0.3-2</i>
Once tagged, push the tag to git origin.
== gbp.conf ==
Your '''debian''' directory should contain a file called '''gbp.conf''' with the following contents:
<code>
[DEFAULT]
upstream-tag=%(version)s
</code>
Once all this is in place, make sure that you have a '''maemo/$codename''' branch containing all this ready and pushed.
= How you can build packages =
Building a packages is easier than one might think, it requires roughly the following steps:
#. Access to a Devuan/Debian system (you can use a [[Virtual_Machine|VM running Maemo Leste]] or a [[:Category:Device|Device running Maemo Leste]].
#. Source code of a package, obtain either via '''git''' or '''apt source <packagename>'''
#. Install build dependencies (run from source directory): '''sudo apt-get build-dep .'''
#. Build a package using '''dpkg-buildpackage -uc -b'''
You can now install the package you have just built with '''dpkg -i somename.deb'''
Also see: https://wiki.debian.org/HowToPackageForDebian
== Submitting changes ==
If you make changes to a package, please submit a pull request for the repository of that package, likely: https://github.com/maemo-leste/PACKAGENAME
For now, we will take care of updating tags and branches.
= How packages end up in the repository =
There are currently two repositories:
* The main repository: https://maedevu.maemo.org/leste
* The extras repository: https://maedevu.maemo.org/extras
The packages in the extras repository are not core, but useful applications nonetheless.
The codenames and an /etc/apt/sources.list file entry would look like the following:
<code>
deb https://maedevu.maemo.org/leste beowulf main contrib non-free
deb https://maedevu.maemo.org/extras beowulf main contrib non-free
</code>
Packages in this repository get build by Jenkins, to which a select group of people has access. (Parazyd, Wizzup)
== How packages are built using Jenkins ==
Read only access to the http frontend: https://phoenix.maemo.org/ (write-access can be granted)
All packages are hosted on https://github.com/maemo-leste and a current list of all the packages in Jenkins can be found here:
https://github.com/maemo-leste/jenkins-integration/blob/master/config.py
Every repository has a branch for each release, for example:
# maemo/beowulf - main branch for Devuan Beowulf target
# maemo/beowulf-devel - optional branch for Devuan Beowulf with unstable/testing version
See [[Development/Branches]] for more information on the usual branches flow.
= Maemo Leste Extras =
If you wish to maintain your own package in Maemo Leste, you can apply a package at https://github.com/maemo-leste-extras/bugtracker
Have a look at the README in that repository and open a ticket.
== Consideration for HAM ==
For packages built for extras to appear correctly in Hildon Application Manager, be aware that Maemo packaging system
included a few enhancements that HAM assumes. The most important one is that your application will '''only''' appear in HAM if the
<code>debian/control</code> file has a correct <code>section</code> clause as explained on the [https://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide/Packaging,_Deploying_and_Distributing#Sections|Maemo Packaging Wiki]. This wiki page also explains how to have HAM show your application's icon. Note that having an icon showing in HAM is a separate issue from having an icon show up in the application list (Hildon Home). The latter is done through
<code>.desktop</code> files, while the former is done in <code>debian/control</code>.
62aa73321a1c58db3defc5afe802039254981013
Calendar
0
109
820
2020-10-03T12:02:53Z
Wizzup
4
Created page with "= Calendar = == Qalendar == == Synchronising == == TODO == * It is not yet clear how (sync)evolution on Fremantle synchronises to "/home/user/.calendar/calendardb"..."
wikitext
text/x-wiki
= Calendar =
== Qalendar ==
== Synchronising ==
== TODO ==
* It is not yet clear how (sync)evolution on Fremantle synchronises to "/home/user/.calendar/calendardb", this needs to be figured out before this can work
* syncevolution with radicale as server works, and syncs to the evolution server, but that is not what we want.
Random resources:
* https://www.mail-archive.com/syncevolution@syncevolution.org/msg03379.html
* https://wiki.maemo.org/Calendar_database
* https://wiki.maemo.org/Sync
* http://maemo.org/packages/source/view/fremantle_extras-devel_free_source/syncevolution-frontend/0.12/
* https://talk.maemo.org/showthread.php?t=75810
*
78d6bdd319e17eb655cbb1933d210778be340b7a
821
820
2020-10-03T14:13:28Z
Wizzup
4
wikitext
text/x-wiki
= Calendar =
== Qalendar ==
== Synchronising ==
== TODO ==
* It is not yet clear how (sync)evolution on Fremantle synchronises to "/home/user/.calendar/calendardb", this needs to be figured out before this can work
* syncevolution with radicale as server works, and syncs to the evolution server, but that is not what we want.
* cal-home-widget is also ported
Random resources:
* https://www.mail-archive.com/syncevolution@syncevolution.org/msg03379.html
* https://wiki.maemo.org/Calendar_database
* https://wiki.maemo.org/Sync
* http://maemo.org/packages/source/view/fremantle_extras-devel_free_source/syncevolution-frontend/0.12/
* https://talk.maemo.org/showthread.php?t=75810
*
1e0b07e3e6e10df367045529f5a212a2f52b4b39
822
821
2020-10-03T14:13:55Z
Wizzup
4
wikitext
text/x-wiki
= Calendar =
Data is stored in /home/user/.calendar/calendardb - in SQLite3 format.
== Qalendar ==
== Synchronising ==
== TODO ==
* It is not yet clear how (sync)evolution on Fremantle synchronises to "/home/user/.calendar/calendardb", this needs to be figured out before this can work
* syncevolution with radicale as server works, and syncs to the evolution server, but that is not what we want.
* cal-home-widget is also ported
Random resources:
* https://www.mail-archive.com/syncevolution@syncevolution.org/msg03379.html
* https://wiki.maemo.org/Calendar_database
* https://wiki.maemo.org/Sync
* http://maemo.org/packages/source/view/fremantle_extras-devel_free_source/syncevolution-frontend/0.12/
* https://talk.maemo.org/showthread.php?t=75810
*
84df930c59278f6a4043ede727d0b3ad56abd945
823
822
2020-10-03T15:31:04Z
Wizzup
4
wikitext
text/x-wiki
= Calendar =
Data is stored in /home/user/.calendar/calendardb - in SQLite3 format.
== Qalendar ==
== Synchronising ==
Looks like syncevolution has a maemo backend (syncmaemocal.so), but using the backend currently throws an error:
<pre>
user@devuan:~$ syncevolution --print-databases backend=maemo-events
maemo-events:
Maemo Calendar: not enabled during compilation or not usable in the current environment
</pre>
Working on fixing that now.
== TODO ==
* It is not yet clear how (sync)evolution on Fremantle synchronises to "/home/user/.calendar/calendardb", this needs to be figured out before this can work
* syncevolution with radicale as server works, and syncs to the evolution server, but that is not what we want.
* cal-home-widget is also ported
Random resources:
* https://www.mail-archive.com/syncevolution@syncevolution.org/msg03379.html
* https://wiki.maemo.org/Calendar_database
* https://wiki.maemo.org/Sync
* http://maemo.org/packages/source/view/fremantle_extras-devel_free_source/syncevolution-frontend/0.12/
* https://talk.maemo.org/showthread.php?t=75810
*
6971fc8e03c1851a29a9bf8c8f5def198e94f3d0
824
823
2020-10-04T20:26:16Z
Wizzup
4
wikitext
text/x-wiki
= Calendar =
Data is stored in /home/user/.calendar/calendardb - in SQLite3 format.
== Qalendar ==
== Synchronising ==
With fixed calendar-backend (https://github.com/maemo-leste/calendar-backend/commit/c6e9ef0db493118d44a2958f71180ac70609b071) and syncevolution built with maemo backend, it is possible to sync radicale to the device. (Instructions to follow)
== TODO ==
* cal-home-widget is also ported
Random resources:
* https://www.mail-archive.com/syncevolution@syncevolution.org/msg03379.html
* https://wiki.maemo.org/Calendar_database
* https://wiki.maemo.org/Sync
* http://maemo.org/packages/source/view/fremantle_extras-devel_free_source/syncevolution-frontend/0.12/
* https://talk.maemo.org/showthread.php?t=75810
*
329ebfc1f8d02ae6e142b0dd01803a6ce142df58
825
824
2020-10-05T17:24:52Z
Wizzup
4
wikitext
text/x-wiki
= Calendar =
Data is stored in /home/user/.calendar/calendardb - in SQLite3 format.
== Qalendar ==
== Synchronising ==
(On maemo/beowulf-devel with a radicale server set up)
Install:
<pre>
apt install qalendar syncevolution
</pre>
Example URL is <pre>http://localhost:5223</pre> (using ssh tunneling).
<pre>
syncevolution --configure \
--template webdav \
username=USER \
password=PASS \
syncURL=http://localhost:5223/ \
target-config@radicale
syncevolution --configure \
database=http://localhost:5223/USER/UUID/ \
backend=caldavtodo \
target-config@radicale radicaletodo
syncevolution --configure \
database=http://localhost:5223/USER/UUID/ \
backend=caldavjournal \
target-config@radicale radicalejournal
syncevolution --configure \
database=http://localhost:5223/USER/UUID/ \
backend=caldav \
target-config@radicale radicalecal
syncevolution --configure \
--template SyncEvolution_Client \
sync=none \
syncURL=local://@radicale \
username= \
password= \
radicale
syncevolution --configure \
sync=two-way \
backend=maemo-tasks \
database= \
radicale radicaletodo
syncevolution --configure \
sync=two-way \
backend=maemo-notes\
database= \
radicale radicalejournal
syncevolution --configure \
sync=two-way \
backend=maemo-events \
database= \
radicale radicalecal
syncevolution --sync refresh-from-client radicale radicalejournal
syncevolution --sync refresh-from-client radicale radicaletodo
syncevolution --sync refresh-from-client radicale radicalecal
</pre>
And the next time you want to synchronise, just call:
<pre>
syncevolution --sync two-way radicale radicalecal
</pre>
== TODO ==
* cal-home-widget is also ported
Random resources:
* https://www.mail-archive.com/syncevolution@syncevolution.org/msg03379.html
* https://wiki.maemo.org/Calendar_database
* https://wiki.maemo.org/Sync
* http://maemo.org/packages/source/view/fremantle_extras-devel_free_source/syncevolution-frontend/0.12/
* https://talk.maemo.org/showthread.php?t=75810
b31463b1ec3867b8c57e9a80ca0c15dddc9bcb05
826
825
2020-10-05T17:26:03Z
Wizzup
4
wikitext
text/x-wiki
= Calendar =
Data is stored in /home/user/.calendar/calendardb - in SQLite3 format.
== Qalendar ==
Qalendar is Qt5 implementation of the Maemo Calendar, source is here: https://github.com/maemo-leste/qalendar
It should mostly function as the Maemo calendar, see the feature comparison here: https://wiki.maemo.org/Qalendar
== Synchronising ==
(On maemo/beowulf-devel with a radicale server set up)
Install:
<pre>
apt install qalendar syncevolution
</pre>
Example URL is <pre>http://localhost:5223</pre> (using ssh tunneling).
<pre>
syncevolution --configure \
--template webdav \
username=USER \
password=PASS \
syncURL=http://localhost:5223/ \
target-config@radicale
syncevolution --configure \
database=http://localhost:5223/USER/UUID/ \
backend=caldavtodo \
target-config@radicale radicaletodo
syncevolution --configure \
database=http://localhost:5223/USER/UUID/ \
backend=caldavjournal \
target-config@radicale radicalejournal
syncevolution --configure \
database=http://localhost:5223/USER/UUID/ \
backend=caldav \
target-config@radicale radicalecal
syncevolution --configure \
--template SyncEvolution_Client \
sync=none \
syncURL=local://@radicale \
username= \
password= \
radicale
syncevolution --configure \
sync=two-way \
backend=maemo-tasks \
database= \
radicale radicaletodo
syncevolution --configure \
sync=two-way \
backend=maemo-notes\
database= \
radicale radicalejournal
syncevolution --configure \
sync=two-way \
backend=maemo-events \
database= \
radicale radicalecal
syncevolution --sync refresh-from-client radicale radicalejournal
syncevolution --sync refresh-from-client radicale radicaletodo
syncevolution --sync refresh-from-client radicale radicalecal
</pre>
And the next time you want to synchronise, just call:
<pre>
syncevolution --sync two-way radicale radicalecal
</pre>
== TODO ==
* cal-home-widget is also ported
Random resources:
* https://www.mail-archive.com/syncevolution@syncevolution.org/msg03379.html
* https://wiki.maemo.org/Calendar_database
* https://wiki.maemo.org/Sync
* http://maemo.org/packages/source/view/fremantle_extras-devel_free_source/syncevolution-frontend/0.12/
* https://talk.maemo.org/showthread.php?t=75810
79d2b1b9b6d356aec153591888bb65fae6f1d5c3
827
826
2020-10-05T17:30:30Z
Wizzup
4
clarify ssh tunnel section
wikitext
text/x-wiki
= Calendar =
Data is stored in /home/user/.calendar/calendardb - in SQLite3 format.
== Qalendar ==
Qalendar is Qt5 implementation of the Maemo Calendar, source is here: https://github.com/maemo-leste/qalendar
It should mostly function as the Maemo calendar, see the feature comparison here: https://wiki.maemo.org/Qalendar
== Synchronising ==
(On maemo/beowulf-devel with a radicale server set up)
Install:
<pre>
apt install qalendar syncevolution
</pre>
Example URL is <pre>http://localhost:5223</pre> - using ssh tunneling to forward the remote radicale port to a local port. This is no by means required for operation - just pick any host that works for you.
For reference, this can be used to set up the ssh port forward if you're keen on using it (but again, just pick whatever host you want to use):
<pre>
ssh myhost -L 5223:localhost:5223
</pre>
OK, so let's configure syncevolution and do the initial sync:
<pre>
syncevolution --configure \
--template webdav \
username=USER \
password=PASS \
syncURL=http://localhost:5223/ \
target-config@radicale
syncevolution --configure \
database=http://localhost:5223/USER/UUID/ \
backend=caldavtodo \
target-config@radicale radicaletodo
syncevolution --configure \
database=http://localhost:5223/USER/UUID/ \
backend=caldavjournal \
target-config@radicale radicalejournal
syncevolution --configure \
database=http://localhost:5223/USER/UUID/ \
backend=caldav \
target-config@radicale radicalecal
syncevolution --configure \
--template SyncEvolution_Client \
sync=none \
syncURL=local://@radicale \
username= \
password= \
radicale
syncevolution --configure \
sync=two-way \
backend=maemo-tasks \
database= \
radicale radicaletodo
syncevolution --configure \
sync=two-way \
backend=maemo-notes\
database= \
radicale radicalejournal
syncevolution --configure \
sync=two-way \
backend=maemo-events \
database= \
radicale radicalecal
syncevolution --sync refresh-from-client radicale radicalejournal
syncevolution --sync refresh-from-client radicale radicaletodo
syncevolution --sync refresh-from-client radicale radicalecal
</pre>
And the next time you want to synchronise, just call:
<pre>
syncevolution --sync two-way radicale radicalecal
</pre>
== TODO ==
* cal-home-widget is also ported
Random resources:
* https://www.mail-archive.com/syncevolution@syncevolution.org/msg03379.html
* https://wiki.maemo.org/Calendar_database
* https://wiki.maemo.org/Sync
* http://maemo.org/packages/source/view/fremantle_extras-devel_free_source/syncevolution-frontend/0.12/
* https://talk.maemo.org/showthread.php?t=75810
947f942de4c44689213e9a12433216dee049a055
828
827
2020-10-05T17:42:54Z
Sicelo
5
/* TODO */
wikitext
text/x-wiki
= Calendar =
Data is stored in /home/user/.calendar/calendardb - in SQLite3 format.
== Qalendar ==
Qalendar is Qt5 implementation of the Maemo Calendar, source is here: https://github.com/maemo-leste/qalendar
It should mostly function as the Maemo calendar, see the feature comparison here: https://wiki.maemo.org/Qalendar
== Synchronising ==
(On maemo/beowulf-devel with a radicale server set up)
Install:
<pre>
apt install qalendar syncevolution
</pre>
Example URL is <pre>http://localhost:5223</pre> - using ssh tunneling to forward the remote radicale port to a local port. This is no by means required for operation - just pick any host that works for you.
For reference, this can be used to set up the ssh port forward if you're keen on using it (but again, just pick whatever host you want to use):
<pre>
ssh myhost -L 5223:localhost:5223
</pre>
OK, so let's configure syncevolution and do the initial sync:
<pre>
syncevolution --configure \
--template webdav \
username=USER \
password=PASS \
syncURL=http://localhost:5223/ \
target-config@radicale
syncevolution --configure \
database=http://localhost:5223/USER/UUID/ \
backend=caldavtodo \
target-config@radicale radicaletodo
syncevolution --configure \
database=http://localhost:5223/USER/UUID/ \
backend=caldavjournal \
target-config@radicale radicalejournal
syncevolution --configure \
database=http://localhost:5223/USER/UUID/ \
backend=caldav \
target-config@radicale radicalecal
syncevolution --configure \
--template SyncEvolution_Client \
sync=none \
syncURL=local://@radicale \
username= \
password= \
radicale
syncevolution --configure \
sync=two-way \
backend=maemo-tasks \
database= \
radicale radicaletodo
syncevolution --configure \
sync=two-way \
backend=maemo-notes\
database= \
radicale radicalejournal
syncevolution --configure \
sync=two-way \
backend=maemo-events \
database= \
radicale radicalecal
syncevolution --sync refresh-from-client radicale radicalejournal
syncevolution --sync refresh-from-client radicale radicaletodo
syncevolution --sync refresh-from-client radicale radicalecal
</pre>
And the next time you want to synchronise, just call:
<pre>
syncevolution --sync two-way radicale radicalecal
</pre>
* cal-home-widget has also been ported
== TODO ==
* port Syncevolution GUI
Random resources:
* https://www.mail-archive.com/syncevolution@syncevolution.org/msg03379.html
* https://wiki.maemo.org/Calendar_database
* https://wiki.maemo.org/Sync
* http://maemo.org/packages/source/view/fremantle_extras-devel_free_source/syncevolution-frontend/0.12/
* https://talk.maemo.org/showthread.php?t=75810
9d47a2ffa42a1f786dd2588997ed32f15b79cce2
829
828
2020-10-05T17:44:26Z
Sicelo
5
wikitext
text/x-wiki
= Calendar =
Data is stored in /home/user/.calendar/calendardb - in SQLite3 format.
== Qalendar ==
Qalendar is Qt5 implementation of the Maemo Calendar, source is here: https://github.com/maemo-leste/qalendar
It should mostly function as the Maemo calendar, see the feature comparison here: https://wiki.maemo.org/Qalendar
* cal-home-widget has also been ported
== Synchronising ==
(On maemo/beowulf-devel with a radicale server set up)
Install:
<pre>
apt install qalendar syncevolution
</pre>
Example URL is <pre>http://localhost:5223</pre> - using ssh tunneling to forward the remote radicale port to a local port. This is no by means required for operation - just pick any host that works for you.
For reference, this can be used to set up the ssh port forward if you're keen on using it (but again, just pick whatever host you want to use):
<pre>
ssh myhost -L 5223:localhost:5223
</pre>
OK, so let's configure syncevolution and do the initial sync:
<pre>
syncevolution --configure \
--template webdav \
username=USER \
password=PASS \
syncURL=http://localhost:5223/ \
target-config@radicale
syncevolution --configure \
database=http://localhost:5223/USER/UUID/ \
backend=caldavtodo \
target-config@radicale radicaletodo
syncevolution --configure \
database=http://localhost:5223/USER/UUID/ \
backend=caldavjournal \
target-config@radicale radicalejournal
syncevolution --configure \
database=http://localhost:5223/USER/UUID/ \
backend=caldav \
target-config@radicale radicalecal
syncevolution --configure \
--template SyncEvolution_Client \
sync=none \
syncURL=local://@radicale \
username= \
password= \
radicale
syncevolution --configure \
sync=two-way \
backend=maemo-tasks \
database= \
radicale radicaletodo
syncevolution --configure \
sync=two-way \
backend=maemo-notes\
database= \
radicale radicalejournal
syncevolution --configure \
sync=two-way \
backend=maemo-events \
database= \
radicale radicalecal
syncevolution --sync refresh-from-client radicale radicalejournal
syncevolution --sync refresh-from-client radicale radicaletodo
syncevolution --sync refresh-from-client radicale radicalecal
</pre>
And the next time you want to synchronise, just call:
<pre>
syncevolution --sync two-way radicale radicalecal
</pre>
== TODO ==
* port Syncevolution GUI
Random resources:
* https://www.mail-archive.com/syncevolution@syncevolution.org/msg03379.html
* https://wiki.maemo.org/Calendar_database
* https://wiki.maemo.org/Sync
* http://maemo.org/packages/source/view/fremantle_extras-devel_free_source/syncevolution-frontend/0.12/
* https://talk.maemo.org/showthread.php?t=75810
becc411cff67ddb1222bcd198875a9e3edcc4c7a
830
829
2020-10-05T19:36:32Z
Wizzup
4
/* Synchronising */
wikitext
text/x-wiki
= Calendar =
Data is stored in /home/user/.calendar/calendardb - in SQLite3 format.
== Qalendar ==
Qalendar is Qt5 implementation of the Maemo Calendar, source is here: https://github.com/maemo-leste/qalendar
It should mostly function as the Maemo calendar, see the feature comparison here: https://wiki.maemo.org/Qalendar
* cal-home-widget has also been ported
== Synchronising ==
(On maemo/beowulf-devel with a radicale server set up)
Install:
<pre>
apt install qalendar syncevolution
</pre>
Example URL is <pre>http://localhost:5223</pre> - using ssh tunneling to forward the remote radicale port to a local port. This is no by means required for operation - just pick any host that works for you.
For reference, this can be used to set up the ssh port forward if you're keen on using it (but again, just pick whatever host you want to use):
<pre>
ssh myhost -L 5223:localhost:5223
</pre>
OK, so let's configure syncevolution and do the initial sync:
<pre>
syncevolution --configure \
--template webdav \
username=USER \
password=PASS \
syncURL=http://localhost:5223/ \
target-config@radicale
syncevolution --configure \
database=http://localhost:5223/USER/UUID/ \
backend=caldavtodo \
target-config@radicale radicaletodo
syncevolution --configure \
database=http://localhost:5223/USER/UUID/ \
backend=caldavjournal \
target-config@radicale radicalejournal
syncevolution --configure \
database=http://localhost:5223/USER/UUID/ \
backend=caldav \
target-config@radicale radicalecal
syncevolution --configure \
--template SyncEvolution_Client \
sync=none \
syncURL=local://@radicale \
username= \
password= \
radicale
syncevolution --configure \
sync=two-way \
backend=maemo-tasks \
database= \
radicale radicaletodo
syncevolution --configure \
sync=two-way \
backend=maemo-notes\
database= \
radicale radicalejournal
syncevolution --configure \
sync=two-way \
backend=maemo-events \
database= \
radicale radicalecal
syncevolution --sync refresh-from-client radicale radicalejournal
syncevolution --sync refresh-from-client radicale radicaletodo
syncevolution --sync refresh-from-client radicale radicalecal
</pre>
And the next time you want to synchronise, just call:
<pre>
syncevolution --sync two-way radicale radicalejournal
syncevolution --sync two-way radicale radicaletodo
syncevolution --sync two-way radicale radicalecal
</pre>
== TODO ==
* port Syncevolution GUI
Random resources:
* https://www.mail-archive.com/syncevolution@syncevolution.org/msg03379.html
* https://wiki.maemo.org/Calendar_database
* https://wiki.maemo.org/Sync
* http://maemo.org/packages/source/view/fremantle_extras-devel_free_source/syncevolution-frontend/0.12/
* https://talk.maemo.org/showthread.php?t=75810
a6273c1ad7ef4f69fa9bb6b20cc7e0a8602c373d
832
830
2020-10-08T14:41:58Z
Wizzup
4
wikitext
text/x-wiki
= Calendar =
Data is stored in /home/user/.calendar/calendardb - in SQLite3 format.
== Qalendar ==
Qalendar is Qt5 implementation of the Maemo Calendar, source is here: https://github.com/maemo-leste/qalendar
It should mostly function as the Maemo calendar, see the feature comparison here: https://wiki.maemo.org/Qalendar
* cal-home-widget has also been ported
== Improvements over Fremantle Qalendar ==
* Supports landscape at dynamic resolutions (vs only 800x480)
Planned:
* Portrait support
== Synchronising ==
(On maemo/beowulf-devel with a radicale server set up)
Install:
<pre>
apt install qalendar syncevolution
</pre>
Example URL is <pre>http://localhost:5223</pre> - using ssh tunneling to forward the remote radicale port to a local port. This is no by means required for operation - just pick any host that works for you.
For reference, this can be used to set up the ssh port forward if you're keen on using it (but again, just pick whatever host you want to use):
<pre>
ssh myhost -L 5223:localhost:5223
</pre>
OK, so let's configure syncevolution and do the initial sync:
<pre>
syncevolution --configure \
--template webdav \
username=USER \
password=PASS \
syncURL=http://localhost:5223/ \
target-config@radicale
syncevolution --configure \
database=http://localhost:5223/USER/UUID/ \
backend=caldavtodo \
target-config@radicale radicaletodo
syncevolution --configure \
database=http://localhost:5223/USER/UUID/ \
backend=caldavjournal \
target-config@radicale radicalejournal
syncevolution --configure \
database=http://localhost:5223/USER/UUID/ \
backend=caldav \
target-config@radicale radicalecal
syncevolution --configure \
--template SyncEvolution_Client \
sync=none \
syncURL=local://@radicale \
username= \
password= \
radicale
syncevolution --configure \
sync=two-way \
backend=maemo-tasks \
database= \
radicale radicaletodo
syncevolution --configure \
sync=two-way \
backend=maemo-notes\
database= \
radicale radicalejournal
syncevolution --configure \
sync=two-way \
backend=maemo-events \
database= \
radicale radicalecal
syncevolution --sync refresh-from-client radicale radicalejournal
syncevolution --sync refresh-from-client radicale radicaletodo
syncevolution --sync refresh-from-client radicale radicalecal
</pre>
And the next time you want to synchronise, just call:
<pre>
syncevolution --sync two-way radicale radicalejournal
syncevolution --sync two-way radicale radicaletodo
syncevolution --sync two-way radicale radicalecal
</pre>
== TODO ==
* port Syncevolution GUI
Random resources:
* https://www.mail-archive.com/syncevolution@syncevolution.org/msg03379.html
* https://wiki.maemo.org/Calendar_database
* https://wiki.maemo.org/Sync
* http://maemo.org/packages/source/view/fremantle_extras-devel_free_source/syncevolution-frontend/0.12/
* https://talk.maemo.org/showthread.php?t=75810
ae6e44448c9fa83418e6a57ec3d24cf0b9feb2ae
833
832
2020-10-08T14:42:14Z
Wizzup
4
Remove -devel reference
wikitext
text/x-wiki
= Calendar =
Data is stored in /home/user/.calendar/calendardb - in SQLite3 format.
== Qalendar ==
Qalendar is Qt5 implementation of the Maemo Calendar, source is here: https://github.com/maemo-leste/qalendar
It should mostly function as the Maemo calendar, see the feature comparison here: https://wiki.maemo.org/Qalendar
* cal-home-widget has also been ported
== Improvements over Fremantle Qalendar ==
* Supports landscape at dynamic resolutions (vs only 800x480)
Planned:
* Portrait support
== Synchronising ==
Install:
<pre>
apt install qalendar syncevolution
</pre>
Example URL is <pre>http://localhost:5223</pre> - using ssh tunneling to forward the remote radicale port to a local port. This is no by means required for operation - just pick any host that works for you.
For reference, this can be used to set up the ssh port forward if you're keen on using it (but again, just pick whatever host you want to use):
<pre>
ssh myhost -L 5223:localhost:5223
</pre>
OK, so let's configure syncevolution and do the initial sync:
<pre>
syncevolution --configure \
--template webdav \
username=USER \
password=PASS \
syncURL=http://localhost:5223/ \
target-config@radicale
syncevolution --configure \
database=http://localhost:5223/USER/UUID/ \
backend=caldavtodo \
target-config@radicale radicaletodo
syncevolution --configure \
database=http://localhost:5223/USER/UUID/ \
backend=caldavjournal \
target-config@radicale radicalejournal
syncevolution --configure \
database=http://localhost:5223/USER/UUID/ \
backend=caldav \
target-config@radicale radicalecal
syncevolution --configure \
--template SyncEvolution_Client \
sync=none \
syncURL=local://@radicale \
username= \
password= \
radicale
syncevolution --configure \
sync=two-way \
backend=maemo-tasks \
database= \
radicale radicaletodo
syncevolution --configure \
sync=two-way \
backend=maemo-notes\
database= \
radicale radicalejournal
syncevolution --configure \
sync=two-way \
backend=maemo-events \
database= \
radicale radicalecal
syncevolution --sync refresh-from-client radicale radicalejournal
syncevolution --sync refresh-from-client radicale radicaletodo
syncevolution --sync refresh-from-client radicale radicalecal
</pre>
And the next time you want to synchronise, just call:
<pre>
syncevolution --sync two-way radicale radicalejournal
syncevolution --sync two-way radicale radicaletodo
syncevolution --sync two-way radicale radicalecal
</pre>
== TODO ==
* port Syncevolution GUI
Random resources:
* https://www.mail-archive.com/syncevolution@syncevolution.org/msg03379.html
* https://wiki.maemo.org/Calendar_database
* https://wiki.maemo.org/Sync
* http://maemo.org/packages/source/view/fremantle_extras-devel_free_source/syncevolution-frontend/0.12/
* https://talk.maemo.org/showthread.php?t=75810
67e3edd7f173fb2caf62a4d037be144d2d52a9ce
834
833
2020-10-08T14:42:22Z
Wizzup
4
/* Synchronising */
wikitext
text/x-wiki
= Calendar =
Data is stored in /home/user/.calendar/calendardb - in SQLite3 format.
== Qalendar ==
Qalendar is Qt5 implementation of the Maemo Calendar, source is here: https://github.com/maemo-leste/qalendar
It should mostly function as the Maemo calendar, see the feature comparison here: https://wiki.maemo.org/Qalendar
* cal-home-widget has also been ported
== Improvements over Fremantle Qalendar ==
* Supports landscape at dynamic resolutions (vs only 800x480)
Planned:
* Portrait support
== Synchronising ==
Install:
<pre>
apt install syncevolution
</pre>
Example URL is <pre>http://localhost:5223</pre> - using ssh tunneling to forward the remote radicale port to a local port. This is no by means required for operation - just pick any host that works for you.
For reference, this can be used to set up the ssh port forward if you're keen on using it (but again, just pick whatever host you want to use):
<pre>
ssh myhost -L 5223:localhost:5223
</pre>
OK, so let's configure syncevolution and do the initial sync:
<pre>
syncevolution --configure \
--template webdav \
username=USER \
password=PASS \
syncURL=http://localhost:5223/ \
target-config@radicale
syncevolution --configure \
database=http://localhost:5223/USER/UUID/ \
backend=caldavtodo \
target-config@radicale radicaletodo
syncevolution --configure \
database=http://localhost:5223/USER/UUID/ \
backend=caldavjournal \
target-config@radicale radicalejournal
syncevolution --configure \
database=http://localhost:5223/USER/UUID/ \
backend=caldav \
target-config@radicale radicalecal
syncevolution --configure \
--template SyncEvolution_Client \
sync=none \
syncURL=local://@radicale \
username= \
password= \
radicale
syncevolution --configure \
sync=two-way \
backend=maemo-tasks \
database= \
radicale radicaletodo
syncevolution --configure \
sync=two-way \
backend=maemo-notes\
database= \
radicale radicalejournal
syncevolution --configure \
sync=two-way \
backend=maemo-events \
database= \
radicale radicalecal
syncevolution --sync refresh-from-client radicale radicalejournal
syncevolution --sync refresh-from-client radicale radicaletodo
syncevolution --sync refresh-from-client radicale radicalecal
</pre>
And the next time you want to synchronise, just call:
<pre>
syncevolution --sync two-way radicale radicalejournal
syncevolution --sync two-way radicale radicaletodo
syncevolution --sync two-way radicale radicalecal
</pre>
== TODO ==
* port Syncevolution GUI
Random resources:
* https://www.mail-archive.com/syncevolution@syncevolution.org/msg03379.html
* https://wiki.maemo.org/Calendar_database
* https://wiki.maemo.org/Sync
* http://maemo.org/packages/source/view/fremantle_extras-devel_free_source/syncevolution-frontend/0.12/
* https://talk.maemo.org/showthread.php?t=75810
42f92595f7ff31d2a5302a397fc022393c0931de
835
834
2020-10-08T14:42:58Z
Wizzup
4
fix formatting
wikitext
text/x-wiki
= Calendar =
Data is stored in /home/user/.calendar/calendardb - in SQLite3 format.
== Qalendar ==
Qalendar is Qt5 implementation of the Maemo Calendar, source is here: https://github.com/maemo-leste/qalendar
It should mostly function as the Maemo calendar, see the feature comparison here: https://wiki.maemo.org/Qalendar
* cal-home-widget has also been ported
== Improvements over Fremantle Qalendar ==
* Supports landscape at dynamic resolutions (vs only 800x480)
Planned:
* Portrait support
== Synchronising ==
Install:
<pre>
apt install syncevolution
</pre>
Example URL is <b>http://localhost:5223</b> - using ssh tunneling to forward the remote radicale port to a local port. This is no by means required for operation - just pick any host that works for you.
For reference, this can be used to set up the ssh port forward if you're keen on using it (but again, just pick whatever host you want to use):
<pre>
ssh myhost -L 5223:localhost:5223
</pre>
OK, so let's configure syncevolution and do the initial sync:
<pre>
syncevolution --configure \
--template webdav \
username=USER \
password=PASS \
syncURL=http://localhost:5223/ \
target-config@radicale
syncevolution --configure \
database=http://localhost:5223/USER/UUID/ \
backend=caldavtodo \
target-config@radicale radicaletodo
syncevolution --configure \
database=http://localhost:5223/USER/UUID/ \
backend=caldavjournal \
target-config@radicale radicalejournal
syncevolution --configure \
database=http://localhost:5223/USER/UUID/ \
backend=caldav \
target-config@radicale radicalecal
syncevolution --configure \
--template SyncEvolution_Client \
sync=none \
syncURL=local://@radicale \
username= \
password= \
radicale
syncevolution --configure \
sync=two-way \
backend=maemo-tasks \
database= \
radicale radicaletodo
syncevolution --configure \
sync=two-way \
backend=maemo-notes\
database= \
radicale radicalejournal
syncevolution --configure \
sync=two-way \
backend=maemo-events \
database= \
radicale radicalecal
syncevolution --sync refresh-from-client radicale radicalejournal
syncevolution --sync refresh-from-client radicale radicaletodo
syncevolution --sync refresh-from-client radicale radicalecal
</pre>
And the next time you want to synchronise, just call:
<pre>
syncevolution --sync two-way radicale radicalejournal
syncevolution --sync two-way radicale radicaletodo
syncevolution --sync two-way radicale radicalecal
</pre>
== TODO ==
* port Syncevolution GUI
Random resources:
* https://www.mail-archive.com/syncevolution@syncevolution.org/msg03379.html
* https://wiki.maemo.org/Calendar_database
* https://wiki.maemo.org/Sync
* http://maemo.org/packages/source/view/fremantle_extras-devel_free_source/syncevolution-frontend/0.12/
* https://talk.maemo.org/showthread.php?t=75810
5f349fcae9f06c6fe0bbe057dc4e394f1d6cf70c
File:Bionic.jpg
6
110
838
2020-10-22T17:24:29Z
Uvos
39
Motorola Droid Bionic running leste
wikitext
text/x-wiki
Motorola Droid Bionic running leste
98eaa671f102871100b7f5028348118e11c037c6
Motorola Droid Bionic
0
111
839
2020-10-22T17:43:25Z
Uvos
39
Created page with "{{Infobox Device |image=[[File:Bionic.jpg|250px]] |manufacturer=Motorola |codename=Targa |dimensions=127x67.3x12.7mm |release_date=2012-02-10 |soc=TI OMAP4430 |dram=1024MB DDR..."
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Bionic.jpg|250px]]
|manufacturer=Motorola
|codename=Targa
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, Kionix KXTf9 accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.8.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || N/A ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Untested
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || No ||
|-
| Accelerometer || No || Needs kernel work
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)
|-
| Proximity sensor || Yes || needs mce work
|-
| Ambient Light Sensor || WIP || Needs mce work
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No ||
|}
== Installation ==
Hardware requirements:
* Droid Bionic with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux system
* Android Tools: fastboot adb
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
# Latest maemo-leste-1.0-armhf-bionic-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# droid4-kexecboot.img
Download or clone https://github.com/IMbackK/bionic-clown-boot
Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
* Poweroff device, grab the SD card
* Backup any important files
* Grab latest image from https://maedevu.maemo.org/images/droid4/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 and Bionic both expose a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Bionic, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
== Stuff to try ==
==== Make Audio Automaticaly set up (Temporary Solution) ====
Adding this in /etc/rc.local above the ''exit 0'' to make audio work from boot.
amixer cset numid=22 HiFi #set left speaker to HiFi
amixer cset numid=21 HiFi #set right speaker to HiFi
amixer cset numid=26 HiFi #set left headset to HiFi
amixer cset numid=25 HiFi #set right headset to HiFi
amixer cset numid=1 50% #set HiFi volumes to 50%
==== Wifi ====
The WL1271 Wifi chip in the Bionic has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
[[Category:Device]]
7a61782a7ee205c2bab30082d3d4614812f99296
840
839
2020-10-22T17:46:46Z
Uvos
39
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Bionic.jpg|250px]]
|manufacturer=Motorola
|codename=Targa
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, Kionix KXTf9 accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.8.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || N/A ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Untested
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || No ||
|-
| Accelerometer || No || Needs kernel work
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)
|-
| Proximity sensor || Yes || needs mce work
|-
| Ambient Light Sensor || WIP || Needs mce work
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No ||
|}
== Installation ==
Hardware requirements:
* Droid Bionic with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux system
* Android Tools: fastboot adb
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
# Latest maemo-leste-1.0-armhf-bionic-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# droid4-kexecboot.img
Download or clone https://github.com/IMbackK/bionic-clown-boot
Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normaly you can just apt update && apt dist-upgrade to update to the latest version. I for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab latest image from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 and Bionic both expose a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Bionic, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
== Stuff to try ==
==== Make Audio Automaticaly set up (Temporary Solution) ====
Adding this in /etc/rc.local above the ''exit 0'' to make audio work from boot.
amixer cset numid=22 HiFi #set left speaker to HiFi
amixer cset numid=21 HiFi #set right speaker to HiFi
amixer cset numid=26 HiFi #set left headset to HiFi
amixer cset numid=25 HiFi #set right headset to HiFi
amixer cset numid=1 50% #set HiFi volumes to 50%
==== Wifi ====
The WL1271 Wifi chip in the Bionic has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
[[Category:Device]]
4d8df326853d46500bc89d47cf40e9ec185d665a
843
840
2020-10-22T18:15:47Z
Uvos
39
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Bionic.jpg|250px]]
|manufacturer=Motorola
|codename=Targa
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, Kionix KXTf9 accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.8.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || N/A ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Untested
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || No ||
|-
| Accelerometer || No || Needs kernel work
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)
|-
| Proximity sensor || Yes || needs mce work
|-
| Ambient Light Sensor || WIP || Needs mce work
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No ||
-
| Idle power consumption || ~350mW ||
|}
== Installation ==
Hardware requirements:
* Droid Bionic with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux system
* Android Tools: fastboot adb
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
# Latest maemo-leste-1.0-armhf-bionic-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# droid4-kexecboot.img
Download or clone https://github.com/IMbackK/bionic-clown-boot
Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normaly you can just apt update && apt dist-upgrade to update to the latest version. I for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab latest image from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 and Bionic both expose a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Bionic, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
== Stuff to try ==
==== Make Audio Automaticaly set up (Temporary Solution) ====
Adding this in /etc/rc.local above the ''exit 0'' to make audio work from boot.
amixer cset numid=22 HiFi #set left speaker to HiFi
amixer cset numid=21 HiFi #set right speaker to HiFi
amixer cset numid=26 HiFi #set left headset to HiFi
amixer cset numid=25 HiFi #set right headset to HiFi
amixer cset numid=1 50% #set HiFi volumes to 50%
==== Wifi ====
The WL1271 Wifi chip in the Bionic has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
[[Category:Device]]
fd38226c263540d887fbcc650154f716b3404c9e
844
843
2020-10-22T18:16:15Z
Uvos
39
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Bionic.jpg|250px]]
|manufacturer=Motorola
|codename=Targa
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, Kionix KXTf9 accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.8.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || N/A ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Untested
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || No ||
|-
| Accelerometer || No || Needs kernel work
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)
|-
| Proximity sensor || Yes || needs mce work
|-
| Ambient Light Sensor || WIP || Needs mce work
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No ||
|-
| Idle power consumption || ~350mW ||
|}
== Installation ==
Hardware requirements:
* Droid Bionic with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux system
* Android Tools: fastboot adb
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
# Latest maemo-leste-1.0-armhf-bionic-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# droid4-kexecboot.img
Download or clone https://github.com/IMbackK/bionic-clown-boot
Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normaly you can just apt update && apt dist-upgrade to update to the latest version. I for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab latest image from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 and Bionic both expose a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Bionic, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
== Stuff to try ==
==== Make Audio Automaticaly set up (Temporary Solution) ====
Adding this in /etc/rc.local above the ''exit 0'' to make audio work from boot.
amixer cset numid=22 HiFi #set left speaker to HiFi
amixer cset numid=21 HiFi #set right speaker to HiFi
amixer cset numid=26 HiFi #set left headset to HiFi
amixer cset numid=25 HiFi #set right headset to HiFi
amixer cset numid=1 50% #set HiFi volumes to 50%
==== Wifi ====
The WL1271 Wifi chip in the Bionic has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
[[Category:Device]]
047d79bc65f484373b94890a104c37d5db1214c5
Terminal
0
112
845
2020-10-25T13:46:44Z
Parazyd
1
Inital page with instructions on editing the soft key bar.
wikitext
text/x-wiki
The default terminal emulator provided in Maemo Leste is '''osso-xterm'''.
== Modifying soft keys ==
Through gconf, it is possible to modify the soft keys that show up on the bottom bar of osso-xterm.
For example, to have a series like "Tab, Escape, Arrow Down, Arrow Up" we would issue two gconftool commands, one which would modify the labels, and the other which would actually map it to the keys.
<code>
$ gconftool-2 --set -t list --list-type string /apps/osso/xterm/key_labels "[Tab,Escape,Dn,Up]"
$ gconftool-2 --set -t list --list-type string /apps/osso/xterm/keys "[Tab,Escape,Down,Up]"
</code>
'''Further reading:'''
talk.maemo.org thread: https://talk.maemo.org/archive/index.php/t-34926.html
Archived version: https://web.archive.org/web/20201025134527/https://talk.maemo.org/archive/index.php/t-34926.html
18fe28ec50b6a3e6d62b7fcd2b847d8cb41e5763
Status
0
64
846
831
2020-10-25T13:49:37Z
Parazyd
1
Link to Terminal page.
wikitext
text/x-wiki
{{Stub}}
For Device specific status pages, see See [[:Category:Device]]
The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device
{| class="wikitable"
! Feature
! Status
! Leste software
! Notes
|-
| Desktop environment || OK || hildon || hildon home, hildon desktop, .
|-
| [[Terminal]] || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] ||
|-
| [[Status/VirtualKeyboard|Virtual keyboard]] || OK || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work fine for all devices
|-
| [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Works out of the box. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7
|-
| Bluetooth || No(t yet) || ? ||
|-
| [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily. Some also use netsurf-gtk.
|-
| [[Status/Audio|Audio]] || WIP || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio ; will need to import alsa-policy-enforcement, port OHM
|-
| Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] ||
|-
| [[Status/USB Peripheral|USB Peripheral]] || OK || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv
|-
| LED control || OK || mce || Works on the N900 - make sure the notifications are enabled in settings.
|-
| [[Status/Mobile Data|Mobile Data]] || WIP || [https://github.com/maemo-leste/connui-cellular connui-cellular] [https://github.com/maemo-leste/libicd-network-ofono libicd-network-ofono] || There is basic libicd-network-ofono, connui-cellular is being ported to ofono
|-
| [[Status/GPS|GPS]] || No(t yet) || gpsd or liblocation/location-daemon || Fremantle location services are closed
|-
| [[Status/SMS|SMS]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue]
|-
| [[Status/Phone Calls|Phone Calls]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue]
|-
| [[Status/Application Manager|Application Manager]] || OK || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || Mostly works, but needs serious testing [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue]
|-
| [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue]
|-
| [[Status/PDF Viewer|PDF Viewer]] || Mostly works || osso-pdf-viewer || [https://github.com/maemo-leste/osso-pdf-viewer osso-pdf-viewer]
|-
| [[Status/Games|Games & Entertainment]] || OK || Works (available in [[Leste Extras]] || [https://github.com/maemo-leste/bugtracker/issues/18 sdl fullscreen] [https://github.com/maemo-leste/bugtracker/issues/238 game importing]
|-
| [[Status/Theming|Theming]] || OK || Works with themes (available in [[Leste Extras]] ||
|-
| [[Calendar|Calendar]] || OK || Qalendar UI, syncing works. (UI needs some scrolling work) ||
|}
7231658298f77a6b52cf8ae1467dcf2db93e6076
883
846
2020-12-23T11:54:04Z
Uvos
39
wikitext
text/x-wiki
{{Stub}}
For Device specific status pages, see See [[:Category:Device]]
The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device
{| class="wikitable"
! Feature
! Status
! Leste software
! Notes
|-
| Desktop environment || OK || hildon || hildon home, hildon desktop, .
|-
| [[Terminal]] || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] ||
|-
| [[Status/VirtualKeyboard|Virtual keyboard]] || WIP || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work fine for all devices, GTK2 only.
|-
| [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Works out of the box. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7
|-
| Bluetooth || No(t yet) || ? ||
|-
| [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily. Some also use netsurf-gtk or firefox
|-
| [[Status/Audio|Audio]] || WIP || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio ; will need to import alsa-policy-enforcement, port OHM
|-
| Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] ||
|-
| [[Status/USB Peripheral|USB Peripheral]] || OK || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv
|-
| LED control || OK || mce || Make sure the notifications are enabled in settings.
|-
| [[Status/Mobile Data|Mobile Data]] || WIP || [https://github.com/maemo-leste/connui-cellular connui-cellular] [https://github.com/maemo-leste/libicd-network-ofono libicd-network-ofono] || There is basic libicd-network-ofono, connui-cellular is being ported to ofono
|-
| [[Status/GPS|GPS]] || WIP || gpsd or liblocation/location-daemon || Fremantle location services are closed
|-
| [[Status/SMS|SMS]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue]
|-
| [[Status/Phone Calls|Phone Calls]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue]
|-
| [[Status/Application Manager|Application Manager]] || OK || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || Mostly works, but needs serious testing [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue]
|-
| [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue]
|-
| [[Status/PDF Viewer|PDF Viewer]] || Mostly works || osso-pdf-viewer || [https://github.com/maemo-leste/osso-pdf-viewer osso-pdf-viewer]
|-
| [[Status/Games|Games & Entertainment]] || OK || Works (available in [[Leste Extras]] || [https://github.com/maemo-leste/bugtracker/issues/18 sdl fullscreen] [https://github.com/maemo-leste/bugtracker/issues/238 game importing]
|-
| [[Status/Theming|Theming]] || OK || Works with themes (available in [[Leste Extras]] ||
|-
| [[Calendar|Calendar]] || OK || Qalendar UI, syncing works. (UI needs some scrolling work) ||
|}
a78f6765be2b9f8cd34bda0fca7a6b8dbe4ec2e4
889
883
2020-12-27T20:11:51Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
For Device specific status pages, see See [[:Category:Device]]
The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device
{| class="wikitable"
! Feature
! Status
! Leste software
! Notes
|-
| Desktop environment || OK || hildon || hildon home, hildon desktop, .
|-
| [[Terminal]] || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] ||
|-
| [[Status/VirtualKeyboard|Virtual keyboard]] || WIP || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work fine for all devices, GTK2 only.
|-
| [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Works out of the box. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7
|-
| Bluetooth || No(t yet) || ? ||
|-
| [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily. Some also use netsurf-gtk or firefox
|-
| [[Status/Audio|Audio]] || WIP || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio ; will need to import alsa-policy-enforcement, port OHM
|-
| Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] ||
|-
| [[Status/USB Peripheral|USB Peripheral]] || OK || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv
|-
| LED control || OK || mce || Make sure the notifications are enabled in settings.
|-
| [[Status/Mobile Data|Mobile Data]] || WIP || [https://github.com/maemo-leste/connui-cellular connui-cellular] [https://github.com/maemo-leste/libicd-network-ofono libicd-network-ofono] || There is basic libicd-network-ofono, connui-cellular is being ported to ofono
|-
| [[Status/GPS|GPS]] || WIP || gpsd or liblocation/location-daemon || Fremantle location services are closed
|-
| [[Status/SMS|SMS]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue]
|-
| [[Status/Phone Calls|Phone Calls]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue]
|-
| [[Status/Application Manager|Application Manager]] || OK || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || Mostly works, but needs serious testing [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue]
|-
| [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue]
|-
| [[Status/PDF Viewer|PDF Viewer]] || Mostly works || osso-pdf-viewer || [https://github.com/maemo-leste/osso-pdf-viewer osso-pdf-viewer]
|-
| [[Status/Games|Games & Entertainment]] || OK || Works (available in [[Leste Extras]] || [https://github.com/maemo-leste/bugtracker/issues/18 sdl fullscreen] [https://github.com/maemo-leste/bugtracker/issues/238 game importing]
|-
| [[Status/Theming|Theming]] || OK || Works with themes (available in [[Leste Extras]] ||
|-
| [[Calendar|Calendar]] || OK || Qalendar UI, syncing works. (UI needs some scrolling work) ||
|-
| [[Qt|Qt]] || OK || Qt5 port mostly works ||
|}
7dbae448ae080bca9528d7fd7bedd8b24648a384
892
889
2020-12-27T20:14:39Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
For Device specific status pages, see See [[:Category:Device]]
The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device
{| class="wikitable"
! Feature
! Status
! Leste software
! Notes
|-
| Desktop environment || OK || hildon || hildon home, hildon desktop, .
|-
| [[Terminal]] || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] ||
|-
| [[Status/VirtualKeyboard|Virtual keyboard]] || WIP || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work fine for all devices, GTK2 only.
|-
| [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Works out of the box. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7
|-
| Bluetooth || No(t yet) || ? ||
|-
| [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily. Some also use netsurf-gtk or firefox
|-
| [[Status/Audio|Audio]] || WIP || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio ; will need to import alsa-policy-enforcement, port OHM
|-
| Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] ||
|-
| [[Status/USB Peripheral|USB Peripheral]] || OK || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv
|-
| LED control || OK || mce || Make sure the notifications are enabled in settings.
|-
| [[Status/Mobile Data|Mobile Data]] || WIP || [https://github.com/maemo-leste/connui-cellular connui-cellular] [https://github.com/maemo-leste/libicd-network-ofono libicd-network-ofono] || There is basic libicd-network-ofono, connui-cellular is being ported to ofono
|-
| [[Status/GPS|GPS]] || WIP || gpsd or liblocation/location-daemon || Fremantle location services are closed
|-
| [[Status/SMS|SMS]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue]
|-
| [[Status/Phone Calls|Phone Calls]] || WIP || ofono, telepathy-ring ? || Test UI: [https://github.com/maemo-leste/unicsy_demo unicsy_demo] [https://github.com/maemo-leste/bugtracker/issues/77 n900 issue]
|-
| [[Status/Application Manager|Application Manager]] || OK || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || Mostly works, but needs serious testing [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue]
|-
| [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue]
|-
| [[Status/PDF Viewer|PDF Viewer]] || Mostly works || osso-pdf-viewer || [https://github.com/maemo-leste/osso-pdf-viewer osso-pdf-viewer]
|-
| [[Status/Games|Games & Entertainment]] || OK || Works (available in [[Leste Extras]] || [https://github.com/maemo-leste/bugtracker/issues/18 sdl fullscreen] [https://github.com/maemo-leste/bugtracker/issues/238 game importing]
|-
| [[Status/Theming|Theming]] || OK || Works with themes (available in [[Leste Extras]] ||
|-
| [[Calendar|Calendar]] || OK || Qalendar UI, syncing works. (UI needs some scrolling work) ||
|-
| [[Qt|Qt]] || OK || Qt5 port mostly works || https://github.com/maemo-leste/qtstyleplugins/ + https://github.com/maemo-leste/qt-platform-maemo
|}
cc3138784f007b75dc2f39288f0cfe221cdf13ec
Motorola Droid Bionic
0
111
847
844
2020-11-01T21:41:34Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Bionic.jpg|250px]]
|manufacturer=Motorola
|codename=Targa
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, Kionix KXTf9 accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.8.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || N/A ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Untested
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || No ||
|-
| Accelerometer || No || Needs kernel work
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)
|-
| Proximity sensor || Yes || needs mce work
|-
| Ambient Light Sensor || WIP || Needs mce work
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No ||
|-
| Idle power consumption || ~350mW ||
|}
== Installation ==
Hardware requirements:
* Droid Bionic with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux system
* Android Tools: fastboot adb
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
# Latest maemo-leste-1.0-armhf-bionic-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# droid4-kexecboot.img
Download or clone https://github.com/IMbackK/bionic-clown-boot
Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normaly you can just apt update && apt dist-upgrade to update to the latest version. I for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab latest image from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 and Bionic both expose a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Bionic, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
== Unlocking the modem for usage in Europe ==
Tony suggested these values, Wizzup confirmed it to work on his Bionic in Europe/Amsterdam.
<pre>
apt install build-essential
git clone https://github.com/tmlind/tcmdrw
cd tcmdrw
make
./tcmdrw 1877=8703E80400000200
./tcmdrw 6850=05
</pre>
== Stuff to try ==
==== Make Audio Automaticaly set up (Temporary Solution) ====
Adding this in /etc/rc.local above the ''exit 0'' to make audio work from boot.
amixer cset numid=22 HiFi #set left speaker to HiFi
amixer cset numid=21 HiFi #set right speaker to HiFi
amixer cset numid=26 HiFi #set left headset to HiFi
amixer cset numid=25 HiFi #set right headset to HiFi
amixer cset numid=1 50% #set HiFi volumes to 50%
==== Wifi ====
The WL1271 Wifi chip in the Bionic has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
[[Category:Device]]
6a3fe0e37eccc8ab0c7e81551219c6e85523cd15
848
847
2020-11-01T21:47:42Z
Wizzup
4
/* Unlocking the modem for usage in Europe */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Bionic.jpg|250px]]
|manufacturer=Motorola
|codename=Targa
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, Kionix KXTf9 accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.8.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || N/A ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Untested
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || No ||
|-
| Accelerometer || No || Needs kernel work
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)
|-
| Proximity sensor || Yes || needs mce work
|-
| Ambient Light Sensor || WIP || Needs mce work
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No ||
|-
| Idle power consumption || ~350mW ||
|}
== Installation ==
Hardware requirements:
* Droid Bionic with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux system
* Android Tools: fastboot adb
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
# Latest maemo-leste-1.0-armhf-bionic-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# droid4-kexecboot.img
Download or clone https://github.com/IMbackK/bionic-clown-boot
Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normaly you can just apt update && apt dist-upgrade to update to the latest version. I for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab latest image from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 and Bionic both expose a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Bionic, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
== Unlocking the modem for usage in Europe ==
Tony suggested these values, Wizzup confirmed it to work on his Bionic in Europe/Amsterdam.
<pre>
apt install build-essential
git clone https://github.com/tmlind/tcmdrw
cd tcmdrw
make
./tcmdrw 1877=8703E80400000200
./tcmdrw 6850=05
</pre>
Tony also writes:
<pre>
22:34 < tmlind> hmm so i had to do this for 3g gain: tcmdrw 1143=aaff0000, got that value from xt910 firmware i think, otherwise 3g signal was weak
22:43 < tmlind> Wizzup: great, the 1143 setting is for 1900 frequency only to get decent signal on t-mo in the us
</pre>
== Stuff to try ==
==== Make Audio Automaticaly set up (Temporary Solution) ====
Adding this in /etc/rc.local above the ''exit 0'' to make audio work from boot.
amixer cset numid=22 HiFi #set left speaker to HiFi
amixer cset numid=21 HiFi #set right speaker to HiFi
amixer cset numid=26 HiFi #set left headset to HiFi
amixer cset numid=25 HiFi #set right headset to HiFi
amixer cset numid=1 50% #set HiFi volumes to 50%
==== Wifi ====
The WL1271 Wifi chip in the Bionic has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
[[Category:Device]]
efc7966e2ede501a68a868e75d3e339a390c655c
873
848
2020-12-18T11:03:24Z
Uvos
39
/* Status */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Bionic.jpg|250px]]
|manufacturer=Motorola
|codename=Targa
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, Kionix KXTf9 accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || N/A ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Untested
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || No ||
|-
| Accelerometer || No || Needs kernel work
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)
|-
| Proximity sensor || Yes || needs mce work
|-
| Ambient Light Sensor || WIP || Needs mce work
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No ||
|-
| Idle power consumption || ~70mW ||
|}
== Installation ==
Hardware requirements:
* Droid Bionic with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux system
* Android Tools: fastboot adb
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
# Latest maemo-leste-1.0-armhf-bionic-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# droid4-kexecboot.img
Download or clone https://github.com/IMbackK/bionic-clown-boot
Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normaly you can just apt update && apt dist-upgrade to update to the latest version. I for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab latest image from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 and Bionic both expose a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Bionic, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
== Unlocking the modem for usage in Europe ==
Tony suggested these values, Wizzup confirmed it to work on his Bionic in Europe/Amsterdam.
<pre>
apt install build-essential
git clone https://github.com/tmlind/tcmdrw
cd tcmdrw
make
./tcmdrw 1877=8703E80400000200
./tcmdrw 6850=05
</pre>
Tony also writes:
<pre>
22:34 < tmlind> hmm so i had to do this for 3g gain: tcmdrw 1143=aaff0000, got that value from xt910 firmware i think, otherwise 3g signal was weak
22:43 < tmlind> Wizzup: great, the 1143 setting is for 1900 frequency only to get decent signal on t-mo in the us
</pre>
== Stuff to try ==
==== Make Audio Automaticaly set up (Temporary Solution) ====
Adding this in /etc/rc.local above the ''exit 0'' to make audio work from boot.
amixer cset numid=22 HiFi #set left speaker to HiFi
amixer cset numid=21 HiFi #set right speaker to HiFi
amixer cset numid=26 HiFi #set left headset to HiFi
amixer cset numid=25 HiFi #set right headset to HiFi
amixer cset numid=1 50% #set HiFi volumes to 50%
==== Wifi ====
The WL1271 Wifi chip in the Bionic has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
[[Category:Device]]
6d05917f5eb6eae7e7497ca6817e597ba344f2c6
874
873
2020-12-18T11:03:52Z
Uvos
39
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Bionic.jpg|250px]]
|manufacturer=Motorola
|codename=Targa
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4.3"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, Kionix KXTf9 accelerometer, St L3GD20H Gyro, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || N/A ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Untested
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || No ||
|-
| Accelerometer || No || Needs kernel work
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)
|-
| Proximity sensor || Yes || needs mce work
|-
| Ambient Light Sensor || WIP || Needs mce work
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No ||
|-
| Idle power consumption || ~70mW ||
|}
== Installation ==
Hardware requirements:
* Droid Bionic with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux system
* Android Tools: fastboot adb
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
# Latest maemo-leste-1.0-armhf-bionic-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# droid4-kexecboot.img
Download or clone https://github.com/IMbackK/bionic-clown-boot
Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normaly you can just apt update && apt dist-upgrade to update to the latest version. I for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab latest image from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 and Bionic both expose a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Bionic, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
== Unlocking the modem for usage in Europe ==
Tony suggested these values, Wizzup confirmed it to work on his Bionic in Europe/Amsterdam.
<pre>
apt install build-essential
git clone https://github.com/tmlind/tcmdrw
cd tcmdrw
make
./tcmdrw 1877=8703E80400000200
./tcmdrw 6850=05
</pre>
Tony also writes:
<pre>
22:34 < tmlind> hmm so i had to do this for 3g gain: tcmdrw 1143=aaff0000, got that value from xt910 firmware i think, otherwise 3g signal was weak
22:43 < tmlind> Wizzup: great, the 1143 setting is for 1900 frequency only to get decent signal on t-mo in the us
</pre>
== Stuff to try ==
==== Make Audio Automaticaly set up (Temporary Solution) ====
Adding this in /etc/rc.local above the ''exit 0'' to make audio work from boot.
amixer cset numid=22 HiFi #set left speaker to HiFi
amixer cset numid=21 HiFi #set right speaker to HiFi
amixer cset numid=26 HiFi #set left headset to HiFi
amixer cset numid=25 HiFi #set right headset to HiFi
amixer cset numid=1 50% #set HiFi volumes to 50%
==== Wifi ====
The WL1271 Wifi chip in the Bionic has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
[[Category:Device]]
1c8722d7eac9ae052bc0db3300f1f3ab98b601aa
875
874
2020-12-18T11:04:50Z
Uvos
39
/* Status */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Bionic.jpg|250px]]
|manufacturer=Motorola
|codename=Targa
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4.3"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, Kionix KXTf9 accelerometer, St L3GD20H Gyro, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || N/A ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Untested
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration)
|-
| Gyro || No || needs kernel work
-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No ||
|-
| Idle power consumption || ~70mW ||
|}
== Installation ==
Hardware requirements:
* Droid Bionic with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux system
* Android Tools: fastboot adb
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
# Latest maemo-leste-1.0-armhf-bionic-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# droid4-kexecboot.img
Download or clone https://github.com/IMbackK/bionic-clown-boot
Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normaly you can just apt update && apt dist-upgrade to update to the latest version. I for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab latest image from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 and Bionic both expose a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Bionic, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
== Unlocking the modem for usage in Europe ==
Tony suggested these values, Wizzup confirmed it to work on his Bionic in Europe/Amsterdam.
<pre>
apt install build-essential
git clone https://github.com/tmlind/tcmdrw
cd tcmdrw
make
./tcmdrw 1877=8703E80400000200
./tcmdrw 6850=05
</pre>
Tony also writes:
<pre>
22:34 < tmlind> hmm so i had to do this for 3g gain: tcmdrw 1143=aaff0000, got that value from xt910 firmware i think, otherwise 3g signal was weak
22:43 < tmlind> Wizzup: great, the 1143 setting is for 1900 frequency only to get decent signal on t-mo in the us
</pre>
== Stuff to try ==
==== Make Audio Automaticaly set up (Temporary Solution) ====
Adding this in /etc/rc.local above the ''exit 0'' to make audio work from boot.
amixer cset numid=22 HiFi #set left speaker to HiFi
amixer cset numid=21 HiFi #set right speaker to HiFi
amixer cset numid=26 HiFi #set left headset to HiFi
amixer cset numid=25 HiFi #set right headset to HiFi
amixer cset numid=1 50% #set HiFi volumes to 50%
==== Wifi ====
The WL1271 Wifi chip in the Bionic has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
[[Category:Device]]
7f1bdbf0daa8f56af2136f3d838e4842fdcc496e
876
875
2020-12-18T11:05:08Z
Uvos
39
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Bionic.jpg|250px]]
|manufacturer=Motorola
|codename=Targa
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4.3"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, Kionix KXTf9 accelerometer, St L3GD20H Gyro, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || N/A ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Untested
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration)
|-
| Gyro || No || needs kernel work
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No ||
|-
| Idle power consumption || ~70mW ||
|}
== Installation ==
Hardware requirements:
* Droid Bionic with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux system
* Android Tools: fastboot adb
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
# Latest maemo-leste-1.0-armhf-bionic-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# droid4-kexecboot.img
Download or clone https://github.com/IMbackK/bionic-clown-boot
Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normaly you can just apt update && apt dist-upgrade to update to the latest version. I for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab latest image from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 and Bionic both expose a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Bionic, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
== Unlocking the modem for usage in Europe ==
Tony suggested these values, Wizzup confirmed it to work on his Bionic in Europe/Amsterdam.
<pre>
apt install build-essential
git clone https://github.com/tmlind/tcmdrw
cd tcmdrw
make
./tcmdrw 1877=8703E80400000200
./tcmdrw 6850=05
</pre>
Tony also writes:
<pre>
22:34 < tmlind> hmm so i had to do this for 3g gain: tcmdrw 1143=aaff0000, got that value from xt910 firmware i think, otherwise 3g signal was weak
22:43 < tmlind> Wizzup: great, the 1143 setting is for 1900 frequency only to get decent signal on t-mo in the us
</pre>
== Stuff to try ==
==== Make Audio Automaticaly set up (Temporary Solution) ====
Adding this in /etc/rc.local above the ''exit 0'' to make audio work from boot.
amixer cset numid=22 HiFi #set left speaker to HiFi
amixer cset numid=21 HiFi #set right speaker to HiFi
amixer cset numid=26 HiFi #set left headset to HiFi
amixer cset numid=25 HiFi #set right headset to HiFi
amixer cset numid=1 50% #set HiFi volumes to 50%
==== Wifi ====
The WL1271 Wifi chip in the Bionic has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
[[Category:Device]]
02a2a38cdcc7af27dbc8857bd777670f4a3e9b1b
878
876
2020-12-18T11:07:48Z
Uvos
39
/* Status */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Bionic.jpg|250px]]
|manufacturer=Motorola
|codename=Targa
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4.3"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, Kionix KXTf9 accelerometer, St L3GD20H Gyro, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || N/A ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Untested
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration)
|-
| Gyro || No || needs kernel work
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No ||
|-
| Idle power consumption || ~70mW || Needs sim inserted
|}
== Installation ==
Hardware requirements:
* Droid Bionic with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux system
* Android Tools: fastboot adb
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
# Latest maemo-leste-1.0-armhf-bionic-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# droid4-kexecboot.img
Download or clone https://github.com/IMbackK/bionic-clown-boot
Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normaly you can just apt update && apt dist-upgrade to update to the latest version. I for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab latest image from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 and Bionic both expose a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Bionic, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
== Unlocking the modem for usage in Europe ==
Tony suggested these values, Wizzup confirmed it to work on his Bionic in Europe/Amsterdam.
<pre>
apt install build-essential
git clone https://github.com/tmlind/tcmdrw
cd tcmdrw
make
./tcmdrw 1877=8703E80400000200
./tcmdrw 6850=05
</pre>
Tony also writes:
<pre>
22:34 < tmlind> hmm so i had to do this for 3g gain: tcmdrw 1143=aaff0000, got that value from xt910 firmware i think, otherwise 3g signal was weak
22:43 < tmlind> Wizzup: great, the 1143 setting is for 1900 frequency only to get decent signal on t-mo in the us
</pre>
== Stuff to try ==
==== Make Audio Automaticaly set up (Temporary Solution) ====
Adding this in /etc/rc.local above the ''exit 0'' to make audio work from boot.
amixer cset numid=22 HiFi #set left speaker to HiFi
amixer cset numid=21 HiFi #set right speaker to HiFi
amixer cset numid=26 HiFi #set left headset to HiFi
amixer cset numid=25 HiFi #set right headset to HiFi
amixer cset numid=1 50% #set HiFi volumes to 50%
==== Wifi ====
The WL1271 Wifi chip in the Bionic has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
[[Category:Device]]
e066667f9293d1bec8c4334866015cdf36a2a2de
894
878
2020-12-29T22:35:59Z
Uvos
39
/* Installation */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Bionic.jpg|250px]]
|manufacturer=Motorola
|codename=Targa
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4.3"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, Kionix KXTf9 accelerometer, St L3GD20H Gyro, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || N/A ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Untested
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration)
|-
| Gyro || No || needs kernel work
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No ||
|-
| Idle power consumption || ~70mW || Needs sim inserted
|}
== Installation ==
Hardware requirements:
* Droid Bionic with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux system
* Android Tools: fastboot adb
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
# Latest maemo-leste-1.0-armhf-bionic-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# droid4-kexecboot.img
Download or clone https://github.com/IMbackK/bionic-clown-boot
Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
Wait for sync to complete and insert MicroSD card into The Bionic. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normaly you can just apt update && apt dist-upgrade to update to the latest version. I for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab latest image from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 and Bionic both expose a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Bionic, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
== Unlocking the modem for usage in Europe ==
Tony suggested these values, Wizzup confirmed it to work on his Bionic in Europe/Amsterdam.
<pre>
apt install build-essential
git clone https://github.com/tmlind/tcmdrw
cd tcmdrw
make
./tcmdrw 1877=8703E80400000200
./tcmdrw 6850=05
</pre>
Tony also writes:
<pre>
22:34 < tmlind> hmm so i had to do this for 3g gain: tcmdrw 1143=aaff0000, got that value from xt910 firmware i think, otherwise 3g signal was weak
22:43 < tmlind> Wizzup: great, the 1143 setting is for 1900 frequency only to get decent signal on t-mo in the us
</pre>
== Stuff to try ==
==== Make Audio Automaticaly set up (Temporary Solution) ====
Adding this in /etc/rc.local above the ''exit 0'' to make audio work from boot.
amixer cset numid=22 HiFi #set left speaker to HiFi
amixer cset numid=21 HiFi #set right speaker to HiFi
amixer cset numid=26 HiFi #set left headset to HiFi
amixer cset numid=25 HiFi #set right headset to HiFi
amixer cset numid=1 50% #set HiFi volumes to 50%
==== Wifi ====
The WL1271 Wifi chip in the Bionic has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
[[Category:Device]]
a012fab020917193f0f5f52e409e467c8a050184
Development/Building Packages
0
80
849
817
2020-11-02T10:40:04Z
Parazyd
1
/* Maemo Leste Extras */ Note dh_maemo_icon
wikitext
text/x-wiki
= Maintenance workflow =
Each package in Maemo Leste uses a specific git-based workflow which makes it easy to track history and maintain in an easy way.
Taking the https://github.com/maemo-leste/libcal/ package as an example - a valid repository contains at least two git branches:
# master
# maemo/beowulf
Ideally, the branches should have no difference, but sometimes this may vary.
Your git repository should contain your code, and a '''debian''' directory - which contains the debian package build logic.
The <i>compat</i> level of the package should be no less than '''9''' and preferably it should use '''debhelper'''.
Once you have your package ready and it builds locally on your Maemo Leste VM/device, there are just a couple more things to
do to make it ready for building on Jenkins:
== The git tag ==
In '''debian/changelog''' you should have your package version. It is very important to have a git tag that reflects this version
so Jenkins and jenkins-debian-glue can figure out which revision to build.
Keep in mind that the git tag should '''only''' contain the upstream version and no package revisions or epochs, for example if we have:
<code>libcal (0.3-2) unstable; urgency=medium</code>
Our git tag would be <i>0.3</i>, and '''not''' <i>0.3-2</i>
Once tagged, push the tag to git origin.
== gbp.conf ==
Your '''debian''' directory should contain a file called '''gbp.conf''' with the following contents:
<code>
[DEFAULT]
upstream-tag=%(version)s
</code>
Once all this is in place, make sure that you have a '''maemo/$codename''' branch containing all this ready and pushed.
= How you can build packages =
Building a packages is easier than one might think, it requires roughly the following steps:
#. Access to a Devuan/Debian system (you can use a [[Virtual_Machine|VM running Maemo Leste]] or a [[:Category:Device|Device running Maemo Leste]].
#. Source code of a package, obtain either via '''git''' or '''apt source <packagename>'''
#. Install build dependencies (run from source directory): '''sudo apt-get build-dep .'''
#. Build a package using '''dpkg-buildpackage -uc -b'''
You can now install the package you have just built with '''dpkg -i somename.deb'''
Also see: https://wiki.debian.org/HowToPackageForDebian
== Submitting changes ==
If you make changes to a package, please submit a pull request for the repository of that package, likely: https://github.com/maemo-leste/PACKAGENAME
For now, we will take care of updating tags and branches.
= How packages end up in the repository =
There are currently two repositories:
* The main repository: https://maedevu.maemo.org/leste
* The extras repository: https://maedevu.maemo.org/extras
The packages in the extras repository are not core, but useful applications nonetheless.
The codenames and an /etc/apt/sources.list file entry would look like the following:
<code>
deb https://maedevu.maemo.org/leste beowulf main contrib non-free
deb https://maedevu.maemo.org/extras beowulf main contrib non-free
</code>
Packages in this repository get build by Jenkins, to which a select group of people has access. (Parazyd, Wizzup)
== How packages are built using Jenkins ==
Read only access to the http frontend: https://phoenix.maemo.org/ (write-access can be granted)
All packages are hosted on https://github.com/maemo-leste and a current list of all the packages in Jenkins can be found here:
https://github.com/maemo-leste/jenkins-integration/blob/master/config.py
Every repository has a branch for each release, for example:
# maemo/beowulf - main branch for Devuan Beowulf target
# maemo/beowulf-devel - optional branch for Devuan Beowulf with unstable/testing version
See [[Development/Branches]] for more information on the usual branches flow.
= Maemo Leste Extras =
If you wish to maintain your own package in Maemo Leste, you can apply a package at https://github.com/maemo-leste-extras/bugtracker
Have a look at the README in that repository and open a ticket.
== Consideration for HAM ==
For packages built for extras to appear correctly in Hildon Application Manager, be aware that Maemo packaging system
included a few enhancements that HAM assumes. The most important one is that your application will '''only''' appear in HAM if the
<code>debian/control</code> file has a correct <code>section</code> clause as explained on the [https://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide/Packaging,_Deploying_and_Distributing#Sections|Maemo Packaging Wiki]. This wiki page also explains how to have HAM show your application's icon. Note that having an icon showing in HAM is a separate issue from having an icon show up in the application list (Hildon Home). The latter is done through
<code>.desktop</code> files, while the former is done in <code>debian/control</code>.
== Adding an icon to the package in HAM ==
In case you want to add an icon that is shown in HAM when listing the packages, we provide a debhelper plugin that can
handle this with a simple PNG file. In your package's debian directory, add your PNG icon as '''maemo-icon.png'''.
Next, have your Build-Depends contain '''maemo-system-services'''. maemo-system-services will pull in the debhelper plugin.
Following this, in your '''debian/control''', under your '''Package''', add the following entry:
<pre>
XB-Maemo-Icon-26: ${maemo:icon26}
</pre>
And finally, in '''debian/rules''', assuming you're using debhelper, add this:
<pre>
override_dh_gencontrol:
dh_maemo_icon
dh_gencontrol
</pre>
27508f2d37adf04623d553036c20135a45428a03
850
849
2020-11-02T11:54:07Z
Parazyd
1
/* Maemo Leste Extras */
wikitext
text/x-wiki
= Maintenance workflow =
Each package in Maemo Leste uses a specific git-based workflow which makes it easy to track history and maintain in an easy way.
Taking the https://github.com/maemo-leste/libcal/ package as an example - a valid repository contains at least two git branches:
# master
# maemo/beowulf
Ideally, the branches should have no difference, but sometimes this may vary.
Your git repository should contain your code, and a '''debian''' directory - which contains the debian package build logic.
The <i>compat</i> level of the package should be no less than '''9''' and preferably it should use '''debhelper'''.
Once you have your package ready and it builds locally on your Maemo Leste VM/device, there are just a couple more things to
do to make it ready for building on Jenkins:
== The git tag ==
In '''debian/changelog''' you should have your package version. It is very important to have a git tag that reflects this version
so Jenkins and jenkins-debian-glue can figure out which revision to build.
Keep in mind that the git tag should '''only''' contain the upstream version and no package revisions or epochs, for example if we have:
<code>libcal (0.3-2) unstable; urgency=medium</code>
Our git tag would be <i>0.3</i>, and '''not''' <i>0.3-2</i>
Once tagged, push the tag to git origin.
== gbp.conf ==
Your '''debian''' directory should contain a file called '''gbp.conf''' with the following contents:
<code>
[DEFAULT]
upstream-tag=%(version)s
</code>
Once all this is in place, make sure that you have a '''maemo/$codename''' branch containing all this ready and pushed.
= How you can build packages =
Building a packages is easier than one might think, it requires roughly the following steps:
#. Access to a Devuan/Debian system (you can use a [[Virtual_Machine|VM running Maemo Leste]] or a [[:Category:Device|Device running Maemo Leste]].
#. Source code of a package, obtain either via '''git''' or '''apt source <packagename>'''
#. Install build dependencies (run from source directory): '''sudo apt-get build-dep .'''
#. Build a package using '''dpkg-buildpackage -uc -b'''
You can now install the package you have just built with '''dpkg -i somename.deb'''
Also see: https://wiki.debian.org/HowToPackageForDebian
== Submitting changes ==
If you make changes to a package, please submit a pull request for the repository of that package, likely: https://github.com/maemo-leste/PACKAGENAME
For now, we will take care of updating tags and branches.
= How packages end up in the repository =
There are currently two repositories:
* The main repository: https://maedevu.maemo.org/leste
* The extras repository: https://maedevu.maemo.org/extras
The packages in the extras repository are not core, but useful applications nonetheless.
The codenames and an /etc/apt/sources.list file entry would look like the following:
<code>
deb https://maedevu.maemo.org/leste beowulf main contrib non-free
deb https://maedevu.maemo.org/extras beowulf main contrib non-free
</code>
Packages in this repository get build by Jenkins, to which a select group of people has access. (Parazyd, Wizzup)
== How packages are built using Jenkins ==
Read only access to the http frontend: https://phoenix.maemo.org/ (write-access can be granted)
All packages are hosted on https://github.com/maemo-leste and a current list of all the packages in Jenkins can be found here:
https://github.com/maemo-leste/jenkins-integration/blob/master/config.py
Every repository has a branch for each release, for example:
# maemo/beowulf - main branch for Devuan Beowulf target
# maemo/beowulf-devel - optional branch for Devuan Beowulf with unstable/testing version
See [[Development/Branches]] for more information on the usual branches flow.
= Maemo Leste Extras =
If you wish to maintain your own package in Maemo Leste, you can apply a package at https://github.com/maemo-leste-extras/bugtracker
Have a look at the README in that repository and open a ticket.
== Consideration for HAM ==
For packages built for extras to appear correctly in Hildon Application Manager, be aware that Maemo packaging system
included a few enhancements that HAM assumes. The most important one is that your application will '''only''' appear in HAM if the
<code>debian/control</code> file has a correct <code>section</code> clause as explained on the [https://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide/Packaging,_Deploying_and_Distributing#Sections|Maemo Packaging Wiki]. This wiki page also explains how to have HAM show your application's icon. Note that having an icon showing in HAM is a separate issue from having an icon show up in the application list (Hildon Home). The latter is done through
<code>.desktop</code> files, while the former is done in <code>debian/control</code>.
== Adding an icon to the package in HAM ==
In case you want to add an icon that is shown in HAM when listing the packages, we provide a debhelper plugin that can
handle this with a simple PNG file. In your package's debian directory, add your PNG icon as '''maemo-icon.png'''.
Next, have your Build-Depends contain '''maemo-system-services'''. maemo-system-services will pull in the debhelper plugin.
Following this, in your '''debian/control''', under your '''Package''', add the following entry:
<pre>
XB-Maemo-Icon-26: ${maemo:icon26}
</pre>
And finally, in '''debian/rules''', assuming you're using debhelper, add this:
<pre>
override_dh_gencontrol:
dh_maemo_icon
dh_gencontrol
</pre>
Finally, if using quilt, add the icon in '''debian/source/include-binaries'''
<pre>$ echo debian/maemo-icon.png >> debian/source/include-binaries</pre>
Further reading: https://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide/Packaging,_Deploying_and_Distributing#Sections
12e0d13b5ac6760cc7d07753bb4b0c3e8eb0c85b
851
850
2020-11-02T11:55:41Z
Parazyd
1
/* Adding an icon to the package in HAM */
wikitext
text/x-wiki
= Maintenance workflow =
Each package in Maemo Leste uses a specific git-based workflow which makes it easy to track history and maintain in an easy way.
Taking the https://github.com/maemo-leste/libcal/ package as an example - a valid repository contains at least two git branches:
# master
# maemo/beowulf
Ideally, the branches should have no difference, but sometimes this may vary.
Your git repository should contain your code, and a '''debian''' directory - which contains the debian package build logic.
The <i>compat</i> level of the package should be no less than '''9''' and preferably it should use '''debhelper'''.
Once you have your package ready and it builds locally on your Maemo Leste VM/device, there are just a couple more things to
do to make it ready for building on Jenkins:
== The git tag ==
In '''debian/changelog''' you should have your package version. It is very important to have a git tag that reflects this version
so Jenkins and jenkins-debian-glue can figure out which revision to build.
Keep in mind that the git tag should '''only''' contain the upstream version and no package revisions or epochs, for example if we have:
<code>libcal (0.3-2) unstable; urgency=medium</code>
Our git tag would be <i>0.3</i>, and '''not''' <i>0.3-2</i>
Once tagged, push the tag to git origin.
== gbp.conf ==
Your '''debian''' directory should contain a file called '''gbp.conf''' with the following contents:
<code>
[DEFAULT]
upstream-tag=%(version)s
</code>
Once all this is in place, make sure that you have a '''maemo/$codename''' branch containing all this ready and pushed.
= How you can build packages =
Building a packages is easier than one might think, it requires roughly the following steps:
#. Access to a Devuan/Debian system (you can use a [[Virtual_Machine|VM running Maemo Leste]] or a [[:Category:Device|Device running Maemo Leste]].
#. Source code of a package, obtain either via '''git''' or '''apt source <packagename>'''
#. Install build dependencies (run from source directory): '''sudo apt-get build-dep .'''
#. Build a package using '''dpkg-buildpackage -uc -b'''
You can now install the package you have just built with '''dpkg -i somename.deb'''
Also see: https://wiki.debian.org/HowToPackageForDebian
== Submitting changes ==
If you make changes to a package, please submit a pull request for the repository of that package, likely: https://github.com/maemo-leste/PACKAGENAME
For now, we will take care of updating tags and branches.
= How packages end up in the repository =
There are currently two repositories:
* The main repository: https://maedevu.maemo.org/leste
* The extras repository: https://maedevu.maemo.org/extras
The packages in the extras repository are not core, but useful applications nonetheless.
The codenames and an /etc/apt/sources.list file entry would look like the following:
<code>
deb https://maedevu.maemo.org/leste beowulf main contrib non-free
deb https://maedevu.maemo.org/extras beowulf main contrib non-free
</code>
Packages in this repository get build by Jenkins, to which a select group of people has access. (Parazyd, Wizzup)
== How packages are built using Jenkins ==
Read only access to the http frontend: https://phoenix.maemo.org/ (write-access can be granted)
All packages are hosted on https://github.com/maemo-leste and a current list of all the packages in Jenkins can be found here:
https://github.com/maemo-leste/jenkins-integration/blob/master/config.py
Every repository has a branch for each release, for example:
# maemo/beowulf - main branch for Devuan Beowulf target
# maemo/beowulf-devel - optional branch for Devuan Beowulf with unstable/testing version
See [[Development/Branches]] for more information on the usual branches flow.
= Maemo Leste Extras =
If you wish to maintain your own package in Maemo Leste, you can apply a package at https://github.com/maemo-leste-extras/bugtracker
Have a look at the README in that repository and open a ticket.
== Consideration for HAM ==
For packages built for extras to appear correctly in Hildon Application Manager, be aware that Maemo packaging system
included a few enhancements that HAM assumes. The most important one is that your application will '''only''' appear in HAM if the
<code>debian/control</code> file has a correct <code>section</code> clause as explained on the [https://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide/Packaging,_Deploying_and_Distributing#Sections|Maemo Packaging Wiki]. This wiki page also explains how to have HAM show your application's icon. Note that having an icon showing in HAM is a separate issue from having an icon show up in the application list (Hildon Home). The latter is done through
<code>.desktop</code> files, while the former is done in <code>debian/control</code>.
== Adding an icon to the package in HAM ==
In case you want to add an icon that is shown in HAM when listing the packages, we provide a debhelper plugin that can
handle this with a simple PNG file. In your package's debian directory, add your PNG icon as '''maemo-icon.png'''.
Next, have your Build-Depends contain '''maemo-system-services-dev'''. maemo-system-services-dev will pull in the debhelper plugin.
Following this, in your '''debian/control''', under your '''Package''', add the following entry:
<pre>
XB-Maemo-Icon-26: ${maemo:icon26}
</pre>
And finally, in '''debian/rules''', assuming you're using debhelper, add this:
<pre>
override_dh_gencontrol:
dh_maemo_icon
dh_gencontrol
</pre>
Finally, if using quilt, add the icon in '''debian/source/include-binaries'''
<pre>$ echo debian/maemo-icon.png >> debian/source/include-binaries</pre>
Further reading: https://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide/Packaging,_Deploying_and_Distributing#Sections
2146c3449d67cf46fa0e615470bc17f76e8d84c7
Status/GPS
0
76
852
795
2020-11-02T15:21:54Z
Wizzup
4
Add notes on gpsfake... thanks parazyd!
wikitext
text/x-wiki
== Fremantle Gypsy ==
is actually not gypsy. Rather (some) gypsy calls implemented as "location-daemon".
location-daemon/gypsy gets spawned after an application requests GPS. How exactly - TBD.
== Setting up GPSD with gpsfake on a VM ==
Add backports to /etc/apt/sources.list:
<pre>
deb https://pkgmaster.devuan.org/merged beowulf-backports main contrib non-free
</pre>
Then install gpsd using backports:
<pre>
apt install gpsd -t beowulf-backports
apt install gpsd-clients -t beowulf-backports
</pre>
Stop apparmor (for testing only!):
<pre>
/etc/init.d/apparmor stop
aa-teardown
</pre>
And then you can run gpsfake using test files from the gpsd repo:
<pre>
gpsfake -c 1 /home/user/gpsd/test/daemon/nokia-ld-4w.log
</pre>
Then in another terminal, type:
<pre>
cgps
</pre>
And you should see the information from the GPS log be replayed.
== Relevant URLs ==
* https://github.com/maemo-leste/bugtracker/issues/151
* https://github.com/maemo-leste/bugtracker/issues/57
* http://talk.maemo.org/showthread.php?t=100363
* <s>(On combining multiple gps sources such as A-GPS/SUPL and gpsd) https://lists.gnu.org/archive/html/gpsd-dev/2012-07/msg00018.html</s> (not actually relevant, A-GPS needs to fed to the GPS driver/subsystem, not merged as info into gpsd)
* supl implementation: https://github.com/tajuma/supl
* https://talk.maemo.org/showthread.php?t=93910
* https://github.com/postmarketOS/gps-nokia-n900/blob/master/gps-nokia-n900.c
== Regarding Droid 4 GPS ==
<pre>
17:05 < Wizzup> tmlind: wrt gps on the droid, you said there is currently a bug that allows opening
/dev/gnss* only once?
17:09 < tmlind> Wizzup: i think that was a bug in gpsd, did not happen last time i tried. if you hit
that one, opening secondary clients like gpspipe -R won't output anything
17:09 < Wizzup> ah, so it's not a kernel problem, ok
17:10 < Wizzup> once maemo-input-sounds is done (hopefully tonight) I will work on location stuff in
case I can go on vacation and need gps, or until fmg is done with abook and we then
look at rtcom
17:10 < Wizzup> in any case, I was wondering what the gps status is, but I think we'll start gpsd on
demand, so that's fine
17:11 < Wizzup> from a pm pov, I assume closing the fd will stop gps recv?
17:11 < Wizzup> also, this is on the wiki: 22:30 < tmlind> hmm there's a probably kernel gnss bug for
gsp access fyi, you can currently only open one connection before you have to restart
gpsd :)
17:13 < tmlind> Wizzup: yeah so if hiking, you probably want to modprobe gnss_motmdm rate_ms=3000 or
even higher to allow the soc to sleep inbetween
17:14 < tmlind> Wizzup: the default gpsd options only open device if there's a client and times out
automatically
17:14 < Wizzup> interesting.
17:14 < Wizzup> regarding module - well noted
17:14 < Wizzup> I didn't know gpsd auto closed, that's nice.
17:15 < tmlind> i think i measured about 200 - 250 mW with gps enabled screen blanked etc
</pre>
== Regarding A-GPS in general, but also N900 and Droid 4 specifics ==
<pre>
17:15 < Wizzup> also ran into this: https://lists.gnu.org/archive/html/gpsd-dev/2012-07/msg00018.html
17:15 < Entitlement> Wizzup - [ Re: [gpsd-dev] Using multiple location sources to improve accuracy and
r ]
17:15 < Wizzup> (regarding agps)
17:15 < tmlind> Wizzup: yeah so don't enable gpsd -n option, that will keep the gps open
17:15 < Wizzup> looks like ESR suggests to write a daemon that sits in the middle and mixes in agps
info
17:15 < Wizzup> ok
17:16 < Wizzup> regarding rate_ms, I wonder if it makes more sense to keep it lower until a proper fix
is found
17:16 < Wizzup> although I suppose that's only the reporting rate, so it probably doesn't matter
17:16 < tmlind> yeah it defaults to 1s so just leave it out by default
17:16 < tmlind> it will be some generic option eventually and not a module param
17:17 -!- z3ntu_ [z3ntumatri@gateway/shell/matrix.org/x-lnssiqwycssoqteb] has quit [Quit: Idle for 30+
days]
17:18 < tmlind> not sure how much stuff i'll get done over next few months in general, but at some
point i'm planning to continue on the droid4-agps tool..
17:19 < Wizzup> tmlind: what would that do?
17:19 < Wizzup> I figured agps could be done via with https://github.com/tajuma/supl
17:19 < Entitlement> Wizzup - [ GitHub - tajuma/supl ]
17:19 < Wizzup> s/via with/with this/
17:20 -!- peetah [~peetah@cha92-9-82-236-202-86.fbx.proxad.net] has joined #maemo-leste
17:22 < bencoh> (tested and more or less working on maemo5, btw)
17:22 < Wizzup> bencoh: just now?
17:22 < bencoh> no
17:22 < Wizzup> :)
17:23 < bencoh> I used it to proxify supl requests to google
17:23 < tmlind> Wizzup: hmm maybe not sure. in this case we need to download qcom provided up to date
xtra2.bin file for the gnss, not sure if the older formats work at all for the gnss
17:25 < bencoh> tmlind: I'd tend to think you would need to keep gps "always on" before the first fix
17:25 < bencoh> otherwise you will never get enough information from satellites
17:25 < bencoh> (unless you have agps/supl, of course)
17:26 < Wizzup> tmlind: from what I can tell that tool just takes lac/mcc/mns and such (like we can
get from ofono or from modem directly) and just calls to a SUPL service?
17:27 < bencoh> Wizzup: google would even return you a rough position with those
17:27 < tmlind> bencoh: yes it does that already automatically and won't start idling until the fix is
done
17:27 < bencoh> tmlind: ah, I see
17:28 < tmlind> Wizzup: yeh i figured, not sure if the modem nvram settings for supl are working or
not, i somehow have an impression they're only working for some older modems, could be
wrong
17:28 < Wizzup> I don't know enough about AGPS clearly, but from what I currently understand, it's
just a data connection to a server with some cell data
17:29 < Wizzup> so I am not sure what the modem would do specifically
17:29 < Wizzup> I suppose there are probably many "assisted" methods
17:29 < bencoh> Wizzup: you're supposed to receive orbital data / almanac
17:30 < Wizzup> ah
17:30 < bencoh> and feed it to the gps subsystem
17:30 < tmlind> yeah this xtra2.bin stuff is an almanac in some proprietary format for a week i think
17:30 < Wizzup> oh, right, to actually feed it
17:30 < Wizzup> I get it now.
17:30 < Wizzup> when I was searching for methods to tell gpsd about agps nothing turned out, explains
it now
17:31 < Wizzup> s/turned out/turned up/
17:31 < bencoh> iiuc on n900, the modem itself manages the supl connection; the location daemon only
acts as a proxy to provide it a tcp connection
17:31 < Wizzup> ok, yeah, so for the n900 we will have to RE some stuff
17:31 < bencoh> yeah
17:31 < tmlind> bencoh: afaik also mdm6600 nvram has something for supl server, not sure if it works
though
17:32 < tmlind> bencoh: if you want to try it, you can tweak the nvram values with tcmdrw on
github.com/tmlind
17:32 < bencoh> tmlind: meaning implementing/RE-ing such a proxy would make sense for both platforms
17:33 < tmlind> bencoh: hmm proxy running where? on the device?
17:33 < bencoh> on n900/maemo5, yeah
17:33 < bencoh> iirc it is location-proxy (forked on demand I think)
17:33 < tmlind> well i think the modem uses the supl server directly probably based on some
requirements from the ministry of silly walks
17:34 < Wizzup> bencoh: there is location-proxy and location-daemon btw
17:34 < bencoh> it does; the "proxy" only provides the modem with a mean to open a tcp socket and
read/write to it
17:34 < bencoh> Wizzup: indeed
17:34 < Wizzup> if you have more info please share :)
17:34 < Wizzup> I can RE some stuff, but want to RE the right things only
17:35 < bencoh> I haven't toyed with those for quite some time, but lemme see
17:35 < tmlind> well the thing to try with droid4 mdm6600 would be to configure supl server in nvram,
start modem data connection, then gps and see how fast it gets a fix
17:38 < tmlind> i'd try clearing openpst NV_AAGPS_XTRA_ENABLED_I value to try to disable xtra2.bin
use, then try to configure whatever nvram values there might be for a supl server,
sorry no idea what those entries might be but i see the dumps contain some url in hex
format
17:40 < bencoh> Wizzup: see /usr/lib/liblas.so.0.0.0
17:41 < bencoh> especially the las_socket_*
17:41 < bencoh> location-proxy refers to those
17:42 < Wizzup> hm 32K
17:42 < Wizzup> this is likely all n900 specific though right?
17:42 < bencoh> Wizzup: http://pastebin.notk.org/pastebin.php?show=f7f7b371d
17:42 < Entitlement> bencoh - [ pastebin private pastebin - collaborative debugging tool ]
17:42 < bencoh> most likely n900-specific yeah
17:42 < tmlind> hmm so a quick search for the NV_AAGPS_XTRA_ENABLED_I points to some earlier pastebin
page at https://pastebin.com/dyfsUcHc, maybe try configuring those and disable xtra
stuff?
17:42 < Entitlement> tmlind - [ QPST 378 NV Items that are in i535 but NOT in i535 dev ed -
Pastebin.com ]
17:43 < bencoh> tmlind: I don't think supl server address would go into nvram
17:43 < Wizzup> bencoh: ah, so you're suggesting we make some generic "how to write supl data to a
modem" lib?
17:43 < bencoh> tmlind: well, unless it has a mean to actually ask for a specific supl server from the
AP processor
17:43 < tmlind> bencoh: i'm pretty sure the uri goes to nvram, see NV_CGPS_UMTS_PDE_SERVER_ADDR_URL_I
in the link above
17:43 < bencoh> oh
17:44 < bencoh> well, on n900/maemo5, the host gets to decide on that
17:44 < tmlind> ok
17:45 < bencoh> Wizzup: I guess we would want a "generic" glue lib with support for various (two?)
platforms
17:45 < tmlind> bencoh: there seems to be a bunch PDE related nvram entries, see libopenpst dm_nv.h
file
17:46 < bencoh> right
17:47 < bencoh> Actually I wonder if the supl connection would need to go through the host cpu at all
on the mdm6600
17:47 < tmlind> bencoh: no afaik it can't
17:48 < bencoh> it might try and use the gprs/umts data channels
17:48 < tmlind> i think it has to
17:48 < bencoh> without even bothering with the host
17:48 < tmlind> right
17:48 < bencoh> it's a completely different design then
17:48 < bencoh> meaning it should work automagically once we setup pde server properly
17:49 < tmlind> yeah it should hopefully unless it's working only in the xtra2.bin mode
17:49 < bencoh> and that it'll stop working forever once supl servers break support for it
17:49 < tmlind> bencoh: so i did also a tool for the xtra2.bin stuff but it's not complete, also on my
github page droid4-agps or something like that
17:49 < bencoh> (unlike n900, where we managed to somehow get some kind of support using supl-proxy
from tajuma)
17:50 < tmlind> bencoh: at least the supl stuff is a standard format, let's hope it works :)
17:51 < bencoh> it's "standard" until google decides some input fields become mandatory
17:51 < bencoh> but yeah
17:51 < tmlind> i think there are other supl servers available too, right?
17:51 < Wizzup> bencoh: there were other supl servers I think
17:51 < bencoh> (I think that's the reason supl.google.com doesn't work on n900 without any proxy)
17:51 < Wizzup> bencoh: oh?
17:51 < bencoh> well, it depends on your phone service provider
17:52 < bencoh> vodaphone has (had?) one for their customers, but it's not available from outside
their network
17:52 < bencoh> nokia died
17:52 < bencoh> I think sony had one, but ...
17:53 < bencoh> we could also run one, but we'd need to write a fair bit of code for that
17:53 < Wizzup> didn't see any code for it so far
17:53 < Wizzup> (googling around)
17:54 < Wizzup> as in, for a supl server
17:54 < bencoh> Wizzup: https://github.com/fairwaves/RRLP-2.8
17:54 < Entitlement> bencoh - [ GitHub - fairwaves/RRLP-2.8: OpenBTS 2.8 RRLP server, Fairwaves
version ]
17:55 < bencoh> that's for the rrlp part
17:56 < bencoh> I don't remember whether they implemented the SUPL part, but if not, one would need to
wrap the RRLP payload in SUPL packets
17:56 < tmlind> well just having a server proxying the supl data from various sources should do, sort
of what ntpd does
17:57 < Wizzup> it would be nice to have a supl server one can just run, though
17:57 < tmlind> yup
17:57 < bencoh> tmlind: yup, that's exactly what we started doing on maemo5/n900
17:57 < Wizzup> all of this sounds like we will just do GPS with A-GPS first though ;)
17:57 < Wizzup> (for leste, to at least get the frameworks in place)
17:58 < bencoh> I ran a supl-proxy everytime I needed to get a gps fix
17:54 < bencoh> Wizzup: https://github.com/fairwaves/RRLP-2.8
17:54 < Entitlement> bencoh - [ GitHub - fairwaves/RRLP-2.8: OpenBTS 2.8 RRLP server, Fairwaves
version ]
17:55 < bencoh> that's for the rrlp part
17:56 < bencoh> I don't remember whether they implemented the SUPL part, but if not, one would need to
wrap the RRLP payload in SUPL packets
17:56 < tmlind> well just having a server proxying the supl data from various sources should do, sort
of what ntpd does
17:57 < Wizzup> it would be nice to have a supl server one can just run, though
17:57 < tmlind> yup
17:57 < bencoh> tmlind: yup, that's exactly what we started doing on maemo5/n900
17:57 < Wizzup> all of this sounds like we will just do GPS with A-GPS first though ;)
17:57 < Wizzup> (for leste, to at least get the frameworks in place)
17:58 < bencoh> I ran a supl-proxy everytime I needed to get a gps fix
17:58 < Wizzup> I should probably do it on fremantle too, didn't look at the proxying
17:58 < bencoh> (I think it stopped working at some point, but I haven't investigated it. It might be
a cert issue)
17:58 < tmlind> well i meant running a proxying supl server on maemo.org picking data from various
sources so devices would just point to the maemo supl server
17:58 < bencoh> Wizzup: Sicelo eventually wrote a howto https://wiki.maemo.org/N900_GPS_Proxy
17:58 < Entitlement> bencoh - [ N900 GPS Proxy - maemo.org wiki ]
17:59 < bencoh> tmlind: *nod*
17:59 < Wizzup> check
17:59 < Wizzup> tmlind: ah, right
17:59 < Wizzup> that's definitely a good stopgap at least
18:00 < bencoh> We almost have the code for that
18:00 < tmlind> yeah then adding supl data from some open source data feed could be just added
18:00 < bencoh> we just need to add multi-client support to supl-proxy
18:00 < tmlind> cool
18:01 < bencoh> err, except that supl-proxy will actually fetch data for every request
18:01 < tmlind> heh that probably creates a google maps traffic jam to where that server is hosted :)
18:01 < bencoh> :))
18:02 < tmlind> not sure if there are some legal aspects to consider there, not familiar with the supl
stuff really
18:02 < bencoh> you need to supply a valid cell (mnc/lac/whatever) coordinate, and supl response is
customized accordingly
18:02 < bencoh> afaict
18:02 < tmlind> huh why do you need mnc/lac?
18:03 < tmlind> to limit the data size?
18:03 < bencoh> I'm pretty certain you wouldn't need it in theory to get a full ephemeric/almanac dump
18:03 < tmlind> bbl
18:03 < bencoh> but iirc it's mandatory for supl.google.com
18:04 < bencoh> (I can see a pretty good reason for that, actually ... google loves knowing where you
are)
18:06 < Wizzup> yeah
18:06 < Wizzup> from 3) A-GPS here , there seem to be only a few
https://www.reddit.com/r/privacy/comments/cldrym/how_to_degoogle_lineageos_in_2019/
18:06 < Entitlement> Wizzup - [ How to deGoogle LineageOS in 2019 : privacy ]
18:06 < Wizzup> (providers that run a supl server)
18:12 < bencoh> wow, supl.sonyericsson.com actually works as well
18:13 < bencoh> and vodafone too. funny, last time I tried I couldn't use it
18:17 < tmlind> cool, anyways multiple source for the proxying supl server would be best, sort of like
with nptd
18:17 * bencoh nods
</pre>
84d65bd13a999cbd2e237b93b8ad26ea152a895b
File:Cant have 2 much leste.jpg
6
113
853
2020-11-19T13:04:17Z
Clort
42
Droid4's running Maemo-Leste
wikitext
text/x-wiki
Droid4's running Maemo-Leste
5aa6d5ca73096d9d5b1f63925a1715ed8421629f
File:Leste-neverball.jpg
6
114
854
2020-11-19T13:07:52Z
Clort
42
Droid 4 running Neverball with gl4es shim.
wikitext
text/x-wiki
Droid 4 running Neverball with gl4es shim.
b10c36612d284491a2ff86377c9f993ea0813925
File:Statsfun.jpg
6
115
855
2020-11-19T13:09:54Z
Clort
42
Droid 4 Maemo Leste running stats script
wikitext
text/x-wiki
Droid 4 Maemo Leste running stats script
6e21fd4a4794fe00095ec84ce8950c9e412b66c2
File:Leste-glmatrix.png
6
116
856
2020-11-19T13:11:38Z
Clort
42
Droid 4 and Leste running JWZ's glmatrix screensaver (without hildon compositing)
wikitext
text/x-wiki
Droid 4 and Leste running JWZ's glmatrix screensaver (without hildon compositing)
da39b5b85045f07138d3a059f0a27441fc86f9fd
Motorola Droid 4
0
50
857
842
2020-11-19T13:12:02Z
Clort
42
/* Gallery */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.8.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || Yes || Available in /sys, and as input device via iio-uinput
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)
|-
| Proximity sensor || WIP || needs mce work
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No ||
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab the latest image from https://phoenix.maemo.org/view/Images/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Make Audio Automaticaly set up (Temporary Solution) ====
Adding this in /etc/rc.local above the ''exit 0'' to make audio work from boot.
amixer cset numid=22 HiFi #set left speaker to HiFi
amixer cset numid=21 HiFi #set right speaker to HiFi
amixer cset numid=26 HiFi #set left headset to HiFi
amixer cset numid=25 HiFi #set right headset to HiFi
amixer cset numid=1 50% #set HiFi volumes to 50%
==== Wifi ====
The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this over SSH:
<pre>
Read modem output:
# cat /dev/motmdm1 &
Online modem:
# printf "AT+CFUN=1\r" > /dev/motmdm1
Connect to network:
# printf "AT+COPS=1\r" > /dev/motmdm1
Print connected network:
# printf "AT+COPS?\r" > /dev/motmdm1
Not sure, do it anyway:
# printf "AT+SCRN=0\r" > /dev/motmdm1
Dial a number:
# printf "ATD+1234567890\r" > /dev/motmdm1
Hang up:
# printf "ATH\r" > /dev/motmdm1
Answer incoming call:
# printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero.
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
Cant_have_2_much_leste.jpg
Leste-neverball.jpg
Statsfun.jpg
Leste-glmatrix.png
</gallery>
[[Category:Device]]
43de9725e3895c819b2f4bb8c04baded809eb2d5
859
857
2020-11-19T14:21:19Z
Clort
42
/* Gallery */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.8.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || Yes || Available in /sys, and as input device via iio-uinput
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)
|-
| Proximity sensor || WIP || needs mce work
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No ||
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab the latest image from https://phoenix.maemo.org/view/Images/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Make Audio Automaticaly set up (Temporary Solution) ====
Adding this in /etc/rc.local above the ''exit 0'' to make audio work from boot.
amixer cset numid=22 HiFi #set left speaker to HiFi
amixer cset numid=21 HiFi #set right speaker to HiFi
amixer cset numid=26 HiFi #set left headset to HiFi
amixer cset numid=25 HiFi #set right headset to HiFi
amixer cset numid=1 50% #set HiFi volumes to 50%
==== Wifi ====
The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this over SSH:
<pre>
Read modem output:
# cat /dev/motmdm1 &
Online modem:
# printf "AT+CFUN=1\r" > /dev/motmdm1
Connect to network:
# printf "AT+COPS=1\r" > /dev/motmdm1
Print connected network:
# printf "AT+COPS?\r" > /dev/motmdm1
Not sure, do it anyway:
# printf "AT+SCRN=0\r" > /dev/motmdm1
Dial a number:
# printf "ATD+1234567890\r" > /dev/motmdm1
Hang up:
# printf "ATH\r" > /dev/motmdm1
Answer incoming call:
# printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero.
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
Cant_have_2_much_leste.jpg
Leste-neverball.jpg
Statsfun.jpg
Leste-glmatrix.png
Droid4-leste-utox2.jpg
</gallery>
[[Category:Device]]
5e8ef06b4a447839e599de07186e72c3734dbfce
861
859
2020-11-19T17:27:10Z
Clort
42
/* Gallery */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.8.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || Yes || Available in /sys, and as input device via iio-uinput
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)
|-
| Proximity sensor || WIP || needs mce work
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No ||
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab the latest image from https://phoenix.maemo.org/view/Images/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Make Audio Automaticaly set up (Temporary Solution) ====
Adding this in /etc/rc.local above the ''exit 0'' to make audio work from boot.
amixer cset numid=22 HiFi #set left speaker to HiFi
amixer cset numid=21 HiFi #set right speaker to HiFi
amixer cset numid=26 HiFi #set left headset to HiFi
amixer cset numid=25 HiFi #set right headset to HiFi
amixer cset numid=1 50% #set HiFi volumes to 50%
==== Wifi ====
The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this over SSH:
<pre>
Read modem output:
# cat /dev/motmdm1 &
Online modem:
# printf "AT+CFUN=1\r" > /dev/motmdm1
Connect to network:
# printf "AT+COPS=1\r" > /dev/motmdm1
Print connected network:
# printf "AT+COPS?\r" > /dev/motmdm1
Not sure, do it anyway:
# printf "AT+SCRN=0\r" > /dev/motmdm1
Dial a number:
# printf "ATD+1234567890\r" > /dev/motmdm1
Hang up:
# printf "ATH\r" > /dev/motmdm1
Answer incoming call:
# printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero.
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
Cant_have_2_much_leste.jpg
Leste-neverball.jpg
Statsfun.jpg
Leste-glmatrix.png
Droid4-leste-utox2.jpg
Droid4-leste-pcsx.jpg
</gallery>
[[Category:Device]]
d16cdded645e4b7d8b47c97fae6177dfec9e63cf
863
861
2020-11-21T14:29:10Z
Clort
42
/* Gallery */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.8.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || Yes || Available in /sys, and as input device via iio-uinput
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)
|-
| Proximity sensor || WIP || needs mce work
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No ||
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab the latest image from https://phoenix.maemo.org/view/Images/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Make Audio Automaticaly set up (Temporary Solution) ====
Adding this in /etc/rc.local above the ''exit 0'' to make audio work from boot.
amixer cset numid=22 HiFi #set left speaker to HiFi
amixer cset numid=21 HiFi #set right speaker to HiFi
amixer cset numid=26 HiFi #set left headset to HiFi
amixer cset numid=25 HiFi #set right headset to HiFi
amixer cset numid=1 50% #set HiFi volumes to 50%
==== Wifi ====
The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this over SSH:
<pre>
Read modem output:
# cat /dev/motmdm1 &
Online modem:
# printf "AT+CFUN=1\r" > /dev/motmdm1
Connect to network:
# printf "AT+COPS=1\r" > /dev/motmdm1
Print connected network:
# printf "AT+COPS?\r" > /dev/motmdm1
Not sure, do it anyway:
# printf "AT+SCRN=0\r" > /dev/motmdm1
Dial a number:
# printf "ATD+1234567890\r" > /dev/motmdm1
Hang up:
# printf "ATH\r" > /dev/motmdm1
Answer incoming call:
# printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero.
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
Cant_have_2_much_leste.jpg
Leste-neverball.jpg
Statsfun.jpg
Leste-glmatrix.png
Droid4-leste-utox2.jpg
Droid4-leste-pcsx.jpg
Droid4-leste-surf_master.jpg
</gallery>
[[Category:Device]]
e10ddf7f3bcb1c0467c405e72f07be61854052d7
877
863
2020-12-18T11:07:16Z
Uvos
39
/* Status */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || Yes || Available in /sys, and as input device via iio-uinput
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)
|-
| Gyro || N/A ||
|-
| Proximity sensor || WIP || needs mce work
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No ||
|-
| Idle power consumption || ~120mW ||
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab the latest image from https://phoenix.maemo.org/view/Images/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Make Audio Automaticaly set up (Temporary Solution) ====
Adding this in /etc/rc.local above the ''exit 0'' to make audio work from boot.
amixer cset numid=22 HiFi #set left speaker to HiFi
amixer cset numid=21 HiFi #set right speaker to HiFi
amixer cset numid=26 HiFi #set left headset to HiFi
amixer cset numid=25 HiFi #set right headset to HiFi
amixer cset numid=1 50% #set HiFi volumes to 50%
==== Wifi ====
The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this over SSH:
<pre>
Read modem output:
# cat /dev/motmdm1 &
Online modem:
# printf "AT+CFUN=1\r" > /dev/motmdm1
Connect to network:
# printf "AT+COPS=1\r" > /dev/motmdm1
Print connected network:
# printf "AT+COPS?\r" > /dev/motmdm1
Not sure, do it anyway:
# printf "AT+SCRN=0\r" > /dev/motmdm1
Dial a number:
# printf "ATD+1234567890\r" > /dev/motmdm1
Hang up:
# printf "ATH\r" > /dev/motmdm1
Answer incoming call:
# printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero.
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
Cant_have_2_much_leste.jpg
Leste-neverball.jpg
Statsfun.jpg
Leste-glmatrix.png
Droid4-leste-utox2.jpg
Droid4-leste-pcsx.jpg
Droid4-leste-surf_master.jpg
</gallery>
[[Category:Device]]
ef43809a19a4f9d3c0589837d60da8b333160a99
879
877
2020-12-18T11:07:54Z
Uvos
39
/* Status */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || Yes || Available in /sys, and as input device via iio-uinput
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)
|-
| Gyro || N/A ||
|-
| Proximity sensor || WIP || needs mce work
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No ||
|-
| Idle power consumption || ~120mW || Needs sim inserted
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab the latest image from https://phoenix.maemo.org/view/Images/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Make Audio Automaticaly set up (Temporary Solution) ====
Adding this in /etc/rc.local above the ''exit 0'' to make audio work from boot.
amixer cset numid=22 HiFi #set left speaker to HiFi
amixer cset numid=21 HiFi #set right speaker to HiFi
amixer cset numid=26 HiFi #set left headset to HiFi
amixer cset numid=25 HiFi #set right headset to HiFi
amixer cset numid=1 50% #set HiFi volumes to 50%
==== Wifi ====
The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this over SSH:
<pre>
Read modem output:
# cat /dev/motmdm1 &
Online modem:
# printf "AT+CFUN=1\r" > /dev/motmdm1
Connect to network:
# printf "AT+COPS=1\r" > /dev/motmdm1
Print connected network:
# printf "AT+COPS?\r" > /dev/motmdm1
Not sure, do it anyway:
# printf "AT+SCRN=0\r" > /dev/motmdm1
Dial a number:
# printf "ATD+1234567890\r" > /dev/motmdm1
Hang up:
# printf "ATH\r" > /dev/motmdm1
Answer incoming call:
# printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero.
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
Cant_have_2_much_leste.jpg
Leste-neverball.jpg
Statsfun.jpg
Leste-glmatrix.png
Droid4-leste-utox2.jpg
Droid4-leste-pcsx.jpg
Droid4-leste-surf_master.jpg
</gallery>
[[Category:Device]]
f8db0b36d2744da377d01863fd2972716b8b8c3d
880
879
2020-12-18T11:08:25Z
Uvos
39
/* Status */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || Yes || Available in /sys, and as input device via iio-uinput
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)
|-
| Gyro || N/A ||
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No ||
|-
| Idle power consumption || ~120mW || Needs sim inserted
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab the latest image from https://phoenix.maemo.org/view/Images/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Make Audio Automaticaly set up (Temporary Solution) ====
Adding this in /etc/rc.local above the ''exit 0'' to make audio work from boot.
amixer cset numid=22 HiFi #set left speaker to HiFi
amixer cset numid=21 HiFi #set right speaker to HiFi
amixer cset numid=26 HiFi #set left headset to HiFi
amixer cset numid=25 HiFi #set right headset to HiFi
amixer cset numid=1 50% #set HiFi volumes to 50%
==== Wifi ====
The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this over SSH:
<pre>
Read modem output:
# cat /dev/motmdm1 &
Online modem:
# printf "AT+CFUN=1\r" > /dev/motmdm1
Connect to network:
# printf "AT+COPS=1\r" > /dev/motmdm1
Print connected network:
# printf "AT+COPS?\r" > /dev/motmdm1
Not sure, do it anyway:
# printf "AT+SCRN=0\r" > /dev/motmdm1
Dial a number:
# printf "ATD+1234567890\r" > /dev/motmdm1
Hang up:
# printf "ATH\r" > /dev/motmdm1
Answer incoming call:
# printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero.
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
Cant_have_2_much_leste.jpg
Leste-neverball.jpg
Statsfun.jpg
Leste-glmatrix.png
Droid4-leste-utox2.jpg
Droid4-leste-pcsx.jpg
Droid4-leste-surf_master.jpg
</gallery>
[[Category:Device]]
7ba1674dada78088e1cfff3a1f491063a19e8f10
881
880
2020-12-18T11:10:19Z
Uvos
39
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || Yes || Available in /sys, and as input device via iio-uinput
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)
|-
| Gyro || N/A ||
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No ||
|-
| Idle power consumption || ~120mW || Needs sim inserted
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab the latest image from https://phoenix.maemo.org/view/Images/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Make Audio Automaticaly set up (Temporary Solution) ====
Adding this in /etc/rc.local above the ''exit 0'' to make audio work from boot.
amixer cset numid=22 HiFi #set left speaker to HiFi
amixer cset numid=21 HiFi #set right speaker to HiFi
amixer cset numid=26 HiFi #set left headset to HiFi
amixer cset numid=25 HiFi #set right headset to HiFi
amixer cset numid=1 50% #set HiFi volumes to 50%
==== Wifi ====
The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this over SSH:
<pre>
Read modem output:
# cat /dev/motmdm1 &
Online modem:
# printf "AT+CFUN=1\r" > /dev/motmdm1
Connect to network:
# printf "AT+COPS=1\r" > /dev/motmdm1
Print connected network:
# printf "AT+COPS?\r" > /dev/motmdm1
Not sure, do it anyway:
# printf "AT+SCRN=0\r" > /dev/motmdm1
Dial a number:
# printf "ATD+1234567890\r" > /dev/motmdm1
Hang up:
# printf "ATH\r" > /dev/motmdm1
Answer incoming call:
# printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero.
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
Cant_have_2_much_leste.jpg
Leste-neverball.jpg
Statsfun.jpg
Leste-glmatrix.png
Droid4-leste-utox2.jpg
Droid4-leste-pcsx.jpg
Droid4-leste-surf_master.jpg
</gallery>
[[Category:Device]]
d635248ff74e10f42f791e0d376f62b775e99b61
882
881
2020-12-22T01:16:48Z
Clort
42
/* Stuff to try */ additions by Clort.
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || Yes || Available in /sys, and as input device via iio-uinput
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)
|-
| Gyro || N/A ||
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No ||
|-
| Idle power consumption || ~120mW || Needs sim inserted
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab the latest image from https://phoenix.maemo.org/view/Images/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Make Audio Automaticaly set up (Temporary Solution) ====
Adding this in /etc/rc.local above the ''exit 0'' to make audio work from boot.
amixer cset numid=22 HiFi #set left speaker to HiFi
amixer cset numid=21 HiFi #set right speaker to HiFi
amixer cset numid=26 HiFi #set left headset to HiFi
amixer cset numid=25 HiFi #set right headset to HiFi
amixer cset numid=1 50% #set HiFi volumes to 50%
==== Wifi ====
The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this over SSH:
<pre>
Read modem output:
# cat /dev/motmdm1 &
Online modem:
# printf "AT+CFUN=1\r" > /dev/motmdm1
Connect to network:
# printf "AT+COPS=1\r" > /dev/motmdm1
Print connected network:
# printf "AT+COPS?\r" > /dev/motmdm1
Not sure, do it anyway:
# printf "AT+SCRN=0\r" > /dev/motmdm1
Dial a number:
# printf "ATD+1234567890\r" > /dev/motmdm1
Hang up:
# printf "ATH\r" > /dev/motmdm1
Answer incoming call:
# printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero.
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
==== HDMI ====
Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier.
<pre>
xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off
</pre>
Return to internal touchscreen display.
<pre>
xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off
</pre>
==== Keyboard / Mouse sharing with PC ====
To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4.
<pre>
[https://github.com/debauchee/barrier Barrier software-KVM switch]
</pre>
Developers and testers may wish to disable the googley bits before compiling.
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
Cant_have_2_much_leste.jpg
Leste-neverball.jpg
Statsfun.jpg
Leste-glmatrix.png
Droid4-leste-utox2.jpg
Droid4-leste-pcsx.jpg
Droid4-leste-surf_master.jpg
</gallery>
[[Category:Device]]
c044826e62bc8820be874c3dcdeca8d3ef861e6f
File:Droid4-leste-utox2.jpg
6
117
858
2020-11-19T14:20:51Z
Clort
42
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Droid4-leste-pcsx.jpg
6
118
860
2020-11-19T17:26:31Z
Clort
42
PCSX-ReArmed runs at under 40% cpu use of one core of Omap4
wikitext
text/x-wiki
PCSX-ReArmed runs at under 40% cpu use of one core of Omap4
4e64881a258ed9357d7a5dbf0c3639e397b6c3fc
File:Droid4-leste-surf master.jpg
6
119
862
2020-11-21T14:28:40Z
Clort
42
suckless 'surf' browser - not from debian repo - doesn't have url bar.
default.css in ~/.surf/styles/default.css is:
pre,textarea,body,input,td,tr,p {
background-color: black !important;
background-image: none !important;
color: #e0e0e0 !important...
wikitext
text/x-wiki
suckless 'surf' browser - not from debian repo - doesn't have url bar.
default.css in ~/.surf/styles/default.css is:
pre,textarea,body,input,td,tr,p {
background-color: black !important;
background-image: none !important;
color: #e0e0e0 !important;
}
div {
background-color: #101010 !important;
background-image: none !important;
color: #e0e0e0 !important;
}
h1,h2,h3,h4 {
background-color: black !important;
color: #e02020 !important;
}
a {
color: #5050f0 !important;
}
a:link {color: #20D0FF !important}
a:visited {color: #DF46C0 !important}
a:hover {color: #FFCC00 !important}
a:active {color: #FF00CC !important}
#bottom-result-container #spon_links { display: none !important; }
#bottom-result-container #sponsored_csa1 { display: none !important; }
#bottom-result-container #sponsored_csa2 { display: none !important; }
652da4e70b6175823beb1758403ec35bcf65f5c4
User:Sicelo/Snippets
2
102
864
731
2020-11-26T23:33:33Z
Sicelo
5
n900 bluetooth
wikitext
text/x-wiki
Possible N900 USB host mode
echo 'force host full-speed' > /sys/kernel/debug/musb-hdrc.0.auto/testmode
echo host > /sys/bus/platform/devices/musb-hdrc.0.auto/mode
echo 1 > /sys/kernel/debug/musb-hdrc.0.auto/softconnect
echo disconnect > /sys/bus/platform/devices/musb-hdrc.0.auto/musb-hdrc.0.auto/soft_connect
Force N900 to stop charging while connected to power
echo off > /sys/class/power_supply/bq24150a-0/mode
N900 bluetooth
00:26 < sicelo> sre: hi. (this isn't too important compared to the task at hand, but) iirc getting N900 bluetooth working with mainline needed some serdev work. do you know what still
needs to be done?
00:28 < sre> enabling CONFIG_BT_HCIUART_NOKIA should give you a somewhat working bluetooth device. IIRC there were some issues that need to be debugged.
Application wishlist from Wizzup
<pre>
Maybe fun to port:
desktop:
battery-eye (in vm al)
catorise http://maemo.org/downloads/product/Maemo5/catorise/ (evt "Debian" category)
live wallpaper? http://maemo.org/downloads/product/Maemo5/live-wallpaper/
datetoday home widget http://maemo.org/downloads/product/Maemo5/datetoday-home-widget/
personal gprs monitor maemo.org/downloads/product/Maemo5/personal-gprs-mon/
humanity theme http://maemo.org/downloads/product/Maemo5/humanity-theme/
DONE personal ip address http://maemo.org/downloads/product/Maemo5/personal-ip-address/
custom operator name widget http://maemo.org/downloads/product/Maemo5/custom-operator-name-widget/
advanced clock http://maemo.org/downloads/product/Maemo5/advanced-clock-plugin/
app search widget http://maemo.org/downloads/product/Maemo5/app-search-widget/
qtlockscreen (?) and qtlockscreenconfig -- http://maemo.org/downloads/product/Maemo5/qtlockscreenconfig/
DONE http://maemo.org/downloads/product/Maemo5/miku-theme/
education:
dorian http://maemo.org/downloads/product/Maemo5/dorian/
evopedia http://maemo.org/downloads/product/Maemo5/evopedia/
e-book reader http://maemo.org/downloads/product/Maemo5/epubreader/
gtranslate? http://maemo.org/downloads/product/Maemo5/gtranslate/ - gtk/glib/espeak
games
smw - http://maemo.org/downloads/product/Maemo5/smw/
warmux - http://maemo.org/downloads/product/Maemo5/wormux/
battle gweled - http://maemo.org/downloads/product/Maemo5/battlegweled/
drnoksnes (!!!)
freecell4maemo ?
prboom
bullshit bingo http://maemo.org/downloads/product/Maemo5/bullshitbingo/
puzzles http://maemo.org/downloads/product/Maemo5/sgt-puzzles/
rocks n diamond shttp://maemo.org/downloads/product/Maemo5/rocksndiamonds/
uae4all goed laten werken
neverball - http://maemo.org/downloads/product/Maemo5/neverball/
graphics
mypaint (?)
raw viewer? http://maemo.org/downloads/product/Maemo5/mrawviewer/
multimedia
Boel coole/nuttige music players
qspot http://maemo.org/downloads/product/Maemo5/qspot/
recorder http://maemo.org/downloads/product/Maemo5/recorder/
qmidictl http://maemo.org/downloads/product/Maemo5/qmidictl/
maetronome http://maemo.org/downloads/product/Maemo5/maetronome/
location and navigation
modrana
marble? http://maemo.org/downloads/product/Maemo5/marble/
marble maps? http://maemo.org/downloads/product/Maemo5/marble-maps/
maep for sure http://maemo.org/downloads/product/Maemo5/maep/
gps track logger http://maemo.org/downloads/product/Maemo5/gps-data-logger/
OSM2Go - http://maemo.org/downloads/product/Maemo5/osm2go/
interessant http://maemo.org/downloads/product/Maemo5/snuggle/
internet and networking
google voice dialer written in Qt http://maemo.org/downloads/product/Maemo5/qgvdial/
meer google voice http://maemo.org/downloads/product/Maemo5/dialcentral/
twitter clienter http://maemo.org/downloads/product/Maemo5/khweeteur/
zoutube -- http://maemo.org/downloads/product/Maemo5/zoutube/
witter -- twitter client in python http://maemo.org/downloads/product/Maemo5/witter/
vncviewer -- http://maemo.org/downloads/product/Maemo5/vncviewer/
wifi eye http://maemo.org/downloads/product/Maemo5/wifieye/
qnetman -- http://maemo.org/downloads/product/Maemo5/qnetman/
xchat irc http://maemo.org/downloads/product/Maemo5/xchat/
office
xournal http://maemo.org/downloads/product/Maemo5/xournal/
quicknote http://maemo.org/downloads/product/Maemo5/quicknote/
mebook http://maemo.org/downloads/product/Maemo5/mebook/
portabase? http://maemo.org/downloads/product/Maemo5/portabase/
other
--
science
orrery -- http://maemo.org/downloads/product/Maemo5/orrery/
accdisplay http://maemo.org/downloads/product/Maemo5/accdisplay/
system
(lots of themes)
theme-customizer -- http://maemo.org/downloads/product/Maemo5/theme-customizer/
matrix theme -- http://maemo.org/downloads/product/Maemo5/matrix-pr12/
borg sounds -- http://maemo.org/downloads/product/Maemo5/borg-sounds/
okuda theme -- http://maemo.org/downloads/product/Maemo5/hildon-theme-okuda/
cellular modem control buttons -- http://maemo.org/downloads/product/Maemo5/cell-modem-ui/
qtlockscreen -- http://maemo.org/downloads/product/Maemo5/qtlockscreen/
maemeemo theme -- http://maemo.org/downloads/product/Maemo5/maemeemo-theme/
extra translations / languages
</pre>
Other stuff to do/test:
<pre>
- N900 flashlight
- WiFi direct (p2p) on N900 & Droid 4 - https://kasiviswanathanblog.wordpress.com/wifi-p2p-in-linux/
- WiFi monitor mode (N900 & Droid 4)
- WiFi hotspot (Droid 4)
</pre>
10e0b67d3f785d1a2e224b8273c3d9ec7b4eab63
Nokia N900
0
48
865
814
2020-11-27T17:10:26Z
Wizzup
4
/* Power Management */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The Nokia N900.
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || Yes || Works fast(!)
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || Yes || Works with ofono; UI under way: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || Yes || Works with ofono, will be implemented using telepathy-ring, no UI yet
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, not enabled by default (might require pulseaudio audio filters)
|-
| Bluetooth || No || Driver problems in mainline
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on Bluetooth. [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/staging?id=757c2bf597a8e9f859f8efceda9c5108607fd98d Removed in Linux 5.4-rc1.]
|-
| Accelerometer || Yes || Available as input device, no integration yet. Needs MCE work
|-
| Compass || N/A || Missing in hardware
|-
| Proximity sensor || Yes || No integration yet
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || Missing in hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || WIP || Works using gps3 and gpsd, needs integration still, and work on a-gps
|-
| Infrared || Yes || TX only (hardware limitation).
|-
| Camera || || Needs complex v4l work
|}
== Installation ==
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to use/install Fremantle, or want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''.
To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Notes ==
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are possible concerns regarding the possibility to blow them
Also see: https://elinux.org/N900
Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
== Power Management ==
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch
<pre>
$ cat idlest.py
"""
00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000
f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046
0000000d 48004a28 (f7aa95e6) cm_idlest3_core
"""
# 31 to 0
cm_idlest1_core_bits = [
'RESERVED',
'ST_MMC3',
'ST_ICR',
'RESERVED',
'RESERVED',
'RESERVED',
'ST_MMC2',
'ST_MMC1',
'RESERVED',
'ST_HDQ',
'ST_MCSPI4',
'ST_MCSPI3',
'ST_MCSPI2',
'ST_MCSPI1',
'ST_I2C3',
'ST_I2C2',
'ST_I2C1',
'ST_UART2',
'ST_UART1',
'ST_GPT11',
'ST_GPT10',
'ST_MCBSP5',
'ST_MCBSP1',
'RESERVED',
'ST_MAILBOXES',
'ST_OMAPCTRL',
'ST_HSOTGUSB_IDLE',
'ST_HSOTGUSB_STDBY',
'RESERVED',
'ST_SDMA',
'ST_SDRC',
'RESERVED',
]
cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits))
#inp = '0020c046'
inp = '00208042' # after rmmod hci_nokia and hci_uart
v = int(inp, 16)
#print(v)
b= "{0:b}".format(v)
print((32-len(b))*'0' + b)
for i in range(0, 32):
is_set = (v & (1 << i)) >> i
if is_set:
print(cm_idlest1_core_bits[i])
</pre>
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
[[Category:Device]]
1df95c6674b3f5b3577b5574362799e0c9a32669
866
865
2020-11-27T21:10:38Z
Sicelo
5
/* Status */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The Nokia N900.
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || Yes || Works
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || Yes || Works with ofono; UI under way: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || Yes || Works with ofono, will be implemented using telepathy-ring, no UI yet
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, not enabled by default (might require pulseaudio audio filters)
|-
| Bluetooth || No || Driver problems in mainline
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/staging?id=757c2bf597a8e9f859f8efceda9c5108607fd98d Removed in Linux 5.4-rc1.]
|-
| Accelerometer || Yes || Available as input device, no integration yet. Needs MCE work
|-
| Compass || N/A || Missing in hardware
|-
| Proximity sensor || Yes || No integration yet
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || Missing in hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || WIP || Works using gps3 and gpsd, needs integration still, and work on a-gps
|-
| Infrared || Yes || TX only (hardware limitation).
|-
| Camera || || Needs complex v4l work
|}
== Installation ==
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to use/install Fremantle, or want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''.
To flash u-boot permanently, you can issue the following command '''(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Notes ==
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are possible concerns regarding the possibility to blow them
Also see: https://elinux.org/N900
Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
== Power Management ==
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch
<pre>
$ cat idlest.py
"""
00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000
f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046
0000000d 48004a28 (f7aa95e6) cm_idlest3_core
"""
# 31 to 0
cm_idlest1_core_bits = [
'RESERVED',
'ST_MMC3',
'ST_ICR',
'RESERVED',
'RESERVED',
'RESERVED',
'ST_MMC2',
'ST_MMC1',
'RESERVED',
'ST_HDQ',
'ST_MCSPI4',
'ST_MCSPI3',
'ST_MCSPI2',
'ST_MCSPI1',
'ST_I2C3',
'ST_I2C2',
'ST_I2C1',
'ST_UART2',
'ST_UART1',
'ST_GPT11',
'ST_GPT10',
'ST_MCBSP5',
'ST_MCBSP1',
'RESERVED',
'ST_MAILBOXES',
'ST_OMAPCTRL',
'ST_HSOTGUSB_IDLE',
'ST_HSOTGUSB_STDBY',
'RESERVED',
'ST_SDMA',
'ST_SDRC',
'RESERVED',
]
cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits))
#inp = '0020c046'
inp = '00208042' # after rmmod hci_nokia and hci_uart
v = int(inp, 16)
#print(v)
b= "{0:b}".format(v)
print((32-len(b))*'0' + b)
for i in range(0, 32):
is_set = (v & (1 << i)) >> i
if is_set:
print(cm_idlest1_core_bits[i])
</pre>
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
[[Category:Device]]
6d1ac3cbfbddf95ddc0580a8e1a55a9574db4023
867
866
2020-11-27T21:19:49Z
Sicelo
5
/* U-Boot setup */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The Nokia N900.
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || Yes || Works
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || Yes || Works with ofono; UI under way: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || Yes || Works with ofono, will be implemented using telepathy-ring, no UI yet
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, not enabled by default (might require pulseaudio audio filters)
|-
| Bluetooth || No || Driver problems in mainline
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/staging?id=757c2bf597a8e9f859f8efceda9c5108607fd98d Removed in Linux 5.4-rc1.]
|-
| Accelerometer || Yes || Available as input device, no integration yet. Needs MCE work
|-
| Compass || N/A || Missing in hardware
|-
| Proximity sensor || Yes || No integration yet
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || Missing in hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || WIP || Works using gps3 and gpsd, needs integration still, and work on a-gps
|-
| Infrared || Yes || TX only (hardware limitation).
|-
| Camera || || Needs complex v4l work
|}
== Installation ==
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''.
To flash u-boot permanently, you can issue the following command
'''(BE CAREFUL THOUGH. THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL. ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION OR YOU KNOW HOW TO RECOVER FROM THIS CONDITION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Notes ==
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are possible concerns regarding the possibility to blow them
Also see: https://elinux.org/N900
Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
== Power Management ==
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch
<pre>
$ cat idlest.py
"""
00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000
f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046
0000000d 48004a28 (f7aa95e6) cm_idlest3_core
"""
# 31 to 0
cm_idlest1_core_bits = [
'RESERVED',
'ST_MMC3',
'ST_ICR',
'RESERVED',
'RESERVED',
'RESERVED',
'ST_MMC2',
'ST_MMC1',
'RESERVED',
'ST_HDQ',
'ST_MCSPI4',
'ST_MCSPI3',
'ST_MCSPI2',
'ST_MCSPI1',
'ST_I2C3',
'ST_I2C2',
'ST_I2C1',
'ST_UART2',
'ST_UART1',
'ST_GPT11',
'ST_GPT10',
'ST_MCBSP5',
'ST_MCBSP1',
'RESERVED',
'ST_MAILBOXES',
'ST_OMAPCTRL',
'ST_HSOTGUSB_IDLE',
'ST_HSOTGUSB_STDBY',
'RESERVED',
'ST_SDMA',
'ST_SDRC',
'RESERVED',
]
cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits))
#inp = '0020c046'
inp = '00208042' # after rmmod hci_nokia and hci_uart
v = int(inp, 16)
#print(v)
b= "{0:b}".format(v)
print((32-len(b))*'0' + b)
for i in range(0, 32):
is_set = (v & (1 << i)) >> i
if is_set:
print(cm_idlest1_core_bits[i])
</pre>
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
[[Category:Device]]
0453337af1969671b7035ee5299258f6215bf2db
868
867
2020-11-27T21:21:57Z
Sicelo
5
/* Notes */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The Nokia N900.
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || Yes || Works
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || Yes || Works with ofono; UI under way: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || Yes || Works with ofono, will be implemented using telepathy-ring, no UI yet
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, not enabled by default (might require pulseaudio audio filters)
|-
| Bluetooth || No || Driver problems in mainline
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/staging?id=757c2bf597a8e9f859f8efceda9c5108607fd98d Removed in Linux 5.4-rc1.]
|-
| Accelerometer || Yes || Available as input device, no integration yet. Needs MCE work
|-
| Compass || N/A || Missing in hardware
|-
| Proximity sensor || Yes || No integration yet
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || Missing in hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || WIP || Works using gps3 and gpsd, needs integration still, and work on a-gps
|-
| Infrared || Yes || TX only (hardware limitation).
|-
| Camera || || Needs complex v4l work
|}
== Installation ==
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''.
To flash u-boot permanently, you can issue the following command
'''(BE CAREFUL THOUGH. THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL. ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION OR YOU KNOW HOW TO RECOVER FROM THIS CONDITION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Notes ==
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are possible concerns regarding the possibility to blow them
Also see: https://elinux.org/N900
== Power Management ==
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch
<pre>
$ cat idlest.py
"""
00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000
f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046
0000000d 48004a28 (f7aa95e6) cm_idlest3_core
"""
# 31 to 0
cm_idlest1_core_bits = [
'RESERVED',
'ST_MMC3',
'ST_ICR',
'RESERVED',
'RESERVED',
'RESERVED',
'ST_MMC2',
'ST_MMC1',
'RESERVED',
'ST_HDQ',
'ST_MCSPI4',
'ST_MCSPI3',
'ST_MCSPI2',
'ST_MCSPI1',
'ST_I2C3',
'ST_I2C2',
'ST_I2C1',
'ST_UART2',
'ST_UART1',
'ST_GPT11',
'ST_GPT10',
'ST_MCBSP5',
'ST_MCBSP1',
'RESERVED',
'ST_MAILBOXES',
'ST_OMAPCTRL',
'ST_HSOTGUSB_IDLE',
'ST_HSOTGUSB_STDBY',
'RESERVED',
'ST_SDMA',
'ST_SDRC',
'RESERVED',
]
cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits))
#inp = '0020c046'
inp = '00208042' # after rmmod hci_nokia and hci_uart
v = int(inp, 16)
#print(v)
b= "{0:b}".format(v)
print((32-len(b))*'0' + b)
for i in range(0, 32):
is_set = (v & (1 << i)) >> i
if is_set:
print(cm_idlest1_core_bits[i])
</pre>
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
[[Category:Device]]
a4fd57ebaeb81456d48d7e59b622683a647a9017
869
868
2020-11-27T21:22:11Z
Sicelo
5
/* Notes */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The Nokia N900.
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || Yes || Works
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || Yes || Works with ofono; UI under way: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || Yes || Works with ofono, will be implemented using telepathy-ring, no UI yet
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, not enabled by default (might require pulseaudio audio filters)
|-
| Bluetooth || No || Driver problems in mainline
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/staging?id=757c2bf597a8e9f859f8efceda9c5108607fd98d Removed in Linux 5.4-rc1.]
|-
| Accelerometer || Yes || Available as input device, no integration yet. Needs MCE work
|-
| Compass || N/A || Missing in hardware
|-
| Proximity sensor || Yes || No integration yet
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || Missing in hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || WIP || Works using gps3 and gpsd, needs integration still, and work on a-gps
|-
| Infrared || Yes || TX only (hardware limitation).
|-
| Camera || || Needs complex v4l work
|}
== Installation ==
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''.
To flash u-boot permanently, you can issue the following command
'''(BE CAREFUL THOUGH. THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL. ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION OR YOU KNOW HOW TO RECOVER FROM THIS CONDITION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Notes ==
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them
Also see: https://elinux.org/N900
== Power Management ==
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch
<pre>
$ cat idlest.py
"""
00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000
f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046
0000000d 48004a28 (f7aa95e6) cm_idlest3_core
"""
# 31 to 0
cm_idlest1_core_bits = [
'RESERVED',
'ST_MMC3',
'ST_ICR',
'RESERVED',
'RESERVED',
'RESERVED',
'ST_MMC2',
'ST_MMC1',
'RESERVED',
'ST_HDQ',
'ST_MCSPI4',
'ST_MCSPI3',
'ST_MCSPI2',
'ST_MCSPI1',
'ST_I2C3',
'ST_I2C2',
'ST_I2C1',
'ST_UART2',
'ST_UART1',
'ST_GPT11',
'ST_GPT10',
'ST_MCBSP5',
'ST_MCBSP1',
'RESERVED',
'ST_MAILBOXES',
'ST_OMAPCTRL',
'ST_HSOTGUSB_IDLE',
'ST_HSOTGUSB_STDBY',
'RESERVED',
'ST_SDMA',
'ST_SDRC',
'RESERVED',
]
cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits))
#inp = '0020c046'
inp = '00208042' # after rmmod hci_nokia and hci_uart
v = int(inp, 16)
#print(v)
b= "{0:b}".format(v)
print((32-len(b))*'0' + b)
for i in range(0, 32):
is_set = (v & (1 << i)) >> i
if is_set:
print(cm_idlest1_core_bits[i])
</pre>
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
[[Category:Device]]
4f07fa341b4e0cb7f9c49f57636086b3e92ac6bb
870
869
2020-11-27T21:23:22Z
Sicelo
5
/* Power Management */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The Nokia N900.
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || Yes || Works
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || Yes || Works with ofono; UI under way: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || Yes || Works with ofono, will be implemented using telepathy-ring, no UI yet
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, not enabled by default (might require pulseaudio audio filters)
|-
| Bluetooth || No || Driver problems in mainline
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/staging?id=757c2bf597a8e9f859f8efceda9c5108607fd98d Removed in Linux 5.4-rc1.]
|-
| Accelerometer || Yes || Available as input device, no integration yet. Needs MCE work
|-
| Compass || N/A || Missing in hardware
|-
| Proximity sensor || Yes || No integration yet
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || Missing in hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || WIP || Works using gps3 and gpsd, needs integration still, and work on a-gps
|-
| Infrared || Yes || TX only (hardware limitation).
|-
| Camera || || Needs complex v4l work
|}
== Installation ==
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''.
To flash u-boot permanently, you can issue the following command
'''(BE CAREFUL THOUGH. THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL. ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION OR YOU KNOW HOW TO RECOVER FROM THIS CONDITION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Notes ==
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them
Also see: https://elinux.org/N900
== Power Management ==
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch
<pre>
$ cat idlest.py
"""
00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000
f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046
0000000d 48004a28 (f7aa95e6) cm_idlest3_core
"""
# 31 to 0
cm_idlest1_core_bits = [
'RESERVED',
'ST_MMC3',
'ST_ICR',
'RESERVED',
'RESERVED',
'RESERVED',
'ST_MMC2',
'ST_MMC1',
'RESERVED',
'ST_HDQ',
'ST_MCSPI4',
'ST_MCSPI3',
'ST_MCSPI2',
'ST_MCSPI1',
'ST_I2C3',
'ST_I2C2',
'ST_I2C1',
'ST_UART2',
'ST_UART1',
'ST_GPT11',
'ST_GPT10',
'ST_MCBSP5',
'ST_MCBSP1',
'RESERVED',
'ST_MAILBOXES',
'ST_OMAPCTRL',
'ST_HSOTGUSB_IDLE',
'ST_HSOTGUSB_STDBY',
'RESERVED',
'ST_SDMA',
'ST_SDRC',
'RESERVED',
]
cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits))
#inp = '0020c046'
inp = '00208042' # after rmmod hci_nokia and hci_uart
v = int(inp, 16)
#print(v)
b= "{0:b}".format(v)
print((32-len(b))*'0' + b)
for i in range(0, 32):
is_set = (v & (1 << i)) >> i
if is_set:
print(cm_idlest1_core_bits[i])
</pre>
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
[[Category:Device]]
bdd078b628a2dc7d6440615dfe28d02368b9f8d5
Tricks
0
120
871
2020-12-07T11:29:20Z
Wizzup
4
Created page with "List of tricks:"
wikitext
text/x-wiki
List of tricks:
0b621e04d5afdf639fcc87625520dae8462bceb1
884
871
2020-12-24T05:00:59Z
Clort
42
Added Macchanger Trick, Moved barrier trick from droid4 hints.
wikitext
text/x-wiki
List of tricks:
==== Randomize MAC Address ====
Some users may wish to change the MAC address of an interface, for e.g. to prevent wifi networks associating their MAC address with their network usage pattern.
The macchanger package addresses this by either automatically or manually changing the MAC address of enabled interfaces.
<pre>apt install -y macchanger
</pre>
During installation, the package configuration allows user to select automatic change of MAC address when interface is brought up. This may interfere with USB networking. As an alternative, user can manually change the wlan0 MAC.
<pre>
macchanger wlan0 -e -a
ifconfig wlan0 up
</pre>
==== Keyboard / Mouse sharing with PC ====
To use a leste device while working at desktop it can be convenient to share mouse and keyboard of the host pc with the leste device. The 'barrier' client/server program, forked from 'synergy', allows this.
<pre>
https://github.com/debauchee/barrier Barrier software-KVM switch
</pre>
A hildonized maemo-leste binary of the client is not available at time of this writing. Developers and testers may wish to disable undesired modules included with the barrier source, before compiling.
596d693123a3c23c2790eb532922544ff6f741db
Development
0
61
872
808
2020-12-10T22:22:00Z
Sicelo
5
specify arch explicitly
wikitext
text/x-wiki
Maemo Leste development is split up in a few different places.
== Communication and organising ==
* Our https://maemo-leste.github.io website is where we post (news) updates, as well as on talk.maemo.org (see this subforum https://talk.maemo.org/forumdisplay.php?f=66 and this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192)
* There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker
* The day-to-day development and user chatter mostly takes place in the [[IRC channel]]
* We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
* This wiki: for documenting the status of various long-running projects, status per device, etc.
== Task Summary ==
For current (semi) impactful tasks, see
[[Development/Tasks]]
== Codename ==
* Maemo Leste is currently based on Devuan Beowulf, which is based on Debian Buster.
== Guides ==
* [[Development/Porting Packages]]
* [[Development/Building Packages]]
* [[Development/Modified Software]]
* [[Development/Device Bringup]]
* https://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide
== Technical ==
All our git repositories can be found here: https://github.com/maemo-leste
=== Jenkins ===
To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/
=== Developing on a device ===
Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM)
The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]].
=== Building a Maemo Leste image ===
See https://leste.maemo.org/Image_Builder
=== Crossbuilding ===
Multiarch is an ability present on modern Debian systems that allows you to build native packages for different architectures. This is nice because you can build packages for an ARM based phone using the full power of your x86 based PC/Mac/Notebook or a server.
Here we show how you can easily setup a multiarch environment and build a native package for Maemo Leste running on Nokia N900. We are going to make a container (chroot) for this job. It's because we don't want to pollute our main system.
# Make a container for our development system
DIR=/var/lib/container/stretch
sudo apt-get install qemu-user-static debootstrap &&
sudo debootstrap --arch=armhf stretch $DIR http://deb.debian.org/debian &&
echo "strech_cross" | sudo tee $DIR/etc/debian_chroot &&
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR
# Setup build environment inside the container
cat >> ~/.bashrc << EOF &&
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
export CC=arm-linux-gnueabihf-gcc
export JOBS=$(grep processor /proc/cpuinfo | wc -l)
EOF
dpkg --add-architecture armhf &&
apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates &&
cat >> /etc/apt/sources.list << "EOF" &&
deb http://maedevu.maemo.org/leste ascii main contrib non-free n900
deb http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900
deb-src http://deb.debian.org/debian stretch main
deb-src http://maedevu.maemo.org/leste ascii main contrib non-free n900
deb-src http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900
EOF
wget https://maedevu.maemo.org/testing-key.asc &&
apt-key add testing-key.asc &&
rm -f testing-key.asc &&
rm -f /var/cache/apt/archives/*.deb &&
apt-get update &&
exec bash
# Build Xorg for Nokia N900
apt-get source xserver-xorg-core &&
cd xorg-server-1.19.2 &&
wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch &&
mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches &&
echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series &&
apt-get -y build-dep -a armhf . &&
time dpkg-buildpackage -aarmhf -j$JOBS -b &&
echo OK || echo FAIL
To login the container later:
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch
To remove the container:
sudo rm -fr /var/lib/container/stretch
=== Cross-distro solution for development inside an ARM/ARM64 chroot on a PC ===
It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices.
1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]:
$ sudo apt-get install qemu-user-static binfmt-support
The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''':
$ sudo update-binfmts --display qemu-arm
qemu-arm (enabled):
package = qemu-user-static
type = magic
offset = 0
magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00
mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff
interpreter = /usr/bin/qemu-arm-static
detector =
2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it:
$ mkdir leste-arm64
$ cd leste-arm64
$ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf -
3. From the same directory, configure the chroot with a few resources from your host system:
$ sudo mount -t proc proc proc
$ sudo mount -o bind /dev dev
$ sudo mount -o bind /dev/pts dev/pts
4. From the same directory, create a symlink for the mount table:
$ sudo ln -s /proc/mounts etc/mtab
5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user:
$ sudo LC_ALL=C chroot . /bin/su - user
You'll now be ready to use your Maemo Leste ARM64 development environment:
$ uname -m
aarch64
Once you have finished with it, you can exit and unmount the resources you previously mounted:
$ exit
$ sudo umount dev/pts dev proc
=== TODO ===
* Discuss where people look to pick up issues (clear answer is the bugtracker, but still)
* How people can make changes and how to send them in
eba8a9e2901135113dca21820e111f6d0758f3db
887
872
2020-12-25T09:45:04Z
Wizzup
4
wikitext
text/x-wiki
Maemo Leste development is split up in a few different places.
== Communication and organising ==
* Our https://maemo-leste.github.io website is where we post (news) updates, as well as on talk.maemo.org (see this subforum https://talk.maemo.org/forumdisplay.php?f=66 and this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192)
* There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker
* The day-to-day development and user chatter mostly takes place in the [[IRC channel]]
* We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
* This wiki: for documenting the status of various long-running projects, status per device, etc.
== Task Summary ==
For current (semi) impactful tasks, see
[[Development/Tasks]]
== Codename ==
* Maemo Leste is currently based on Devuan Beowulf, which is based on Debian Buster.
== Guides ==
* [[Development/Porting Packages]]
* [[Development/Building Packages]]
* [[Development/Modified Software]]
* [[Development/Device Bringup]]
* https://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide
== Technical ==
All our git repositories can be found here: https://github.com/maemo-leste
=== Jenkins ===
To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/
=== Developing on a device ===
Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM)
The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]].
=== Building a Maemo Leste image ===
See https://leste.maemo.org/Image_Builder
=== List of Programs/Daemon specific to Maemo ===
https://leste.maemo.org/Development/Daemons
=== Crossbuilding ===
Multiarch is an ability present on modern Debian systems that allows you to build native packages for different architectures. This is nice because you can build packages for an ARM based phone using the full power of your x86 based PC/Mac/Notebook or a server.
Here we show how you can easily setup a multiarch environment and build a native package for Maemo Leste running on Nokia N900. We are going to make a container (chroot) for this job. It's because we don't want to pollute our main system.
# Make a container for our development system
DIR=/var/lib/container/stretch
sudo apt-get install qemu-user-static debootstrap &&
sudo debootstrap --arch=armhf stretch $DIR http://deb.debian.org/debian &&
echo "strech_cross" | sudo tee $DIR/etc/debian_chroot &&
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR
# Setup build environment inside the container
cat >> ~/.bashrc << EOF &&
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
export CC=arm-linux-gnueabihf-gcc
export JOBS=$(grep processor /proc/cpuinfo | wc -l)
EOF
dpkg --add-architecture armhf &&
apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates &&
cat >> /etc/apt/sources.list << "EOF" &&
deb http://maedevu.maemo.org/leste ascii main contrib non-free n900
deb http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900
deb-src http://deb.debian.org/debian stretch main
deb-src http://maedevu.maemo.org/leste ascii main contrib non-free n900
deb-src http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900
EOF
wget https://maedevu.maemo.org/testing-key.asc &&
apt-key add testing-key.asc &&
rm -f testing-key.asc &&
rm -f /var/cache/apt/archives/*.deb &&
apt-get update &&
exec bash
# Build Xorg for Nokia N900
apt-get source xserver-xorg-core &&
cd xorg-server-1.19.2 &&
wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch &&
mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches &&
echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series &&
apt-get -y build-dep -a armhf . &&
time dpkg-buildpackage -aarmhf -j$JOBS -b &&
echo OK || echo FAIL
To login the container later:
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch
To remove the container:
sudo rm -fr /var/lib/container/stretch
=== Cross-distro solution for development inside an ARM/ARM64 chroot on a PC ===
It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices.
1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]:
$ sudo apt-get install qemu-user-static binfmt-support
The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''':
$ sudo update-binfmts --display qemu-arm
qemu-arm (enabled):
package = qemu-user-static
type = magic
offset = 0
magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00
mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff
interpreter = /usr/bin/qemu-arm-static
detector =
2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it:
$ mkdir leste-arm64
$ cd leste-arm64
$ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf -
3. From the same directory, configure the chroot with a few resources from your host system:
$ sudo mount -t proc proc proc
$ sudo mount -o bind /dev dev
$ sudo mount -o bind /dev/pts dev/pts
4. From the same directory, create a symlink for the mount table:
$ sudo ln -s /proc/mounts etc/mtab
5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user:
$ sudo LC_ALL=C chroot . /bin/su - user
You'll now be ready to use your Maemo Leste ARM64 development environment:
$ uname -m
aarch64
Once you have finished with it, you can exit and unmount the resources you previously mounted:
$ exit
$ sudo umount dev/pts dev proc
=== TODO ===
* Discuss where people look to pick up issues (clear answer is the bugtracker, but still)
* How people can make changes and how to send them in
0a847b8aa6b89757c8231ac22198b3a642413510
Development/Daemons
0
121
885
2020-12-25T09:44:19Z
Wizzup
4
Created page with "This page documents the various daemons that run on a typical Maemo Leste system. Maemo Specific, headless: * [[Development/Daemons/dsme|dsme]] * Development/Daemons/mce|m..."
wikitext
text/x-wiki
This page documents the various daemons that run on a typical Maemo Leste system.
Maemo Specific, headless:
* [[Development/Daemons/dsme|dsme]]
* [[Development/Daemons/mce|mce]]
* [[Development/Daemons/ke-recv|ke-recv]]
* [[Development/Daemons/icd2|icd2]]
* [[Development/Daemons/clockd|clockd]]
* [[Development/Daemons/maemo-launcher|maemo-launcher]]
Maemo Specific, maybe not headless:
* [[Development/Daemons/alarmd|alarmd]]
* [[Development/Daemons/profiled|profiled]]
* [[Development/Daemons/systemui|systemui]]
* [[Development/Daemons/maemo-xinput-sounds|maemo-xinput-sounds]]
* [[Development/Daemons/hildon-input-method|hildon-input-method]]
Devuan/Debian:
* iio-sensor-proxy
* ofonod
* upowerd
* pulsaudio
* wpa_supplicant
1359211c3e3e6a2d7d3c74bb00cf1ce8cd432176
886
885
2020-12-25T09:44:41Z
Wizzup
4
wikitext
text/x-wiki
This page documents the various daemons that run on a typical Maemo Leste system.
(Work in progress)
Maemo Specific, headless:
* [[Development/Daemons/dsme|dsme]]
* [[Development/Daemons/mce|mce]]
* [[Development/Daemons/ke-recv|ke-recv]]
* [[Development/Daemons/icd2|icd2]]
* [[Development/Daemons/clockd|clockd]]
* [[Development/Daemons/maemo-launcher|maemo-launcher]]
Maemo Specific, maybe not headless:
* [[Development/Daemons/alarmd|alarmd]]
* [[Development/Daemons/profiled|profiled]]
* [[Development/Daemons/systemui|systemui]]
* [[Development/Daemons/maemo-xinput-sounds|maemo-xinput-sounds]]
* [[Development/Daemons/hildon-input-method|hildon-input-method]]
Devuan/Debian:
* iio-sensor-proxy
* ofonod
* upowerd
* pulsaudio
* wpa_supplicant
2917eb3db49e7bf39b43784e4de097c13f42e8f5
Calendar
0
109
888
835
2020-12-27T11:02:12Z
Wizzup
4
wikitext
text/x-wiki
= Calendar =
Data is stored in /home/user/.calendar/calendardb - in SQLite3 format.
== Qalendar ==
Qalendar is Qt5 implementation of the Maemo Calendar, source is here: https://github.com/maemo-leste/qalendar
It should mostly function as the Maemo calendar, see the feature comparison here: https://wiki.maemo.org/Qalendar
* cal-home-widget has also been ported
== Improvements over Fremantle Qalendar ==
* Supports landscape at dynamic resolutions (vs only 800x480)
Planned:
* Portrait support
== Synchronising ==
Install:
<pre>
apt install syncevolution
</pre>
Example URL is <b>http://localhost:5223</b> - using ssh tunneling to forward the remote radicale port to a local port. This is no by means required for operation - just pick any host that works for you.
For reference, this can be used to set up the ssh port forward if you're keen on using it (but again, just pick whatever host you want to use):
<pre>
ssh myhost -L 5223:localhost:5223
</pre>
OK, so let's configure syncevolution and do the initial sync:
<pre>
syncevolution --configure \
--template webdav \
username=USER \
password=PASS \
syncURL=http://localhost:5223/ \
target-config@radicale
syncevolution --configure \
database=http://localhost:5223/USER/UUID/ \
backend=caldavtodo \
target-config@radicale radicaletodo
syncevolution --configure \
database=http://localhost:5223/USER/UUID/ \
backend=caldavjournal \
target-config@radicale radicalejournal
syncevolution --configure \
database=http://localhost:5223/USER/UUID/ \
backend=caldav \
target-config@radicale radicalecal
syncevolution --configure \
--template SyncEvolution_Client \
sync=none \
syncURL=local://@radicale \
username= \
password= \
radicale
syncevolution --configure \
sync=two-way \
backend=maemo-tasks \
database= \
radicale radicaletodo
syncevolution --configure \
sync=two-way \
backend=maemo-notes\
database= \
radicale radicalejournal
syncevolution --configure \
sync=two-way \
backend=maemo-events \
database= \
radicale radicalecal
syncevolution --sync refresh-from-client radicale radicalejournal
syncevolution --sync refresh-from-client radicale radicaletodo
syncevolution --sync refresh-from-client radicale radicalecal
</pre>
And the next time you want to synchronise, just call:
<pre>
syncevolution --sync two-way radicale radicalejournal
syncevolution --sync two-way radicale radicaletodo
syncevolution --sync two-way radicale radicalecal
</pre>
== Syncevolution-frontend ==
The custom Maemo Syncevolution frontend has also been ported and is available in the application manager; which can be used to set up scheduled synchronisation.
Random resources:
* https://www.mail-archive.com/syncevolution@syncevolution.org/msg03379.html
* https://wiki.maemo.org/Calendar_database
* https://wiki.maemo.org/Sync
* http://maemo.org/packages/source/view/fremantle_extras-devel_free_source/syncevolution-frontend/0.12/
* https://talk.maemo.org/showthread.php?t=75810
463ebaba6bc53acf33d34e44cbfa138a67a98d70
Qt
0
122
890
2020-12-27T20:13:54Z
Wizzup
4
Created page with "(This page is work in progress. Very much so.) Maemo Leste ships with a Qt5 port as of mid 2020. This page documents how some of that works, and some tricks to modify the se..."
wikitext
text/x-wiki
(This page is work in progress. Very much so.)
Maemo Leste ships with a Qt5 port as of mid 2020.
This page documents how some of that works, and some tricks to modify the setup.
==== Using a non-maemo theme ====
Unset or override the "QT_STYLE_OVERRIDE" and "QT_QPA_PLATFORM" environments.
9be8e1b941aaf4d2f44bda5de4d5b0c1b31d8716
891
890
2020-12-27T20:14:04Z
Wizzup
4
wikitext
text/x-wiki
(This page is work in progress. Very much so.)
Maemo Leste ships with a Qt5 port as of mid 2020.
This page documents how some of that works, and some tricks to modify the setup.
==== Using a non-maemo theme ====
Unset or override the "QT_STYLE_OVERRIDE" and "QT_QPA_PLATFORM" environment variables.
8a1d84f5da37ace5b3950b46b1aeb027ecd786c9
Wishlist
0
89
893
786
2020-12-29T21:21:41Z
Rasmarc
43
/* Applications */
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
{| class="wikitable"http://maemo.org/packages/view/orecchiette/
! Package name
! Done
! Reason
! User
! URL
! Notes
|-
| osso-notes || Yes (quicknote) || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Quicknote currently packaged. Usage notes - http://wiki.maemo.org/Quicknote
|-
| pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation.
|-
| scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please
|-
| [[Games/Brainparty|brainparty]] || Yes || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ ||
|-
| Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || http://maemo.org/packages/view/orecchiette/(has also Psycho Pinball installable)
|-
| Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||http://maemo.org/packages/view/orecchiette/
|-
| Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend
|-
| PDF reader || Yes || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || libhildonfm has bugs regarding file opening dialogs that need to be fixed
|-
| Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port.
|-
| Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI
|-
| Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/
|-
| Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel
|-
|Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0
|-
| Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ ||
|-
| Image viewer/editor || Yes || || [[User:Maemish]] || https://github.com/maemo-leste-extras/mihphoto ||
|-
| Mail with imap support || No || || [[User:Maemish]] || ||
|-
| RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || ||
|-
| Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ ||
|-
| OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer ||
|-
| SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net ||
|-
| Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ ||
|-
| D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ ||
|-
| Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ ||
|-
| MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms ||
|-
| Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ ||
|-
| Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed.
|-
| Firewall || No || || [[User:Maemish]] || || Something with easy configuration.
|-
| Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ ||
|-
|bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ ||
|-
| cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ ||
|-
| gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ ||
|-|-
| hamsterfiler || No || utilities/files || [[User:ric9k]] || http://maemo.org/packages/view/hamsterfiler/ ||
|-|-
| alarmed (or cron?) || No || utilities || [[User:ric9k]] || http://maemo.org/packages/view/alarmed/ ||
|-|-
| user friendly tracker || No || utilities? || [[User:ric9k]] || n/a :-) ||
|-|-
| Maps (offline) || No || Navigation || [[User:Sicelo]] || || Ideally something like https://f-droid.org/en/packages/com.github.axet.maps/ from Android, but Modrana, https://github.com/M4rtinK/modrana may be easier as a start. [FoxtrotGPS https://www.foxtrotgps.org] might be the easiest to adapt, it is already packaged in Devuan.
|-
| Orecchiette || No || calls recording || [[User:capitannemo]] || http://maemo.org/packages/view/orecchiette/ ||
|-
| Panucci || No || audiobook || [[User:capitannemo]] || http://maemo.org/packages/view/panucci/ ||
|-
| gPodder || No || podcast || [[User:capitannemo]] || http://maemo.org/packages/view/gpodder/ ||
|-
| Symfonie || No || directory-based audioplayer || [[User:capitannemo]] || http://maemo.org/packages/view/symfonie/ ||
|-
| osso-clock || No || clock and alarms application || pavel || ||
|-
| freecell4maemo || No || freecell game || pavel || ||
|-
| [http://festvox.org/index.html CMU Flite] || ? || Accessibility (TTS) || [[User:Buffer|Buffer]] ([[User talk:Buffer|talk]]) 21:48, 2 March 2020 (UTC) || https://github.com/festvox/flite ||
|-
| Cooktimer || No || feature-rich timers || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cooktimer/0.0.4-24/ || latest from extras-devel
|-
| OpenSSH Status Widget || No || openSSH monitor and config. || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/openssh-status-widget/2.2-12/ ||
|-
| Recaller || No || record with one tap || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/recaller/2.1.0-5/ ||
|-
| NecroPlayer2 || No || directory-based audioplayer, easy playlist edit, multiple directories, very useful with recaller widget || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/necroplayer2/0.2.3/ ||
|-
| Simpler Brightness Applet || No || simple brightness applet with swapped button functions || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/simpler-brightness-applet/1.0/ ||
|)
5dd5507f2ed4e388ecbbd2753cc342a337880866
895
893
2020-12-29T23:40:24Z
Rasmarc
43
/* Applications */
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
{| class="wikitable"http://maemo.org/packages/view/orecchiette/
! Package name
! Done
! Reason
! User
! URL
! Notes
|-
| osso-notes || Yes (quicknote) || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Quicknote currently packaged. Usage notes - http://wiki.maemo.org/Quicknote
|-
| pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation.
|-
| scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please
|-
| [[Games/Brainparty|brainparty]] || Yes || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ ||
|-
| Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || http://maemo.org/packages/view/orecchiette/(has also Psycho Pinball installable)
|-
| Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||http://maemo.org/packages/view/orecchiette/
|-
| Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend
|-
| PDF reader || Yes || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || libhildonfm has bugs regarding file opening dialogs that need to be fixed
|-
| Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port.
|-
| Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI
|-
| Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/
|-
| Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel
|-
|Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0
|-
| Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ ||
|-
| Image viewer/editor || Yes || || [[User:Maemish]] || https://github.com/maemo-leste-extras/mihphoto ||
|-
| Mail with imap support || No || || [[User:Maemish]] || ||
|-
| RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || ||
|-
| Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ ||
|-
| OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer ||
|-
| SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net ||
|-
| Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ ||
|-
| D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ ||
|-
| Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ ||
|-
| MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms ||
|-
| Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ ||
|-
| Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed.
|-
| Firewall || No || || [[User:Maemish]] || || Something with easy configuration.
|-
| Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ ||
|-
|bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ ||
|-
| cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ ||
|-
| gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ ||
|-|-
| hamsterfiler || No || utilities/files || [[User:ric9k]] || http://maemo.org/packages/view/hamsterfiler/ ||
|-|-
| alarmed (or cron?) || No || utilities || [[User:ric9k]] || http://maemo.org/packages/view/alarmed/ ||
|-|-
| user friendly tracker || No || utilities? || [[User:ric9k]] || n/a :-) ||
|-|-
| Maps (offline) || No || Navigation || [[User:Sicelo]] || || Ideally something like https://f-droid.org/en/packages/com.github.axet.maps/ from Android, but Modrana, https://github.com/M4rtinK/modrana may be easier as a start. [FoxtrotGPS https://www.foxtrotgps.org] might be the easiest to adapt, it is already packaged in Devuan.
|-
| Orecchiette || No || calls recording || [[User:capitannemo]] || http://maemo.org/packages/view/orecchiette/ ||
|-
| Panucci || No || audiobook || [[User:capitannemo]] || http://maemo.org/packages/view/panucci/ ||
|-
| gPodder || No || podcast || [[User:capitannemo]] || http://maemo.org/packages/view/gpodder/ ||
|-
| Symfonie || No || directory-based audioplayer || [[User:capitannemo]] || http://maemo.org/packages/view/symfonie/ ||
|-
| osso-clock || No || clock and alarms application || pavel || ||
|-
| freecell4maemo || No || freecell game || pavel || ||
|-
| [http://festvox.org/index.html CMU Flite] || ? || Accessibility (TTS) || [[User:Buffer|Buffer]] ([[User talk:Buffer|talk]]) 21:48, 2 March 2020 (UTC) || https://github.com/festvox/flite ||
|-
| Cooktimer || No || feature-rich timers || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cooktimer/0.0.4-24/ || latest from extras-devel
|-
| OpenSSH Status Widget || No || openSSH monitor and config. || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/openssh-status-widget/2.2-12/ ||
|-
| Recaller || No || record with one tap || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/recaller/2.1.0-5/ ||
|-
| NecroPlayer2 || No || directory-based audioplayer, easy playlist edit, multiple directories, very useful with recaller widget || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/necroplayer2/0.2.3/ ||
|-
| Simpler Brightness Applet || No || simple brightness applet with single tap for backlight and long tap for settings || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/simpler-brightness-applet/1.0/ ||
|)
6445b6725956c0f473c1a2ecf2cfbef8ea7c42ad
Image Builder
0
100
896
807
2020-12-30T11:36:26Z
Parazyd
1
Update docs.
wikitext
text/x-wiki
= How to build your own images =
== Maemo 7 Leste ==
'''[https://github.com/maemo-leste/image-builder Github]'''
# Install the following packages: <pre>debootstrap curl git wget qemu-user-static build-essential rsync gcc-arm-none-eabi gcc-multilib lib32z1 u-boot-tools device-tree-compiler lzop dosfstools vboot-utils vboot-kernel-utils libftdi-dev libfdt-dev swig libpython-dev bc bison flex libssl-dev</pre>
# If you're using a distribution that is not Devuan, you will have to add a beowulf target to its scripts until the patch is merged upstream
<pre>
# wget -O /usr/share/debootstrap/scripts/ceres https://salsa.debian.org/installer-team/debootstrap/-/raw/e835c655006881af69de5476455ac0e7c824bcc4/scripts/ceres
# ln -s /usr/share/debootstrap/scripts/ceres /usr/share/debootstrap/scripts/beowulf
</pre>
# In your terminal, run the following commands:
$ git clone --recurse-submodules https://github.com/maemo-leste/image-builder.git
$ cd image-builder/arm-sdk
$ zsh -f
$ source sdk
$ load devuan DEVICE_NAME maemo
$ build_arm_dist
Note: replace <code>DEVICE_NAME</code> with your board name:
* n900
* n950
* n9
* droid4
* odroidxu
* odroidxu4
* ouya
* raspi1
* raspi2
* raspi3
* raspi4
* rock64
* pinephone-dontbeevil
* pinephone
* pinetab
* sunxi
* turbox-twister
cb8f0c005e0c5df1b79ce9e17c3fb49c5bf328ac
897
896
2020-12-30T11:37:02Z
Parazyd
1
/* How to build your own images */
wikitext
text/x-wiki
= How to build your own images =
== Maemo 7 Leste ==
'''[https://github.com/maemo-leste/image-builder Github]'''
1.) Install the following packages: <pre>debootstrap curl git wget qemu-user-static build-essential rsync gcc-arm-none-eabi gcc-multilib lib32z1 u-boot-tools device-tree-compiler lzop dosfstools vboot-utils vboot-kernel-utils libftdi-dev libfdt-dev swig libpython-dev bc bison flex libssl-dev</pre>
1.1) If you're using a distribution that is not Devuan, you will have to add a beowulf target to its scripts until the patch is merged upstream
<pre>
# wget -O /usr/share/debootstrap/scripts/ceres https://salsa.debian.org/installer-team/debootstrap/-/raw/e835c655006881af69de5476455ac0e7c824bcc4/scripts/ceres
# ln -s /usr/share/debootstrap/scripts/ceres /usr/share/debootstrap/scripts/beowulf
</pre>
2.) In your terminal, run the following commands:
$ git clone --recurse-submodules https://github.com/maemo-leste/image-builder.git
$ cd image-builder/arm-sdk
$ zsh -f
$ source sdk
$ load devuan DEVICE_NAME maemo
$ build_arm_dist
Note: replace <code>DEVICE_NAME</code> with your board name:
* n900
* n950
* n9
* droid4
* odroidxu
* odroidxu4
* ouya
* raspi1
* raspi2
* raspi3
* raspi4
* rock64
* pinephone-dontbeevil
* pinephone
* pinetab
* sunxi
* turbox-twister
5ce63b75a160a8dbd6bffbbb2d38f251ccc40cf5
Motorola Droid 4
0
50
898
882
2020-12-31T10:10:04Z
Parazyd
1
Remove audio setup; now works ootb with pulse.
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || Yes || Available in /sys, and as input device via iio-uinput
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)
|-
| Gyro || N/A ||
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No ||
|-
| Idle power consumption || ~120mW || Needs sim inserted
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab the latest image from https://phoenix.maemo.org/view/Images/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Wifi ====
The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this over SSH:
<pre>
Read modem output:
# cat /dev/motmdm1 &
Online modem:
# printf "AT+CFUN=1\r" > /dev/motmdm1
Connect to network:
# printf "AT+COPS=1\r" > /dev/motmdm1
Print connected network:
# printf "AT+COPS?\r" > /dev/motmdm1
Not sure, do it anyway:
# printf "AT+SCRN=0\r" > /dev/motmdm1
Dial a number:
# printf "ATD+1234567890\r" > /dev/motmdm1
Hang up:
# printf "ATH\r" > /dev/motmdm1
Answer incoming call:
# printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero.
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
==== HDMI ====
Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier.
<pre>
xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off
</pre>
Return to internal touchscreen display.
<pre>
xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off
</pre>
==== Keyboard / Mouse sharing with PC ====
To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4.
<pre>
[https://github.com/debauchee/barrier Barrier software-KVM switch]
</pre>
Developers and testers may wish to disable the googley bits before compiling.
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
Cant_have_2_much_leste.jpg
Leste-neverball.jpg
Statsfun.jpg
Leste-glmatrix.png
Droid4-leste-utox2.jpg
Droid4-leste-pcsx.jpg
Droid4-leste-surf_master.jpg
</gallery>
[[Category:Device]]
00205480094fb2141853d7a69f9519b986abe1c2
911
898
2021-01-09T12:59:53Z
Wizzup
4
/* Installation */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || Yes || Available in /sys, and as input device via iio-uinput
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)
|-
| Gyro || N/A ||
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No ||
|-
| Idle power consumption || ~120mW || Needs sim inserted
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
=== Updating Android ===
This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
=== Setting up kexecboot ===
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
=== Install Maemo Leste to the sdcard ===
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab the latest image from https://phoenix.maemo.org/view/Images/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Wifi ====
The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this over SSH:
<pre>
Read modem output:
# cat /dev/motmdm1 &
Online modem:
# printf "AT+CFUN=1\r" > /dev/motmdm1
Connect to network:
# printf "AT+COPS=1\r" > /dev/motmdm1
Print connected network:
# printf "AT+COPS?\r" > /dev/motmdm1
Not sure, do it anyway:
# printf "AT+SCRN=0\r" > /dev/motmdm1
Dial a number:
# printf "ATD+1234567890\r" > /dev/motmdm1
Hang up:
# printf "ATH\r" > /dev/motmdm1
Answer incoming call:
# printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero.
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
==== HDMI ====
Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier.
<pre>
xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off
</pre>
Return to internal touchscreen display.
<pre>
xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off
</pre>
==== Keyboard / Mouse sharing with PC ====
To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4.
<pre>
[https://github.com/debauchee/barrier Barrier software-KVM switch]
</pre>
Developers and testers may wish to disable the googley bits before compiling.
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
Cant_have_2_much_leste.jpg
Leste-neverball.jpg
Statsfun.jpg
Leste-glmatrix.png
Droid4-leste-utox2.jpg
Droid4-leste-pcsx.jpg
Droid4-leste-surf_master.jpg
</gallery>
[[Category:Device]]
21f97d4ec3bb50dbac5ec902cc23e5157d0fc324
Main Page
0
1
899
812
2020-12-31T11:29:15Z
BuZz
32
/* Links */
wikitext
text/x-wiki
= Description =
Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more.
You can find us on '''freenode''', channel '''#maemo-leste'''.
For an overview of the current status, you might want to check out: [[Status]]
Maemo Leste is based on Devuan Beowulf (Debian Buster) and all the "supported" devices ship with recent Linux (mainline-based) kernels.
The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers.
For some devices, we have development images available, such as the N900. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software.
If you have not used Maemo before, you might want to check out some of the tips on the [[HowTo]] page.
== Frequently Asked Questions ==
See [[Leste_FAQ|FAQ]]
== Supported Devices ==
See [[:Category:Device]]
== Latest Images ==
https://phoenix.maemo.org/view/Images/
== Development ==
See [[Development]]
== Roadmap ==
=== Project milestones ===
https://github.com/maemo-leste/bugtracker/milestones
=== Wishlist ===
You have an application you want to see in Leste? Please let us know [[Wishlist|here]].
== Talks ==
See [[Talks]]
== Links ==
<div>
The central point of meeting and talking is IRC (irc.freenode.net in #maemo-leste) and this thread: https://talk.maemo.org/showthread.php?t=100192.
*Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io]
*Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues]
*Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/]
*Our Extras Github: [https://github.com/maemo-leste-extras/ https://github.com/maemo-leste-extras/]
*Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] and https://phoenix.maemo.org/view/Images/
*Our Jenkins build server: [https://phoenix.maemo.org/ https://phoenix.maemo.org/]
*Our IRC history: [http://maedevu.maemo.org/irc.txt http://maedevu.maemo.org/irc.txt]
*Our YouTube channel: [https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w] (via [https://www.invidio.us/channel/UCgAWiHvWSuJAg5hjk7JYn1w Invidious] )
*Our Package index: [https://maedevu.maemo.org/pkgweb/ https://maedevu.maemo.org/pkgweb/] which runs [https://github.com/maemo-leste/mpi https://github.com/maemo-leste/mpi]
*Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
*RSS feed: [https://maemo-leste.github.io/feeds/all.atom.xml https://maemo-leste.github.io/feeds/all.atom.xml]
*[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)]
</div>
955641312fccf3be15a1033fe722cf3ec74fd12b
Talk:Development
1
123
900
2020-12-31T11:39:29Z
Inetdragon
44
Created page with "The instruction for cross building is for debian stretch and devuan ascii. Should it be updated to use "buster" and "beowulf""
wikitext
text/x-wiki
The instruction for cross building is for debian stretch and devuan ascii. Should it be updated to use "buster" and "beowulf"
238a814eaa023ba2fcd97c7554189e0fda86b60a
Development
0
61
901
887
2020-12-31T11:42:32Z
Inetdragon
44
For cross-building instruction, add --no-check-certificate to the wget command to fetch testing-key fetch. Otherwise, it complains
wikitext
text/x-wiki
Maemo Leste development is split up in a few different places.
== Communication and organising ==
* Our https://maemo-leste.github.io website is where we post (news) updates, as well as on talk.maemo.org (see this subforum https://talk.maemo.org/forumdisplay.php?f=66 and this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192)
* There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker
* The day-to-day development and user chatter mostly takes place in the [[IRC channel]]
* We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
* This wiki: for documenting the status of various long-running projects, status per device, etc.
== Task Summary ==
For current (semi) impactful tasks, see
[[Development/Tasks]]
== Codename ==
* Maemo Leste is currently based on Devuan Beowulf, which is based on Debian Buster.
== Guides ==
* [[Development/Porting Packages]]
* [[Development/Building Packages]]
* [[Development/Modified Software]]
* [[Development/Device Bringup]]
* https://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide
== Technical ==
All our git repositories can be found here: https://github.com/maemo-leste
=== Jenkins ===
To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/
=== Developing on a device ===
Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM)
The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]].
=== Building a Maemo Leste image ===
See https://leste.maemo.org/Image_Builder
=== List of Programs/Daemon specific to Maemo ===
https://leste.maemo.org/Development/Daemons
=== Crossbuilding ===
Multiarch is an ability present on modern Debian systems that allows you to build native packages for different architectures. This is nice because you can build packages for an ARM based phone using the full power of your x86 based PC/Mac/Notebook or a server.
Here we show how you can easily setup a multiarch environment and build a native package for Maemo Leste running on Nokia N900. We are going to make a container (chroot) for this job. It's because we don't want to pollute our main system.
# Make a container for our development system
DIR=/var/lib/container/stretch
sudo apt-get install qemu-user-static debootstrap &&
sudo debootstrap --arch=armhf stretch $DIR http://deb.debian.org/debian &&
echo "strech_cross" | sudo tee $DIR/etc/debian_chroot &&
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR
# Setup build environment inside the container
cat >> ~/.bashrc << EOF &&
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
export CC=arm-linux-gnueabihf-gcc
export JOBS=$(grep processor /proc/cpuinfo | wc -l)
EOF
dpkg --add-architecture armhf &&
apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates &&
cat >> /etc/apt/sources.list << "EOF" &&
deb http://maedevu.maemo.org/leste ascii main contrib non-free n900
deb http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900
deb-src http://deb.debian.org/debian stretch main
deb-src http://maedevu.maemo.org/leste ascii main contrib non-free n900
deb-src http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900
EOF
wget --no-check-certificate https://maedevu.maemo.org/testing-key.asc &&
apt-key add testing-key.asc &&
rm -f testing-key.asc &&
rm -f /var/cache/apt/archives/*.deb &&
apt-get update &&
exec bash
# Build Xorg for Nokia N900
apt-get source xserver-xorg-core &&
cd xorg-server-1.19.2 &&
wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch &&
mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches &&
echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series &&
apt-get -y build-dep -a armhf . &&
time dpkg-buildpackage -aarmhf -j$JOBS -b &&
echo OK || echo FAIL
To login the container later:
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch
To remove the container:
sudo rm -fr /var/lib/container/stretch
=== Cross-distro solution for development inside an ARM/ARM64 chroot on a PC ===
It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices.
1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]:
$ sudo apt-get install qemu-user-static binfmt-support
The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''':
$ sudo update-binfmts --display qemu-arm
qemu-arm (enabled):
package = qemu-user-static
type = magic
offset = 0
magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00
mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff
interpreter = /usr/bin/qemu-arm-static
detector =
2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it:
$ mkdir leste-arm64
$ cd leste-arm64
$ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf -
3. From the same directory, configure the chroot with a few resources from your host system:
$ sudo mount -t proc proc proc
$ sudo mount -o bind /dev dev
$ sudo mount -o bind /dev/pts dev/pts
4. From the same directory, create a symlink for the mount table:
$ sudo ln -s /proc/mounts etc/mtab
5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user:
$ sudo LC_ALL=C chroot . /bin/su - user
You'll now be ready to use your Maemo Leste ARM64 development environment:
$ uname -m
aarch64
Once you have finished with it, you can exit and unmount the resources you previously mounted:
$ exit
$ sudo umount dev/pts dev proc
=== TODO ===
* Discuss where people look to pick up issues (clear answer is the bugtracker, but still)
* How people can make changes and how to send them in
21dc2b97d3e4292a62b19d06fdfc9b7c19514b3b
902
901
2020-12-31T17:33:49Z
Inetdragon
44
Add systemd-container to the container setup package. systemd-nspawn needs it
wikitext
text/x-wiki
Maemo Leste development is split up in a few different places.
== Communication and organising ==
* Our https://maemo-leste.github.io website is where we post (news) updates, as well as on talk.maemo.org (see this subforum https://talk.maemo.org/forumdisplay.php?f=66 and this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192)
* There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker
* The day-to-day development and user chatter mostly takes place in the [[IRC channel]]
* We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
* This wiki: for documenting the status of various long-running projects, status per device, etc.
== Task Summary ==
For current (semi) impactful tasks, see
[[Development/Tasks]]
== Codename ==
* Maemo Leste is currently based on Devuan Beowulf, which is based on Debian Buster.
== Guides ==
* [[Development/Porting Packages]]
* [[Development/Building Packages]]
* [[Development/Modified Software]]
* [[Development/Device Bringup]]
* https://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide
== Technical ==
All our git repositories can be found here: https://github.com/maemo-leste
=== Jenkins ===
To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/
=== Developing on a device ===
Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM)
The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]].
=== Building a Maemo Leste image ===
See https://leste.maemo.org/Image_Builder
=== List of Programs/Daemon specific to Maemo ===
https://leste.maemo.org/Development/Daemons
=== Crossbuilding ===
Multiarch is an ability present on modern Debian systems that allows you to build native packages for different architectures. This is nice because you can build packages for an ARM based phone using the full power of your x86 based PC/Mac/Notebook or a server.
Here we show how you can easily setup a multiarch environment and build a native package for Maemo Leste running on Nokia N900. We are going to make a container (chroot) for this job. It's because we don't want to pollute our main system.
# Make a container for our development system
DIR=/var/lib/container/stretch
sudo apt-get install qemu-user-static debootstrap systemd-container &&
sudo debootstrap --arch=armhf stretch $DIR http://deb.debian.org/debian &&
echo "strech_cross" | sudo tee $DIR/etc/debian_chroot &&
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR
# Setup build environment inside the container
cat >> ~/.bashrc << EOF &&
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
export CC=arm-linux-gnueabihf-gcc
export JOBS=$(grep processor /proc/cpuinfo | wc -l)
EOF
dpkg --add-architecture armhf &&
apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates &&
cat >> /etc/apt/sources.list << "EOF" &&
deb http://maedevu.maemo.org/leste ascii main contrib non-free n900
deb http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900
deb-src http://deb.debian.org/debian stretch main
deb-src http://maedevu.maemo.org/leste ascii main contrib non-free n900
deb-src http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900
EOF
wget --no-check-certificate https://maedevu.maemo.org/testing-key.asc &&
apt-key add testing-key.asc &&
rm -f testing-key.asc &&
rm -f /var/cache/apt/archives/*.deb &&
apt-get update &&
exec bash
# Build Xorg for Nokia N900
apt-get source xserver-xorg-core &&
cd xorg-server-1.19.2 &&
wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch &&
mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches &&
echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series &&
apt-get -y build-dep -a armhf . &&
time dpkg-buildpackage -aarmhf -j$JOBS -b &&
echo OK || echo FAIL
To login the container later:
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch
To remove the container:
sudo rm -fr /var/lib/container/stretch
=== Cross-distro solution for development inside an ARM/ARM64 chroot on a PC ===
It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices.
1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]:
$ sudo apt-get install qemu-user-static binfmt-support
The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''':
$ sudo update-binfmts --display qemu-arm
qemu-arm (enabled):
package = qemu-user-static
type = magic
offset = 0
magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00
mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff
interpreter = /usr/bin/qemu-arm-static
detector =
2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it:
$ mkdir leste-arm64
$ cd leste-arm64
$ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf -
3. From the same directory, configure the chroot with a few resources from your host system:
$ sudo mount -t proc proc proc
$ sudo mount -o bind /dev dev
$ sudo mount -o bind /dev/pts dev/pts
4. From the same directory, create a symlink for the mount table:
$ sudo ln -s /proc/mounts etc/mtab
5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user:
$ sudo LC_ALL=C chroot . /bin/su - user
You'll now be ready to use your Maemo Leste ARM64 development environment:
$ uname -m
aarch64
Once you have finished with it, you can exit and unmount the resources you previously mounted:
$ exit
$ sudo umount dev/pts dev proc
=== TODO ===
* Discuss where people look to pick up issues (clear answer is the bugtracker, but still)
* How people can make changes and how to send them in
50447df2059632813a6e54d6979294b7ab1efb78
Qt
0
122
903
891
2021-01-05T00:02:20Z
Dreamer
31
add some use-flags for style and xcb
wikitext
text/x-wiki
(This page is work in progress. Very much so.)
Maemo Leste ships with a Qt5 port as of mid 2020.
This page documents how some of that works, and some tricks to modify the setup.
==== Using a non-maemo theme ====
Unset or override the "QT_STYLE_OVERRIDE" and "QT_QPA_PLATFORM" environment variables.
You can also add the flag "-style=fusion" to set the style.
==== Menus are not working ====
Add the flag "-platform xcb". This enforces the libxcb bindings https://xcb.freedesktop.org/ and may help.
43561f7bbd2930e3f6b49d8ee2152513c8484247
Nokia N9
0
55
904
156
2021-01-05T10:17:33Z
Parazyd
1
Add device info
wikitext
text/x-wiki
{{Infobox Device
|image=
|manufacturer=Nokia
|codename=Lankku
|dimensions=116.5x61.2x12.1mm
|release_date=September 2011
|soc=TI OMAP3630
|dram=1024M
|power=
|lcd=480x854 3.9" AMOLED
|video=PowerVR SGX530
|audio=
|network=
|storage=16/64GB flash
|usb=
|camera=
|sensors=
|other=
}}
[[Category:Device]]
foo
878f471fa656b71c4dbcd87faf30925044357faa
905
904
2021-01-05T10:23:44Z
Parazyd
1
Add WIP installation
wikitext
text/x-wiki
{{Infobox Device
|image=
|manufacturer=Nokia
|codename=Lankku
|dimensions=116.5x61.2x12.1mm
|release_date=September 2011
|soc=TI OMAP3630
|dram=1024M
|power=
|lcd=480x854 3.9" AMOLED
|video=PowerVR SGX530
|audio=
|network=
|storage=16/64GB flash
|usb=
|camera=
|sensors=
|other=
}}
[[Category:Device]]
== Status ==
TODO
== Installation ==
In Harmattan, go to '''Settings->Applications->Installations''' and enable '''Allow installation from non-Store sources'''.
Then connect to WiFi and navigate to http://maedevu.maemo.org/images/n9/n9repomirror_0.7.2_armel.deb and install the package.
After installation, go to '''Settings->Security->Developer mode''' and enable '''Developer mode'''. Your device will do some
operations and then reboot. Once rebooted, reconnect to WiFi if necessary and go back to '''Settings->Security->Developer mode'''
and install '''Debugging''' (other packages as a plus). Now you should have a Terminal app.
b0d69e2f839f9dda7498e1f7f919a3181a7ae5ef
906
905
2021-01-05T13:16:09Z
Parazyd
1
Add ubiboot instructions
wikitext
text/x-wiki
{{Infobox Device
|image=
|manufacturer=Nokia
|codename=Lankku
|dimensions=116.5x61.2x12.1mm
|release_date=September 2011
|soc=TI OMAP3630
|dram=1024M
|power=
|lcd=480x854 3.9" AMOLED
|video=PowerVR SGX530
|audio=
|network=
|storage=16/64GB flash
|usb=
|camera=
|sensors=
|other=
}}
[[Category:Device]]
== Status ==
TODO
== Installation ==
'''WORK IN PROGRESS'''
In Harmattan, go to '''Settings->Applications->Installations''' and enable '''Allow installation from non-Store sources'''.
Then connect to WiFi and navigate to http://maedevu.maemo.org/images/n9/n9repomirror_0.7.2_armel.deb and install the package.
After installation, go to '''Settings->Security->Developer mode''' and enable '''Developer mode'''. Your device will do some
operations and then reboot. Once rebooted, reconnect to WiFi if necessary and go back to '''Settings->Security->Developer mode'''
and install '''Debugging''' (other packages as a plus). Now you should have a Terminal app.
For root access, in the terminal you can type:
$ devel-su
Password: rootme
For ssh access, set a password for the user:
$ devel-su
# passwd user
Then you can ssh:
$ ssh user@RM696
Remove openmode warning:
$ devel-su
# disclaimer-cal remove View-openmode
Download ubiboot (on device):
$ mkdir -p /home/user/MyDocs/boot && cd /home/user/MyDocs/boot
$ wget http://maedevu.maemo.org/images/n9/ubiboot-02_0.3.5_301013.tar
$ tar xf ubiboot-02_0.3.5_301013.tar
$ rm ubiboot-02_0.3.5_301013.tar
$ md5sum *
e76ed3f0cf0cc172f668b970ae778a71 md5sums.txt
d1e1a6eb6d877f53a01e946a5ccf5017 ubiboot-02.menus.cpio
adfbdc7d6cca6638b2dd079105d8daeb ubiboot.conf
d6d7081cffe2684944f141bc9a71fea9 zImage_2.6.32.54-ubiboot-02_301013
$ devel-su
# cd /boot
# wget http://maedevu.maemo.org/images/n9/zImage_2.6.32.54-openmode_l2fix
# cd /
# wget http://maedevu.maemo.org/images/n9/preinits.tar
# md5sum preinits.tar
515a8e1e5506f45afbc139c137d496b7 preinits.tar
# tar xf preinits.tar
# rm preinits.tar
Put your device in Upgrade mode:
$ lsusb
Bus 001 Device 084: ID 0421:0105 Nokia Mobile Phones Nokia Firmware Upgrade Mode
Disable watchdogs:
# 0xFFFF -F no-omap-wd,no-ext-wd,no-lifeguard-reset
Power off the N9 completely, and run flasher to flash ubiboot kernel, then connect the N9 with USB:
# flasher -a firmware.bin -k zImage_2.6.32.54-ubiboot-02_301013 --flash-only=kernel -f -R
If everything was performed correctly, the device should boot in an animated bootmenu if you disconnected
the USB cable, or maintenance mode if USB is still connected.
3a87566972e9ae8e4663038413b2c41162c1f670
907
906
2021-01-05T13:22:38Z
Parazyd
1
/* Installation */
wikitext
text/x-wiki
{{Infobox Device
|image=
|manufacturer=Nokia
|codename=Lankku
|dimensions=116.5x61.2x12.1mm
|release_date=September 2011
|soc=TI OMAP3630
|dram=1024M
|power=
|lcd=480x854 3.9" AMOLED
|video=PowerVR SGX530
|audio=
|network=
|storage=16/64GB flash
|usb=
|camera=
|sensors=
|other=
}}
[[Category:Device]]
== Status ==
TODO
== Installation ==
'''WORK IN PROGRESS'''
In Harmattan, go to '''Settings->Applications->Installations''' and enable '''Allow installation from non-Store sources'''.
Then connect to WiFi and navigate to http://maedevu.maemo.org/images/n9/n9repomirror_0.7.2_armel.deb and install the package.
After installation, go to '''Settings->Security->Developer mode''' and enable '''Developer mode'''. Your device will do some
operations and then reboot. Once rebooted, reconnect to WiFi if necessary and go back to '''Settings->Security->Developer mode'''
and install '''Debugging''' (other packages as a plus). Now you should have a Terminal app.
For root access, in the terminal you can type:
$ devel-su
Password: rootme
For ssh access, set a password for the user:
$ devel-su
# passwd user
Then you can ssh:
$ ssh user@RM696
Remove openmode warning:
$ devel-su
# disclaimer-cal remove View-openmode
Download ubiboot (on device):
$ mkdir -p /home/user/MyDocs/boot && cd /home/user/MyDocs/boot
$ wget http://maedevu.maemo.org/images/n9/ubiboot-02_0.3.5_301013.tar
$ tar xf ubiboot-02_0.3.5_301013.tar
$ rm ubiboot-02_0.3.5_301013.tar
$ md5sum *
e76ed3f0cf0cc172f668b970ae778a71 md5sums.txt
d1e1a6eb6d877f53a01e946a5ccf5017 ubiboot-02.menus.cpio
adfbdc7d6cca6638b2dd079105d8daeb ubiboot.conf
d6d7081cffe2684944f141bc9a71fea9 zImage_2.6.32.54-ubiboot-02_301013
$ devel-su
# cd /boot
# wget http://maedevu.maemo.org/images/n9/zImage_2.6.32.54-openmode_l2fix
# cd /
# wget http://maedevu.maemo.org/images/n9/preinits.tar
# md5sum preinits.tar
515a8e1e5506f45afbc139c137d496b7 preinits.tar
# tar xf preinits.tar
# rm preinits.tar
Put your device in Upgrade mode:
$ lsusb
Bus 001 Device 084: ID 0421:0105 Nokia Mobile Phones Nokia Firmware Upgrade Mode
Disable watchdogs:
# 0xFFFF -F no-omap-wd,no-ext-wd,no-lifeguard-reset
Power off the N9 completely, and run flasher to flash ubiboot kernel, then connect the N9 with USB:
# flasher -a firmware.bin -k zImage_2.6.32.54-ubiboot-02_301013 --flash-only=kernel -f -R
If everything was performed correctly, the device should boot in an animated bootmenu if you disconnected
the USB cable, or maintenance mode if USB is still connected.
== Partitioning ==
https://talk.maemo.org/showthread.php?t=91914
05adff06fb964de3a3a2f9863b010f8201598f4e
908
907
2021-01-05T13:25:53Z
Parazyd
1
wikitext
text/x-wiki
{{Infobox Device
|image=
|manufacturer=Nokia
|codename=Lankku
|dimensions=116.5x61.2x12.1mm
|release_date=September 2011
|soc=TI OMAP3630
|dram=1024M
|power=
|lcd=480x854 3.9" AMOLED
|video=PowerVR SGX530
|audio=
|network=
|storage=16/64GB flash
|usb=
|camera=
|sensors=
|other=
}}
[[Category:Device]]
== Status ==
TODO
== Partitioning ==
https://talk.maemo.org/showthread.php?t=91914
== Installation ==
'''WORK IN PROGRESS'''
In Harmattan, go to '''Settings->Applications->Installations''' and enable '''Allow installation from non-Store sources'''.
Then connect to WiFi and navigate to http://maedevu.maemo.org/images/n9/n9repomirror_0.7.2_armel.deb and install the package.
After installation, go to '''Settings->Security->Developer mode''' and enable '''Developer mode'''. Your device will do some
operations and then reboot. Once rebooted, reconnect to WiFi if necessary and go back to '''Settings->Security->Developer mode'''
and install '''Debugging''' (other packages as a plus). Now you should have a Terminal app.
For root access, in the terminal you can type:
$ devel-su
Password: rootme
For ssh access, set a password for the user:
$ devel-su
# passwd user
Then you can ssh:
$ ssh user@RM696
Remove openmode warning:
$ devel-su
# disclaimer-cal remove View-openmode
Download ubiboot (on device):
$ mkdir -p /home/user/MyDocs/boot && cd /home/user/MyDocs/boot
$ wget http://maedevu.maemo.org/images/n9/ubiboot-02_0.3.5_301013.tar
$ tar xf ubiboot-02_0.3.5_301013.tar
$ rm ubiboot-02_0.3.5_301013.tar
$ md5sum *
e76ed3f0cf0cc172f668b970ae778a71 md5sums.txt
d1e1a6eb6d877f53a01e946a5ccf5017 ubiboot-02.menus.cpio
adfbdc7d6cca6638b2dd079105d8daeb ubiboot.conf
d6d7081cffe2684944f141bc9a71fea9 zImage_2.6.32.54-ubiboot-02_301013
$ devel-su
# cd /boot
# wget http://maedevu.maemo.org/images/n9/zImage_2.6.32.54-openmode_l2fix
# cd /
# wget http://maedevu.maemo.org/images/n9/preinits.tar
# md5sum preinits.tar
515a8e1e5506f45afbc139c137d496b7 preinits.tar
# tar xf preinits.tar
# rm preinits.tar
Put your device in Upgrade mode:
$ lsusb
Bus 001 Device 084: ID 0421:0105 Nokia Mobile Phones Nokia Firmware Upgrade Mode
Disable watchdogs:
# 0xFFFF -F no-omap-wd,no-ext-wd,no-lifeguard-reset
Power off the N9 completely, and run flasher to flash ubiboot kernel, then connect the N9 with USB:
# flasher -a firmware.bin -k zImage_2.6.32.54-ubiboot-02_301013 --flash-only=kernel -f -R
If everything was performed correctly, the device should boot in an animated bootmenu if you disconnected
the USB cable, or maintenance mode if USB is still connected.
35f705a92bd1e406aff2f70279e96800b29e32bf
909
908
2021-01-05T13:34:07Z
Parazyd
1
wikitext
text/x-wiki
{{Infobox Device
|image=
|manufacturer=Nokia
|codename=Lankku
|dimensions=116.5x61.2x12.1mm
|release_date=September 2011
|soc=TI OMAP3630
|dram=1024M
|power=
|lcd=480x854 3.9" AMOLED
|video=PowerVR SGX530
|audio=
|network=
|storage=16/64GB flash
|usb=
|camera=
|sensors=
|other=
}}
[[Category:Device]]
== Status ==
TODO
== Mainline Linux ==
14:49 <sre> tmlind: parazyd: not sure if you found my old n9/50 display branch already (I did not read full history since you pinged me). I think only this patch is needed to get display output on n9/50:
https://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-n900.git/commit/?h=n950-display-tony&id=d4cbc226a30b29bf2583ffff97b052c9ec68c8a3
14:52 <parazyd> I have these: https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-n9-patches
14:52 <parazyd> But it's 4.16
14:59 <sre> parazyd: ok, 4.16 is... old. Basically the features for the first four patches reached mainline. Patches 5-7 add automatic rotation and have not yet been integrated,
but screen works without them (one just needs to rotate
manually). Also they are easy to rebase and I don't see any problems upstreaming them after Tomi's cleanup series has landed.
14:59 <sre> The 'rotation' property is already documented in DT bindings :) Finally patch 8 is required on OMAP3 devices and has not yet been upstreamed either. Without that display does not work at all on n9/50.
15:00 <sre> Also on mainline the DSI command mode panel driver works like the other DRM panel drivers, so the panel timing is described in the driver instead of DT.
15:00 <sre> so support for "nokia,pyrenees" needs to be added in the driver instead of describing the timings in DT
== Partitioning ==
https://talk.maemo.org/showthread.php?t=91914
== Installation ==
'''WORK IN PROGRESS'''
In Harmattan, go to '''Settings->Applications->Installations''' and enable '''Allow installation from non-Store sources'''.
Then connect to WiFi and navigate to http://maedevu.maemo.org/images/n9/n9repomirror_0.7.2_armel.deb and install the package.
After installation, go to '''Settings->Security->Developer mode''' and enable '''Developer mode'''. Your device will do some
operations and then reboot. Once rebooted, reconnect to WiFi if necessary and go back to '''Settings->Security->Developer mode'''
and install '''Debugging''' (other packages as a plus). Now you should have a Terminal app.
For root access, in the terminal you can type:
$ devel-su
Password: rootme
For ssh access, set a password for the user:
$ devel-su
# passwd user
Then you can ssh:
$ ssh user@RM696
Remove openmode warning:
$ devel-su
# disclaimer-cal remove View-openmode
Download ubiboot (on device):
$ mkdir -p /home/user/MyDocs/boot && cd /home/user/MyDocs/boot
$ wget http://maedevu.maemo.org/images/n9/ubiboot-02_0.3.5_301013.tar
$ tar xf ubiboot-02_0.3.5_301013.tar
$ rm ubiboot-02_0.3.5_301013.tar
$ md5sum *
e76ed3f0cf0cc172f668b970ae778a71 md5sums.txt
d1e1a6eb6d877f53a01e946a5ccf5017 ubiboot-02.menus.cpio
adfbdc7d6cca6638b2dd079105d8daeb ubiboot.conf
d6d7081cffe2684944f141bc9a71fea9 zImage_2.6.32.54-ubiboot-02_301013
$ devel-su
# cd /boot
# wget http://maedevu.maemo.org/images/n9/zImage_2.6.32.54-openmode_l2fix
# cd /
# wget http://maedevu.maemo.org/images/n9/preinits.tar
# md5sum preinits.tar
515a8e1e5506f45afbc139c137d496b7 preinits.tar
# tar xf preinits.tar
# rm preinits.tar
Put your device in Upgrade mode:
$ lsusb
Bus 001 Device 084: ID 0421:0105 Nokia Mobile Phones Nokia Firmware Upgrade Mode
Disable watchdogs:
# 0xFFFF -F no-omap-wd,no-ext-wd,no-lifeguard-reset
Power off the N9 completely, and run flasher to flash ubiboot kernel, then connect the N9 with USB:
# flasher -a firmware.bin -k zImage_2.6.32.54-ubiboot-02_301013 --flash-only=kernel -f -R
If everything was performed correctly, the device should boot in an animated bootmenu if you disconnected
the USB cable, or maintenance mode if USB is still connected.
0bfa97d38b743fd64cd32809b343c2042de08781
Virtual Machine
0
60
910
761
2021-01-06T10:26:59Z
Kgoetz
45
expand on virt manager
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Generic
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
Generic virtual machine target. This is particularly useful when doing development and testing.
== Installation ==
https://maedevu.maemo.org/images/virtual-machines/
There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration.
Converting the qcow2 image to raw allows it to be used on real hardware.
=== VirtualBox ===
Download latest .vdi.xz image, unpack it with "xz -d" command.
Create new Virtual Machine, select "Debian (64-bit)" and 1024MB RAM. Use the downloaded file as virtual hard disk.
You are done!
=== QEMU ===
In general something like:
qemu-system-x86_64 -hda maemo-leste-1.0-amd64.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024
should work. But there seem to be issues with some QEMU versions, for more details see [https://github.com/maemo-leste/bugtracker/issues/198 issue#198].
To set up a port forward for SSH, add:
-nic user,hostfwd=tcp:127.0.0.1:7722-:22
And then log in like this (password: <code>toor</code>):
ssh root@localhost -p 7722
If the mouse pointer is grabbed and no cursor shows, you can add:
-usb -device usb-tablet
to the command line. Alternatively if that dose not work you can instead add:
-usb -device usb-mouse -machine vmport=off
If you have a USB modem you can also use that in QEMU. You can either use sudo to elevate your privileges to be able to use it:
sudo qemu-system-x86_64 -hda maemo-leste-1.0-amd64-virtual-20200324.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024 \
-nic user,hostfwd=tcp:127.0.0.1:7722-:22 \
-usb -device usb-ehci,id=ehci \
-device usb-host,bus=ehci.0,vendorid=0x0bdb,productid=0x193e
Or you can make a udev rule for your device. For example, with a Lenovo Ericsson N5321 gw you can create "/etc/udev/rules.d/45-n5321.rules" with this in it:
# Lenovo Ericsson N5321 gw simple udev rule
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="193e", \
MODE:="0666"
And then activate it by running these two commands as root:
# udevadm control --reload-rules
# udevadm trigger
Now you can run QEMU without the need for sudo!
=== virt-manager ===
Virt-manager can use multiple virtualisation backends via libvirt and its default is QEMU/KVM, allowing easy importing of the QEMU image.
The following tweaks need to be done when importing (before starting the instance) to ensure the qemu image works correctly.
* Change the disk driver from VirtIO to sata; there is an [https://github.com/maemo-leste/bugtracker/issues/291 outstanding bug] with how drives are mounted.
* In some situations changing from QVA to VGA may be required (see [https://github.com/maemo-leste/bugtracker/issues/291 the previously linked] issue.
== Initial configuration ==
On the first run you may want to generate ssh host keys and set the timezone. To do so open the "X Terminal" application and run:
sudo su -
dpkg-reconfigure openssh-server
dpkg-reconfigure tzdata
Make the system up-to-date:
apt update
apt upgrade
apt install linux-image-amd64
reboot
To get networking to work (at least in virtualbox), launch a shell and do
sudo ifconfig eth0 up
sudo dhclient eth0
== Connectivity ==
If you have a modem exposed to QEMU, you still need to do some steps manually to get connectivity.
First off you need to add the development APT repository to your APT sources:
# echo 'deb https://maedevu.maemo.org/leste beowulf-devel main contrib non-free' >> /etc/apt/sources.list
Now update and upgrade:
# apt update && apt upgrade
Then you can install these things:
# apt install ofono libicd-network-ofono connui-iapsettings-gprs connui-statusbar-cellular connui-home-cellular connui-cellular-settings connui-conndlgs-cellular
We need mdbus2 to manipulate oFono:
# wget http://ftp.nl.debian.org/debian/pool/main/m/mdbus/mdbus2_2.3.3-2_amd64.deb
# dpkg -i mdbus2_2.3.3-2_amd64.deb
Then we can check if oFono finds our modem:
# mdbus2 -s org.ofono
/
/bluetooth
/bluetooth/profile
/bluetooth/profile/dun_gw
/bluetooth/profile/hfp_ag
/bluetooth/profile/hfp_hf
/mbm_0
Then can check our mbm_0 modem:
# mdbus2 -s org.ofono /mbm_0
[METHOD] org.freedesktop.DBus.Introspectable.Introspect() -> (s:xml)
[METHOD] org.ofono.Modem.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.Modem.SetProperty(s:property, v:value) -> ()
[SIGNAL] org.ofono.Modem.PropertyChanged(s:name, v:value)
# mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.GetProperties
({'Online': <false>, 'Powered': <false>, 'Lockdown': <false>, 'Emergency': <false>, 'SystemPath': <'/sys/devices/pci0000:00/0000:00:04.0/usb1/1-1'>, 'Interfaces': <@as []>, 'Features': <@as []>, 'Type': <'hardware'>},)
Power on the modem:
# mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.SetProperty Powered true
()
# mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.GetProperties
({'Online': <false>, 'Powered': <true>, 'Lockdown': <false>, 'Emergency': <false>, 'Manufacturer': <'Lenovo'>, 'Model': <'N5321 gw'>, 'Revision': <'R3C11'>, 'Serial': <'xxxxxxxxxxxx'>, 'SystemPath': <'/sys/devices/pci0000:00/0000:00:04.0/usb1/1-1'>, 'Interfaces': <['org.ofono.SimManager']>, 'Features': <['sim']>, 'Type': <'hardware'>},)
Check if we need to enter a pin:
# mdbus2 -s org.ofono /mbm_0 org.ofono.SimManager.GetProperties
({'Present': <true>, 'CardIdentifier': <'xxxxxx'>, 'FixedDialing': <false>, 'BarredDialing': <false>, 'SubscriberNumbers': <@as []>, 'LockedPins': <['pin']>, 'PreferredLanguages': <['de', 'en', 'fr']>, 'PinRequired': <'pin'>, 'Retries': <{'pin': byte 0x03, 'pin2': 0x03, 'puk': 0x0a, 'puk2': 0x0a}>, 'CardSlotCount': <uint32 1>, 'ActiveCardSlot': <uint32 1>},)
If PinRequired is 'pin' we need to enter a pin to unlock the sim:
# mdbus2 -s org.ofono /mbm_0 org.ofono.SimManager.EnterPin pin 1234
()
Then we can bring the modem online:
# mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.SetProperty Online true
()
If we now redo the first mdbus2 command on /mbm_0:
# mdbus2 -s org.ofono /mbm_0
[METHOD] org.freedesktop.DBus.Introspectable.Introspect() -> (s:xml)
[METHOD] org.ofono.Modem.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.Modem.SetProperty(s:property, v:value) -> ()
[SIGNAL] org.ofono.Modem.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.SimManager.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.SimManager.SetProperty(s:property, v:value) -> ()
[METHOD] org.ofono.SimManager.ChangePin(s:type, s:oldpin, s:newpin) -> ()
[METHOD] org.ofono.SimManager.EnterPin(s:type, s:pin) -> ()
[METHOD] org.ofono.SimManager.ResetPin(s:type, s:puk, s:newpin) -> ()
[METHOD] org.ofono.SimManager.LockPin(s:type, s:pin) -> ()
[METHOD] org.ofono.SimManager.UnlockPin(s:type, s:pin) -> ()
[METHOD] org.ofono.SimManager.GetIcon(y:id) -> (ay:icon)
[SIGNAL] org.ofono.SimManager.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.AllowedAccessPoints.GetAllowedAccessPoints() -> (as:apnlist)
[METHOD] org.ofono.SimAuthentication.GetApplications() -> (a{oa{sv}}:applications)
[METHOD] org.ofono.SimAuthentication.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.SimToolkit.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.SimToolkit.SelectItem(y:item, o:agent) -> ()
[METHOD] org.ofono.SimToolkit.RegisterAgent(o:path) -> ()
[METHOD] org.ofono.SimToolkit.UnregisterAgent(o:path) -> ()
[SIGNAL] org.ofono.SimToolkit.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.RadioSettings.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.RadioSettings.SetProperty(s:property, v:value) -> ()
[SIGNAL] org.ofono.RadioSettings.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.MessageManager.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.MessageManager.SetProperty(s:property, v:value) -> ()
[METHOD] org.ofono.MessageManager.SendMessage(s:to, s:text) -> (o:path)
[METHOD] org.ofono.MessageManager.GetMessages() -> (a(oa{sv}):messages)
[SIGNAL] org.ofono.MessageManager.PropertyChanged(s:name, v:value)
[SIGNAL] org.ofono.MessageManager.IncomingMessage(s:message, a{sv}:info)
[SIGNAL] org.ofono.MessageManager.ImmediateMessage(s:message, a{sv}:info)
[SIGNAL] org.ofono.MessageManager.MessageAdded(o:path, a{sv}:properties)
[SIGNAL] org.ofono.MessageManager.MessageRemoved(o:path)
[METHOD] org.ofono.PushNotification.RegisterAgent(o:path) -> ()
[METHOD] org.ofono.PushNotification.UnregisterAgent(o:path) -> ()
[METHOD] org.ofono.SmartMessaging.RegisterAgent(o:path) -> ()
[METHOD] org.ofono.SmartMessaging.UnregisterAgent(o:path) -> ()
[METHOD] org.ofono.SmartMessaging.SendBusinessCard(s:to, ay:card) -> (o:path)
[METHOD] org.ofono.SmartMessaging.SendAppointment(s:to, ay:appointment) -> (o:path)
[METHOD] org.ofono.LocationReporting.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.LocationReporting.Request() -> (h:fd)
[METHOD] org.ofono.LocationReporting.Release() -> ()
[SIGNAL] org.ofono.LocationReporting.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.SupplementaryServices.Initiate(s:command) -> (s:result_name, v:value)
[METHOD] org.ofono.SupplementaryServices.Respond(s:reply) -> (s:result)
[METHOD] org.ofono.SupplementaryServices.Cancel() -> ()
[METHOD] org.ofono.SupplementaryServices.GetProperties() -> (a{sv}:properties)
[SIGNAL] org.ofono.SupplementaryServices.NotificationReceived(s:message)
[SIGNAL] org.ofono.SupplementaryServices.RequestReceived(s:message)
[SIGNAL] org.ofono.SupplementaryServices.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.CellBroadcast.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.CellBroadcast.SetProperty(s:property, v:value) -> ()
[SIGNAL] org.ofono.CellBroadcast.PropertyChanged(s:property, v:value)
[SIGNAL] org.ofono.CellBroadcast.IncomingBroadcast(s:message, q:channel)
[SIGNAL] org.ofono.CellBroadcast.EmergencyBroadcast(s:message, a{sv}:dict)
[METHOD] org.ofono.ConnectionManager.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.ConnectionManager.SetProperty(s:property, v:value) -> ()
[METHOD] org.ofono.ConnectionManager.AddContext(s:type) -> (o:path)
[METHOD] org.ofono.ConnectionManager.RemoveContext(o:path) -> ()
[METHOD] org.ofono.ConnectionManager.DeactivateAll() -> ()
[METHOD] org.ofono.ConnectionManager.GetContexts() -> (a(oa{sv}):contexts_with_properties)
[METHOD] org.ofono.ConnectionManager.ResetContexts() -> ()
[SIGNAL] org.ofono.ConnectionManager.PropertyChanged(s:name, v:value)
[SIGNAL] org.ofono.ConnectionManager.ContextAdded(o:path, a{sv}:properties)
[SIGNAL] org.ofono.ConnectionManager.ContextRemoved(o:path)
[METHOD] org.ofono.NetworkRegistration.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.NetworkRegistration.Register() -> ()
[METHOD] org.ofono.NetworkRegistration.GetOperators() -> (a(oa{sv}):operators_with_properties)
[METHOD] org.ofono.NetworkRegistration.Scan() -> (a(oa{sv}):operators_with_properties)
[SIGNAL] org.ofono.NetworkRegistration.PropertyChanged(s:name, v:value)
[[Category:Device]]
6f72a7909976db08c32e98d450a106d3b33518f3
Tweaking
0
104
912
719
2021-01-11T16:30:48Z
Wizzup
4
Clock now works
wikitext
text/x-wiki
Maemo Leste is very tweakable/hackable/versatile, this page lists some of the things you could change, hopefully grouped in a meaningful manner.
==== Battery icon ====
You can change the animation of the charging icon to show the current charge capacity:
<pre>gconftool-2 -s /apps/osso/status-area-applet-battery/show_charge_charging -t bool true</pre>
fc0753bd1a2546c26a740656ef582d1702590665
Wishlist
0
89
913
895
2021-01-11T21:33:49Z
Derby
3
/* Applications */
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
{| class="wikitable"http://maemo.org/packages/view/orecchiette/
! Package name
! Done
! Reason
! User
! URL
! Notes
|-
| osso-notes || Yes (quicknote) || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Quicknote currently packaged. Usage notes - http://wiki.maemo.org/Quicknote
|-
| pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation.
|-
| scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please
|-
| [[Games/Brainparty|brainparty]] || Yes || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ ||
|-
| Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || http://maemo.org/packages/view/orecchiette/(has also Psycho Pinball installable)
|-
| Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||http://maemo.org/packages/view/orecchiette/
|-
| Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend
|-
| PDF reader || Yes || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || libhildonfm has bugs regarding file opening dialogs that need to be fixed
|-
| Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port.
|-
| Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI
|-
| Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/
|-
| Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel
|-
|Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0
|-
| Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ ||
|-
| Image viewer/editor || Yes || || [[User:Maemish]] || https://github.com/maemo-leste-extras/mihphoto ||
|-
| Mail with imap support || No || || [[User:Maemish]] || ||
|-
| RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || ||
|-
| Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ ||
|-
| OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer ||
|-
| SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net ||
|-
| Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ ||
|-
| D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ ||
|-
| Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ ||
|-
| MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms ||
|-
| Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ ||
|-
| Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed.
|-
| Firewall || No || || [[User:Maemish]] || || Something with easy configuration.
|-
| Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ ||
|-
|bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ ||
|-
| cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ ||
|-
| gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ ||
|-|-
| hamsterfiler || No || utilities/files || [[User:ric9k]] || http://maemo.org/packages/view/hamsterfiler/ ||
|-|-
| alarmed (or cron?) || No || utilities || [[User:ric9k]] || http://maemo.org/packages/view/alarmed/ ||
|-|-
| user friendly tracker || No || utilities? || [[User:ric9k]] || n/a :-) ||
|-|-
| Maps (offline) || No || Navigation || [[User:Sicelo]] || || Ideally something like https://f-droid.org/en/packages/com.github.axet.maps/ from Android, but Modrana, https://github.com/M4rtinK/modrana may be easier as a start. [FoxtrotGPS https://www.foxtrotgps.org] might be the easiest to adapt, it is already packaged in Devuan.
|-
| Orecchiette || No || calls recording || [[User:capitannemo]] || http://maemo.org/packages/view/orecchiette/ ||
|-
| Panucci || No || audiobook || [[User:capitannemo]] || http://maemo.org/packages/view/panucci/ ||
|-
| gPodder || No || podcast || [[User:capitannemo]] || http://maemo.org/packages/view/gpodder/ ||
|-
| Symfonie || No || directory-based audioplayer || [[User:capitannemo]] || http://maemo.org/packages/view/symfonie/ ||
|-
| osso-clock || No || clock and alarms application || pavel || ||
|-
| freecell4maemo || No || freecell game || pavel || ||
|-
| [http://festvox.org/index.html CMU Flite] || ? || Accessibility (TTS) || [[User:Buffer|Buffer]] ([[User talk:Buffer|talk]]) 21:48, 2 March 2020 (UTC) || https://github.com/festvox/flite ||
|-
| Cooktimer || No || feature-rich timers || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cooktimer/0.0.4-24/ || latest from extras-devel
|-
| OpenSSH Status Widget || No || openSSH monitor and config. || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/openssh-status-widget/2.2-12/ ||
|-
| Recaller || No || record with one tap || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/recaller/2.1.0-5/ ||
|-
| NecroPlayer2 || No || directory-based audioplayer, easy playlist edit, multiple directories, very useful with recaller widget || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/necroplayer2/0.2.3/ ||
|-
| Simpler Brightness Applet || No || simple brightness applet with single tap for backlight and long tap for settings || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/simpler-brightness-applet/1.0/ ||
|)
|-
| telepathy-signal || No || The best open source alternative to WhatsApp should be ready for use with Maemo Leste || [[User:Derby]] || https://github.com/signalapp/Signal-Desktop ; https://github.com/AsamK/signal-cli || This is a suggestion to create a Telepathy connection manager for Signal. Although the Signal [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=842943 Desktop] and [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=926807 CLI] can be installed, they are not yet available in Debian. In any case, it would be great to have a Telepathy connection manager for Signal to provide seamless integration with Maemo.
db75cda0eb4d9a2ccaf83a45966e95cc154f9c9c
918
913
2021-01-15T00:48:39Z
Wizzup
4
brightness applet is done https://maedevu.maemo.org/pkgweb/search?q=simple-brightness-applet
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
{| class="wikitable"http://maemo.org/packages/view/orecchiette/
! Package name
! Done
! Reason
! User
! URL
! Notes
|-
| osso-notes || Yes (quicknote) || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Quicknote currently packaged. Usage notes - http://wiki.maemo.org/Quicknote
|-
| pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation.
|-
| scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please
|-
| [[Games/Brainparty|brainparty]] || Yes || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ ||
|-
| Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || http://maemo.org/packages/view/orecchiette/(has also Psycho Pinball installable)
|-
| Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||http://maemo.org/packages/view/orecchiette/
|-
| Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend
|-
| PDF reader || Yes || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || libhildonfm has bugs regarding file opening dialogs that need to be fixed
|-
| Calendar app || No || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port.
|-
| Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI
|-
| Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/
|-
| Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel
|-
|Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0
|-
| Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ ||
|-
| Image viewer/editor || Yes || || [[User:Maemish]] || https://github.com/maemo-leste-extras/mihphoto ||
|-
| Mail with imap support || No || || [[User:Maemish]] || ||
|-
| RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || ||
|-
| Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ ||
|-
| OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer ||
|-
| SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net ||
|-
| Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ ||
|-
| D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ ||
|-
| Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ ||
|-
| MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms ||
|-
| Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ ||
|-
| Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed.
|-
| Firewall || No || || [[User:Maemish]] || || Something with easy configuration.
|-
| Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ ||
|-
|bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ ||
|-
| cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ ||
|-
| gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ ||
|-|-
| hamsterfiler || No || utilities/files || [[User:ric9k]] || http://maemo.org/packages/view/hamsterfiler/ ||
|-|-
| alarmed (or cron?) || No || utilities || [[User:ric9k]] || http://maemo.org/packages/view/alarmed/ ||
|-|-
| user friendly tracker || No || utilities? || [[User:ric9k]] || n/a :-) ||
|-|-
| Maps (offline) || No || Navigation || [[User:Sicelo]] || || Ideally something like https://f-droid.org/en/packages/com.github.axet.maps/ from Android, but Modrana, https://github.com/M4rtinK/modrana may be easier as a start. [FoxtrotGPS https://www.foxtrotgps.org] might be the easiest to adapt, it is already packaged in Devuan.
|-
| Orecchiette || No || calls recording || [[User:capitannemo]] || http://maemo.org/packages/view/orecchiette/ ||
|-
| Panucci || No || audiobook || [[User:capitannemo]] || http://maemo.org/packages/view/panucci/ ||
|-
| gPodder || No || podcast || [[User:capitannemo]] || http://maemo.org/packages/view/gpodder/ ||
|-
| Symfonie || No || directory-based audioplayer || [[User:capitannemo]] || http://maemo.org/packages/view/symfonie/ ||
|-
| osso-clock || No || clock and alarms application || pavel || ||
|-
| freecell4maemo || No || freecell game || pavel || ||
|-
| [http://festvox.org/index.html CMU Flite] || ? || Accessibility (TTS) || [[User:Buffer|Buffer]] ([[User talk:Buffer|talk]]) 21:48, 2 March 2020 (UTC) || https://github.com/festvox/flite ||
|-
| Cooktimer || No || feature-rich timers || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cooktimer/0.0.4-24/ || latest from extras-devel
|-
| OpenSSH Status Widget || No || openSSH monitor and config. || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/openssh-status-widget/2.2-12/ ||
|-
| Recaller || No || record with one tap || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/recaller/2.1.0-5/ ||
|-
| NecroPlayer2 || No || directory-based audioplayer, easy playlist edit, multiple directories, very useful with recaller widget || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/necroplayer2/0.2.3/ ||
|-
| Simpler Brightness Applet || Yes || simple brightness applet with single tap for backlight and long tap for settings || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/simpler-brightness-applet/1.0/ ||
|)
|-
| telepathy-signal || No || The best open source alternative to WhatsApp should be ready for use with Maemo Leste || [[User:Derby]] || https://github.com/signalapp/Signal-Desktop ; https://github.com/AsamK/signal-cli || This is a suggestion to create a Telepathy connection manager for Signal. Although the Signal [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=842943 Desktop] and [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=926807 CLI] can be installed, they are not yet available in Debian. In any case, it would be great to have a Telepathy connection manager for Signal to provide seamless integration with Maemo.
c140ba57c71a702d010c32bbe441a51548f72150
919
918
2021-01-15T00:48:58Z
Wizzup
4
Qalendar is done https://maedevu.maemo.org/pkgweb/search?q=qalendar
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
{| class="wikitable"http://maemo.org/packages/view/orecchiette/
! Package name
! Done
! Reason
! User
! URL
! Notes
|-
| osso-notes || Yes (quicknote) || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Quicknote currently packaged. Usage notes - http://wiki.maemo.org/Quicknote
|-
| pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation.
|-
| scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please
|-
| [[Games/Brainparty|brainparty]] || Yes || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ ||
|-
| Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || http://maemo.org/packages/view/orecchiette/(has also Psycho Pinball installable)
|-
| Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||http://maemo.org/packages/view/orecchiette/
|-
| Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend
|-
| PDF reader || Yes || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || libhildonfm has bugs regarding file opening dialogs that need to be fixed
|-
| Calendar app || Yes || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port.
|-
| Alarm clock || ? || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI
|-
| Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/
|-
| Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel
|-
|Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0
|-
| Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ ||
|-
| Image viewer/editor || Yes || || [[User:Maemish]] || https://github.com/maemo-leste-extras/mihphoto ||
|-
| Mail with imap support || No || || [[User:Maemish]] || ||
|-
| RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || ||
|-
| Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ ||
|-
| OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer ||
|-
| SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net ||
|-
| Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ ||
|-
| D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ ||
|-
| Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ ||
|-
| MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms ||
|-
| Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ ||
|-
| Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed.
|-
| Firewall || No || || [[User:Maemish]] || || Something with easy configuration.
|-
| Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ ||
|-
|bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ ||
|-
| cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ ||
|-
| gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ ||
|-|-
| hamsterfiler || No || utilities/files || [[User:ric9k]] || http://maemo.org/packages/view/hamsterfiler/ ||
|-|-
| alarmed (or cron?) || No || utilities || [[User:ric9k]] || http://maemo.org/packages/view/alarmed/ ||
|-|-
| user friendly tracker || No || utilities? || [[User:ric9k]] || n/a :-) ||
|-|-
| Maps (offline) || No || Navigation || [[User:Sicelo]] || || Ideally something like https://f-droid.org/en/packages/com.github.axet.maps/ from Android, but Modrana, https://github.com/M4rtinK/modrana may be easier as a start. [FoxtrotGPS https://www.foxtrotgps.org] might be the easiest to adapt, it is already packaged in Devuan.
|-
| Orecchiette || No || calls recording || [[User:capitannemo]] || http://maemo.org/packages/view/orecchiette/ ||
|-
| Panucci || No || audiobook || [[User:capitannemo]] || http://maemo.org/packages/view/panucci/ ||
|-
| gPodder || No || podcast || [[User:capitannemo]] || http://maemo.org/packages/view/gpodder/ ||
|-
| Symfonie || No || directory-based audioplayer || [[User:capitannemo]] || http://maemo.org/packages/view/symfonie/ ||
|-
| osso-clock || No || clock and alarms application || pavel || ||
|-
| freecell4maemo || No || freecell game || pavel || ||
|-
| [http://festvox.org/index.html CMU Flite] || ? || Accessibility (TTS) || [[User:Buffer|Buffer]] ([[User talk:Buffer|talk]]) 21:48, 2 March 2020 (UTC) || https://github.com/festvox/flite ||
|-
| Cooktimer || No || feature-rich timers || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cooktimer/0.0.4-24/ || latest from extras-devel
|-
| OpenSSH Status Widget || No || openSSH monitor and config. || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/openssh-status-widget/2.2-12/ ||
|-
| Recaller || No || record with one tap || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/recaller/2.1.0-5/ ||
|-
| NecroPlayer2 || No || directory-based audioplayer, easy playlist edit, multiple directories, very useful with recaller widget || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/necroplayer2/0.2.3/ ||
|-
| Simpler Brightness Applet || Yes || simple brightness applet with single tap for backlight and long tap for settings || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/simpler-brightness-applet/1.0/ ||
|)
|-
| telepathy-signal || No || The best open source alternative to WhatsApp should be ready for use with Maemo Leste || [[User:Derby]] || https://github.com/signalapp/Signal-Desktop ; https://github.com/AsamK/signal-cli || This is a suggestion to create a Telepathy connection manager for Signal. Although the Signal [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=842943 Desktop] and [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=926807 CLI] can be installed, they are not yet available in Debian. In any case, it would be great to have a Telepathy connection manager for Signal to provide seamless integration with Maemo.
622184e20cace50b7189348687f0f3c3eacbbc12
920
919
2021-01-15T00:49:25Z
Wizzup
4
Alarm clock UI is done https://maedevu.maemo.org/pkgweb/search?q=clock-ui
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
{| class="wikitable"http://maemo.org/packages/view/orecchiette/
! Package name
! Done
! Reason
! User
! URL
! Notes
|-
| osso-notes || Yes (quicknote) || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Quicknote currently packaged. Usage notes - http://wiki.maemo.org/Quicknote
|-
| pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation.
|-
| scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please
|-
| [[Games/Brainparty|brainparty]] || Yes || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ ||
|-
| Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || http://maemo.org/packages/view/orecchiette/(has also Psycho Pinball installable)
|-
| Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||http://maemo.org/packages/view/orecchiette/
|-
| Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend
|-
| PDF reader || Yes || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || libhildonfm has bugs regarding file opening dialogs that need to be fixed
|-
| Calendar app || Yes || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port.
|-
| Alarm clock || Yes || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI
|-
| Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/
|-
| Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel
|-
|Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0
|-
| Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ ||
|-
| Image viewer/editor || Yes || || [[User:Maemish]] || https://github.com/maemo-leste-extras/mihphoto ||
|-
| Mail with imap support || No || || [[User:Maemish]] || ||
|-
| RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || ||
|-
| Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ ||
|-
| OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer ||
|-
| SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net ||
|-
| Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ ||
|-
| D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ ||
|-
| Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ ||
|-
| MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms ||
|-
| Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ ||
|-
| Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed.
|-
| Firewall || No || || [[User:Maemish]] || || Something with easy configuration.
|-
| Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ ||
|-
|bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ ||
|-
| cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ ||
|-
| gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ ||
|-|-
| hamsterfiler || No || utilities/files || [[User:ric9k]] || http://maemo.org/packages/view/hamsterfiler/ ||
|-|-
| alarmed (or cron?) || No || utilities || [[User:ric9k]] || http://maemo.org/packages/view/alarmed/ ||
|-|-
| user friendly tracker || No || utilities? || [[User:ric9k]] || n/a :-) ||
|-|-
| Maps (offline) || No || Navigation || [[User:Sicelo]] || || Ideally something like https://f-droid.org/en/packages/com.github.axet.maps/ from Android, but Modrana, https://github.com/M4rtinK/modrana may be easier as a start. [FoxtrotGPS https://www.foxtrotgps.org] might be the easiest to adapt, it is already packaged in Devuan.
|-
| Orecchiette || No || calls recording || [[User:capitannemo]] || http://maemo.org/packages/view/orecchiette/ ||
|-
| Panucci || No || audiobook || [[User:capitannemo]] || http://maemo.org/packages/view/panucci/ ||
|-
| gPodder || No || podcast || [[User:capitannemo]] || http://maemo.org/packages/view/gpodder/ ||
|-
| Symfonie || No || directory-based audioplayer || [[User:capitannemo]] || http://maemo.org/packages/view/symfonie/ ||
|-
| osso-clock || No || clock and alarms application || pavel || ||
|-
| freecell4maemo || No || freecell game || pavel || ||
|-
| [http://festvox.org/index.html CMU Flite] || ? || Accessibility (TTS) || [[User:Buffer|Buffer]] ([[User talk:Buffer|talk]]) 21:48, 2 March 2020 (UTC) || https://github.com/festvox/flite ||
|-
| Cooktimer || No || feature-rich timers || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cooktimer/0.0.4-24/ || latest from extras-devel
|-
| OpenSSH Status Widget || No || openSSH monitor and config. || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/openssh-status-widget/2.2-12/ ||
|-
| Recaller || No || record with one tap || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/recaller/2.1.0-5/ ||
|-
| NecroPlayer2 || No || directory-based audioplayer, easy playlist edit, multiple directories, very useful with recaller widget || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/necroplayer2/0.2.3/ ||
|-
| Simpler Brightness Applet || Yes || simple brightness applet with single tap for backlight and long tap for settings || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/simpler-brightness-applet/1.0/ ||
|)
|-
| telepathy-signal || No || The best open source alternative to WhatsApp should be ready for use with Maemo Leste || [[User:Derby]] || https://github.com/signalapp/Signal-Desktop ; https://github.com/AsamK/signal-cli || This is a suggestion to create a Telepathy connection manager for Signal. Although the Signal [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=842943 Desktop] and [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=926807 CLI] can be installed, they are not yet available in Debian. In any case, it would be great to have a Telepathy connection manager for Signal to provide seamless integration with Maemo.
569f6a00cca98efde27081bc67a6d0d2d3caa450
921
920
2021-01-15T00:52:20Z
Wizzup
4
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
{| class="wikitable"http://maemo.org/packages/view/orecchiette/
! Package name
! Done
! Reason
! User
! URL
! Notes
|-
| osso-notes || Yes (quicknote) || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Quicknote currently packaged. Usage notes - http://wiki.maemo.org/Quicknote
|-
| pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation.
|-
| scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please
|-
| [[Games/Brainparty|brainparty]] || Yes || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ ||
|-
| Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || http://maemo.org/packages/view/orecchiette/(has also Psycho Pinball installable)
|-
| Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||http://maemo.org/packages/view/orecchiette/
|-
| Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend
|-
| PDF reader || Yes || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || libhildonfm has bugs regarding file opening dialogs that need to be fixed
|-
| Calendar app || Yes || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port.
|-
| Alarm clock || Yes || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI
|-
| Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/
|-
| Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel
|-
|Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0
|-
| Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ ||
|-
| Image viewer/editor || Yes || || [[User:Maemish]] || https://github.com/maemo-leste-extras/mihphoto ||
|-
| Mail with imap support || No || || [[User:Maemish]] || ||
|-
| RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || ||
|-
| Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ ||
|-
| OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer ||
|-
| SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net ||
|-
| Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ ||
|-
| D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ ||
|-
| Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ ||
|-
| MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms ||
|-
| Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ ||
|-
| Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed.
|-
| Firewall || No || || [[User:Maemish]] || || Something with easy configuration.
|-
| Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ ||
|-
|bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ ||
|-
| cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ ||
|-
| gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ ||
|-|-
| hamsterfiler || WIP [https://github.com/maemo-leste/bugtracker/issues/499] || utilities/files || [[User:ric9k]] || http://maemo.org/packages/view/hamsterfiler/ ||
|-|-
| alarmed (or cron?) || No || utilities || [[User:ric9k]] || http://maemo.org/packages/view/alarmed/ ||
|-|-
| user friendly tracker || No || utilities? || [[User:ric9k]] || n/a :-) ||
|-|-
| Maps (offline) || No || Navigation || [[User:Sicelo]] || || Ideally something like https://f-droid.org/en/packages/com.github.axet.maps/ from Android, but Modrana, https://github.com/M4rtinK/modrana may be easier as a start. [FoxtrotGPS https://www.foxtrotgps.org] might be the easiest to adapt, it is already packaged in Devuan.
|-
| Orecchiette || No || calls recording || [[User:capitannemo]] || http://maemo.org/packages/view/orecchiette/ ||
|-
| Panucci || No || audiobook || [[User:capitannemo]] || http://maemo.org/packages/view/panucci/ ||
|-
| gPodder || No || podcast || [[User:capitannemo]] || http://maemo.org/packages/view/gpodder/ ||
|-
| Symfonie || No || directory-based audioplayer || [[User:capitannemo]] || http://maemo.org/packages/view/symfonie/ ||
|-
| osso-clock || No || clock and alarms application || pavel || ||
|-
| freecell4maemo || No || freecell game || pavel || ||
|-
| [http://festvox.org/index.html CMU Flite] || ? || Accessibility (TTS) || [[User:Buffer|Buffer]] ([[User talk:Buffer|talk]]) 21:48, 2 March 2020 (UTC) || https://github.com/festvox/flite ||
|-
| Cooktimer || No || feature-rich timers || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cooktimer/0.0.4-24/ || latest from extras-devel
|-
| OpenSSH Status Widget || No || openSSH monitor and config. || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/openssh-status-widget/2.2-12/ ||
|-
| Recaller || No || record with one tap || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/recaller/2.1.0-5/ ||
|-
| NecroPlayer2 || No || directory-based audioplayer, easy playlist edit, multiple directories, very useful with recaller widget || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/necroplayer2/0.2.3/ ||
|-
| Simpler Brightness Applet || Yes || simple brightness applet with single tap for backlight and long tap for settings || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/simpler-brightness-applet/1.0/ ||
|)
|-
| telepathy-signal || No || The best open source alternative to WhatsApp should be ready for use with Maemo Leste || [[User:Derby]] || https://github.com/signalapp/Signal-Desktop ; https://github.com/AsamK/signal-cli || This is a suggestion to create a Telepathy connection manager for Signal. Although the Signal [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=842943 Desktop] and [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=926807 CLI] can be installed, they are not yet available in Debian. In any case, it would be great to have a Telepathy connection manager for Signal to provide seamless integration with Maemo.
b6d7a45016cb5720cb24ffa814633cea396fa120
922
921
2021-01-15T00:52:52Z
Wizzup
4
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
{| class="wikitable"http://maemo.org/packages/view/orecchiette/
! Package name
! Done
! Reason
! User
! URL
! Notes
|-
| osso-notes || Yes (quicknote) || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Quicknote currently packaged. Usage notes - http://wiki.maemo.org/Quicknote
|-
| pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation.
|-
| scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please
|-
| [[Games/Brainparty|brainparty]] || Yes || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ ||
|-
| Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || http://maemo.org/packages/view/orecchiette/(has also Psycho Pinball installable)
|-
| Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||http://maemo.org/packages/view/orecchiette/
|-
| Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend
|-
| PDF reader || Yes || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || libhildonfm has bugs regarding file opening dialogs that need to be fixed
|-
| Calendar app || Yes || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port.
|-
| Alarm clock || Yes || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI
|-
| Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/
|-
| Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel
|-
|Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0
|-
| Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ ||
|-
| Image viewer/editor || Yes || || [[User:Maemish]] || https://github.com/maemo-leste-extras/mihphoto ||
|-
| Mail with imap support || No || || [[User:Maemish]] || ||
|-
| RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || ||
|-
| Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ ||
|-
| OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer ||
|-
| SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net ||
|-
| Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ ||
|-
| D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ ||
|-
| Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ ||
|-
| MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms ||
|-
| Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ ||
|-
| Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed.
|-
| Firewall || No || || [[User:Maemish]] || || Something with easy configuration.
|-
| Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ ||
|-
|bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ ||
|-
| cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ ||
|-
| gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ ||
|-|-
| hamsterfiler || WIP [https://github.com/maemo-leste/bugtracker/issues/499] || utilities/files || [[User:ric9k]] || http://maemo.org/packages/view/hamsterfiler/ ||
|-|-
| alarmed (or cron?) || No || utilities || [[User:ric9k]] || http://maemo.org/packages/view/alarmed/ ||
|-|-
| user friendly tracker || No || utilities? || [[User:ric9k]] || n/a :-) ||
|-|-
| Maps (offline) || No || Navigation || [[User:Sicelo]] || || Ideally something like https://f-droid.org/en/packages/com.github.axet.maps/ from Android, but Modrana, https://github.com/M4rtinK/modrana may be easier as a start. [FoxtrotGPS https://www.foxtrotgps.org] might be the easiest to adapt, it is already packaged in Devuan.
|-
| Orecchiette || No || calls recording || [[User:capitannemo]] || http://maemo.org/packages/view/orecchiette/ ||
|-
| Panucci || No || audiobook || [[User:capitannemo]] || http://maemo.org/packages/view/panucci/ ||
|-
| gPodder || No || podcast || [[User:capitannemo]] || http://maemo.org/packages/view/gpodder/ ||
|-
| Symfonie || No || directory-based audioplayer || [[User:capitannemo]] || http://maemo.org/packages/view/symfonie/ ||
|-
| osso-clock || Yes (clock-ui) || clock and alarms application || pavel || ||
|-
| freecell4maemo || No || freecell game || pavel || ||
|-
| [http://festvox.org/index.html CMU Flite] || ? || Accessibility (TTS) || [[User:Buffer|Buffer]] ([[User talk:Buffer|talk]]) 21:48, 2 March 2020 (UTC) || https://github.com/festvox/flite ||
|-
| Cooktimer || No || feature-rich timers || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cooktimer/0.0.4-24/ || latest from extras-devel
|-
| OpenSSH Status Widget || No || openSSH monitor and config. || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/openssh-status-widget/2.2-12/ ||
|-
| Recaller || No || record with one tap || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/recaller/2.1.0-5/ ||
|-
| NecroPlayer2 || No || directory-based audioplayer, easy playlist edit, multiple directories, very useful with recaller widget || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/necroplayer2/0.2.3/ ||
|-
| Simpler Brightness Applet || Yes || simple brightness applet with single tap for backlight and long tap for settings || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/simpler-brightness-applet/1.0/ ||
|)
|-
| telepathy-signal || No || The best open source alternative to WhatsApp should be ready for use with Maemo Leste || [[User:Derby]] || https://github.com/signalapp/Signal-Desktop ; https://github.com/AsamK/signal-cli || This is a suggestion to create a Telepathy connection manager for Signal. Although the Signal [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=842943 Desktop] and [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=926807 CLI] can be installed, they are not yet available in Debian. In any case, it would be great to have a Telepathy connection manager for Signal to provide seamless integration with Maemo.
71e02ed48e3501db77325849975d5db4db166116
Development/Tasks
0
92
914
816
2021-01-15T00:43:57Z
Wizzup
4
wikitext
text/x-wiki
== Applications ==
This page lists some of the more important open issues for Maemo Leste. We have a complete list here, on github, but it's a bit hard to navigate: https://github.com/maemo-leste/bugtracker/issues
{| class="wikitable"
! Task
! Description
! Task Status
! User(s) working on task
! GH Bug
! URLs
! Notes
|-
| Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || DONE || [[User:ThomasAH]], Spinal84 || https://github.com/maemo-leste/ke-recv/pull/2 ; https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || ke-recv part for slide monitoring is in place, we just need live keyboard-attached monitoring now. https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda). mer-core (sailfish/nemomobile) has keyboard monitoring integrated into mce, so we could also look at (using) that
|-
| Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. <b>Funding is available for this task</b> || WIP/TODO || || https://github.com/maemo-leste/bugtracker/issues/261 || || Some work was done in the past
|-
| Qt5 of theme and hildon widgets || Significant task || MOSTLY || [[User:freemangordon]] made a start, [[User:Wizzup]] picked up some of the work || || https://github.com/maemo-leste/qtstyleplugins/ + https://github.com/maemo-leste/qt-platform-maemo/tree/qmenu || Mainly usable already!
|-
| Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 ? || *MAYBE* Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || DONE (by staying at clutter 0.8) || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches ||
|-
| libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || WIP || || || ||
|-
| Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || wIP || Tony, Pavel and [[User:Wizzup]] are working on this || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 ||
|-
| Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || DONE || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ ||
|-
| Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || https://github.com/maemo-leste/bugtracker/issues/256 || https://github.com/maemo-leste/connui-cellular ||
|-
| Test phone calls on the N900 || Figure out cmtspeechdata magic || WIP? || [[User:Wizzup]], [[User:Sicelo]], Pavel || || ||
|-
| Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || WORKS || [[User:Wizzup]], [[User:Sicelo]] || || ||
|-
| Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || WIP || ? || || ||
|-
|"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || WIP || [[User:Parazyd]] || || ||
|-
| Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || WIP || [[User:Wizzup]], tmlind || || || Actually works quite well on the droid4. Let's do the same for Droid4. :)
|-
| osso-abook || We need osso-abook in place for all applications that need contacts (phone ui, sms ui, email ui, more) || WIP || [[User:freemangordon]] || ||https://github.com/maemo-leste/osso-abook || Making good progress
|-
| hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || DONE || [[User:minicom]], [[User:Wizzup]], [[User:Parazyd]] || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc.
|-
| Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || DONE || || || ||
|-
| Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || DONE || [[User:freemangordon]] || || ||
|-
| Port all packages for maemo-leste to debhelper 9 or higher || Requires for us to migrate to a newer Debian (Buster) / Devuan (Beowulf) || DONE || [[User:Parazyd]], [[User:Wizzup]], [[User:meridion]], [[User:Spinal84]] || https://github.com/maemo-leste/bugtracker/issues/234 || ||
|-
|}
aa6d56ae14fe5e2e3469d58661e31a33b0476f95
915
914
2021-01-15T00:44:20Z
Wizzup
4
wikitext
text/x-wiki
== Applications ==
This page lists some of the more important open issues for Maemo Leste. We have a complete list here, on github, but it's a bit hard to navigate: https://github.com/maemo-leste/bugtracker/issues
{| class="wikitable"
! Task
! Description
! Task Status
! User(s) working on task
! GH Bug
! URLs
! Notes
|-
| Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || DONE || [[User:ThomasAH]], Spinal84 || https://github.com/maemo-leste/ke-recv/pull/2 ; https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || ke-recv part for slide monitoring is in place, we just need live keyboard-attached monitoring now. https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda). mer-core (sailfish/nemomobile) has keyboard monitoring integrated into mce, so we could also look at (using) that
|-
| Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. <b>Funding is available for this task</b> || WIP/TODO || || https://github.com/maemo-leste/bugtracker/issues/261 || || Some work was done in the past
|-
| Qt5 of theme and hildon widgets || Significant task || MOSTLY || [[User:freemangordon]] made a start, [[User:Wizzup]] picked up some of the work || || https://github.com/maemo-leste/qtstyleplugins/ + https://github.com/maemo-leste/qt-platform-maemo/tree/qmenu || Mainly usable already!
|-
| Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 ? || *MAYBE* Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || DONE (by staying at clutter 0.8) || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches ||
|-
| libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || WIP || || || ||
|-
| Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || WIP || Tony, Pavel and [[User:Wizzup]] are working on this || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 ||
|-
| Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || DONE || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ ||
|-
| Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || https://github.com/maemo-leste/bugtracker/issues/256 || https://github.com/maemo-leste/connui-cellular ||
|-
| Test phone calls on the N900 || Figure out cmtspeechdata magic || WIP? || [[User:Wizzup]], [[User:Sicelo]], Pavel || || ||
|-
| Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || WORKS || [[User:Wizzup]], [[User:Sicelo]] || || ||
|-
| Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || WIP || ? || || ||
|-
|"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || WIP || [[User:Parazyd]] || || ||
|-
| Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || WIP || [[User:Wizzup]], tmlind || || || Actually works quite well on the droid4. Let's do the same for Droid4. :)
|-
| osso-abook || We need osso-abook in place for all applications that need contacts (phone ui, sms ui, email ui, more) || WIP || [[User:freemangordon]] || ||https://github.com/maemo-leste/osso-abook || Making good progress
|-
| hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || DONE || [[User:minicom]], [[User:Wizzup]], [[User:Parazyd]] || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc.
|-
| Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || DONE || || || ||
|-
| Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || DONE || [[User:freemangordon]] || || ||
|-
| Port all packages for maemo-leste to debhelper 9 or higher || Requires for us to migrate to a newer Debian (Buster) / Devuan (Beowulf) || DONE || [[User:Parazyd]], [[User:Wizzup]], [[User:meridion]], [[User:Spinal84]] || https://github.com/maemo-leste/bugtracker/issues/234 || ||
|-
|}
7479737e076bcd92c186797603121bd7c6ac7a67
916
915
2021-01-15T00:45:29Z
Wizzup
4
Moved DONE to the bottom
wikitext
text/x-wiki
== Applications ==
This page lists some of the more important open issues for Maemo Leste. We have a complete list here, on github, but it's a bit hard to navigate: https://github.com/maemo-leste/bugtracker/issues
{| class="wikitable"
! Task
! Description
! Task Status
! User(s) working on task
! GH Bug
! URLs
! Notes
|-
| Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. <b>Funding is available for this task</b> || WIP/TODO || || https://github.com/maemo-leste/bugtracker/issues/261 || || Some work was done in the past
|-
| Qt5 of theme and hildon widgets || Significant task || MOSTLY || [[User:freemangordon]] made a start, [[User:Wizzup]] picked up some of the work || || https://github.com/maemo-leste/qtstyleplugins/ + https://github.com/maemo-leste/qt-platform-maemo/tree/qmenu || Mainly usable already!
|-
| libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || WIP || || || ||
|-
| Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || WIP || Tony, Pavel and [[User:Wizzup]] are working on this || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 ||
|-
| Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || https://github.com/maemo-leste/bugtracker/issues/256 || https://github.com/maemo-leste/connui-cellular ||
|-
| Test phone calls on the N900 || Figure out cmtspeechdata magic || WIP? || [[User:Wizzup]], [[User:Sicelo]], Pavel || || ||
|-
| Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || WORKS || [[User:Wizzup]], [[User:Sicelo]] || || ||
|-
| Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || WIP || ? || || ||
|-
|"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || WIP || [[User:Parazyd]] || || ||
|-
| Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || WIP || [[User:Wizzup]], tmlind || || || Actually works quite well on the droid4. Let's do the same for Droid4. :)
|-
| osso-abook || We need osso-abook in place for all applications that need contacts (phone ui, sms ui, email ui, more) || WIP || [[User:freemangordon]] || ||https://github.com/maemo-leste/osso-abook || Making good progress
|-
| Port all packages for maemo-leste to debhelper 9 or higher || Requires for us to migrate to a newer Debian (Buster) / Devuan (Beowulf) || DONE || [[User:Parazyd]], [[User:Wizzup]], [[User:meridion]], [[User:Spinal84]] || https://github.com/maemo-leste/bugtracker/issues/234 || ||
|-
| Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || DONE || [[User:ThomasAH]], Spinal84 || https://github.com/maemo-leste/ke-recv/pull/2 ; https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || ke-recv part for slide monitoring is in place, we just need live keyboard-attached monitoring now. https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda). mer-core (sailfish/nemomobile) has keyboard monitoring integrated into mce, so we could also look at (using) that
|-
| Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 ? || *MAYBE* Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || DONE (by staying at clutter 0.8) || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches ||
|-
| Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || DONE || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ ||
|-
| hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || DONE || [[User:minicom]], [[User:Wizzup]], [[User:Parazyd]] || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc.
|-
| Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || DONE || || || ||
|-
| Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || DONE || [[User:freemangordon]] || || ||
|-
|}
ec48981f9bcc026083d1fa81edd5efeb20dbb914
917
916
2021-01-15T00:45:49Z
Wizzup
4
wikitext
text/x-wiki
== Applications ==
This page lists some of the more important open issues for Maemo Leste. We have a complete list here, on github, but it's a bit hard to navigate: https://github.com/maemo-leste/bugtracker/issues
{| class="wikitable"
! Task
! Description
! Task Status
! User(s) working on task
! GH Bug
! URLs
! Notes
|-
| Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. <b>Funding is available for this task</b> || WIP/TODO || || https://github.com/maemo-leste/bugtracker/issues/261 || || Some work was done in the past
|-
| Qt5 of theme and hildon widgets || Significant task || MOSTLY || [[User:freemangordon]] made a start, [[User:Wizzup]] picked up some of the work || || https://github.com/maemo-leste/qtstyleplugins/ + https://github.com/maemo-leste/qt-platform-maemo/tree/qmenu || Mainly usable already!
|-
| libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || WIP || || || ||
|-
| Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || WIP || Tony, Pavel and [[User:Wizzup]] are working on this || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 ||
|-
| Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || https://github.com/maemo-leste/bugtracker/issues/256 || https://github.com/maemo-leste/connui-cellular ||
|-
| Test phone calls on the N900 || Figure out cmtspeechdata magic || WIP? || [[User:Wizzup]], [[User:Sicelo]], Pavel || || ||
|-
| Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || WIP || ? || || ||
|-
|"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || WIP || [[User:Parazyd]] || || ||
|-
| Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || WIP || [[User:Wizzup]], tmlind || || || Actually works quite well on the droid4. Let's do the same for Droid4. :)
|-
| osso-abook || We need osso-abook in place for all applications that need contacts (phone ui, sms ui, email ui, more) || WIP || [[User:freemangordon]] || ||https://github.com/maemo-leste/osso-abook || Making good progress
|-
| Port all packages for maemo-leste to debhelper 9 or higher || Requires for us to migrate to a newer Debian (Buster) / Devuan (Beowulf) || DONE || [[User:Parazyd]], [[User:Wizzup]], [[User:meridion]], [[User:Spinal84]] || https://github.com/maemo-leste/bugtracker/issues/234 || ||
|-
| Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || DONE || [[User:ThomasAH]], Spinal84 || https://github.com/maemo-leste/ke-recv/pull/2 ; https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || ke-recv part for slide monitoring is in place, we just need live keyboard-attached monitoring now. https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda). mer-core (sailfish/nemomobile) has keyboard monitoring integrated into mce, so we could also look at (using) that
|-
| Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 ? || *MAYBE* Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || DONE (by staying at clutter 0.8) || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches ||
|-
| Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || DONE || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ ||
|-
| hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || DONE || [[User:minicom]], [[User:Wizzup]], [[User:Parazyd]] || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc.
|-
| Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || DONE || || || ||
|-
| Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || DONE || [[User:freemangordon]] || || ||
|-
| Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || DONE || [[User:Wizzup]], [[User:Sicelo]] || || ||
|-
|}
c81067e924133da796d2fac9edd17ad010558860
Status/Audio
0
108
923
803
2021-01-16T09:45:06Z
Wizzup
4
/* Current status */
wikitext
text/x-wiki
== Current status ==
* We have yet to figure out device policies: what to do on jack unplug, what to do on jack plug while listening to music, what to do on jack unplug when you're on a phone call, etc.
== Development notes ==
For each device, we'll need to create usable Alsa UCM files. And we'll need to learn a bunch about pulseaudio's routing and policy management, how to act on certain plug events, etc.
Unsorted (useful) links:
* https://www.systutorials.com/docs/linux/man/1-alsaucm/
* https://github.com/alsa-project/alsa-ucm-conf
* https://wiki.postmarketos.org/wiki/Alsa_UCM
* https://wiki.archlinux.org/index.php/PulseAudio/Examples
* https://unix.stackexchange.com/questions/115302/disable-headphone-jack-detection-in-pulseaudio
* https://wiki.merproject.org/wiki/Nemo/Audio
* (Fremantle/N900-specific) http://wiki.maemo.org/Porting/Audio/Q_and_A_RE-PA
* (Fremantle/N900-specific) https://blog.linuxplumbersconf.org/2009/slides/Jyri-Sarha-audio_miniconf_slides.pdf
b30ff9417fff0d1c04dbb5010f2f9da0f9858baa
Getting Started
0
105
924
733
2021-01-17T12:00:28Z
Parazyd
1
wikitext
text/x-wiki
= (SSH) Login =
User credentials are: user:user
Root credentials are: root:toor
You should prefer logging in as user and then escalating to root with sudo as necessary.
= Useful Bits =
* Default lockcode is "12345"
* Lockcode can only be changed if your hardware has CAL. QEMU does not have CAL. Droid 4 also not.
= Tweaking =
See [[Tweaking]]
3c2d577d4c0f1c40560e6b6c1f32b0c806b2d5cd
925
924
2021-01-17T12:00:37Z
Parazyd
1
/* (SSH) Login */
wikitext
text/x-wiki
= (SSH) Login =
User credentials are: user:user
Root credentials are: root:toor
You should prefer logging in as user and then escalating to root with sudo as necessary.
= Useful Bits =
* Default lockcode is "12345"
* Lockcode can only be changed if your hardware has CAL. QEMU does not have CAL. Droid 4 also not.
= Tweaking =
See [[Tweaking]]
ac88c4f89bfb33b43c6c8fc39cbd345def97fb99
926
925
2021-01-17T12:00:52Z
Parazyd
1
/* (SSH) Login */
wikitext
text/x-wiki
= (SSH) Login =
User credentials are: '''user:user'''
Root credentials are: '''root:toor
'''
You should prefer logging in as user and then escalating to root with sudo as necessary.
= Useful Bits =
* Default lockcode is "12345"
* Lockcode can only be changed if your hardware has CAL. QEMU does not have CAL. Droid 4 also not.
= Tweaking =
See [[Tweaking]]
e9fc417ef0826038a4e89a626a7a7e366385efcd
927
926
2021-01-17T12:01:05Z
Parazyd
1
/* (SSH) Login */
wikitext
text/x-wiki
= (SSH) Login =
User credentials are: '''user:user'''
Root credentials are: '''root:toor'''
You should prefer logging in as user and then escalating to root with sudo as necessary.
= Useful Bits =
* Default lockcode is "12345"
* Lockcode can only be changed if your hardware has CAL. QEMU does not have CAL. Droid 4 also not.
= Tweaking =
See [[Tweaking]]
510bdaa0b4ea060346fcfd3772ccc7d4a895b68f
935
927
2021-01-18T14:44:55Z
Parazyd
1
wikitext
text/x-wiki
= (SSH) Login =
User credentials are: '''user:user'''
Root credentials are: '''root:toor'''
You should prefer logging in as user and then escalating to root with sudo as necessary.
= Useful Bits =
* Default lockcode is "12345"
* Lockcode can only be changed if your hardware has CAL. QEMU does not have CAL. Droid 4 also not.
= More RAM =
You can install '''zram-tools''' from the repo, and edit '''/etc/default/zram''' as necessary.
hildon-base (and it's hildon-env-setup initscript) are aware if zramswap in installed and will activate zram.
If you have an image older than 17 January 2021, you should remove the existing zram initscript and install zram-tools to utilize this functionality.
Remove it with:
rc-update del zram
rm /etc/init.d/zram
= Tweaking =
See [[Tweaking]]
6b9e20773d8cd380949c601c94a8ecb335ca3e6b
936
935
2021-01-18T14:46:18Z
Parazyd
1
/* (SSH) Login */
wikitext
text/x-wiki
= (SSH) Login =
User credentials are: '''user:user'''
Root credentials are: '''root:toor'''
You should prefer logging in as user and then escalating to root with sudo as necessary.
In images newer than 17 January 2021, root SSH is disabled by default.
= Useful Bits =
* Default lockcode is "12345"
* Lockcode can only be changed if your hardware has CAL. QEMU does not have CAL. Droid 4 also not.
= More RAM =
You can install '''zram-tools''' from the repo, and edit '''/etc/default/zram''' as necessary.
hildon-base (and it's hildon-env-setup initscript) are aware if zramswap in installed and will activate zram.
If you have an image older than 17 January 2021, you should remove the existing zram initscript and install zram-tools to utilize this functionality.
Remove it with:
rc-update del zram
rm /etc/init.d/zram
= Tweaking =
See [[Tweaking]]
02b248ef8b09a4d26e7a3567a70c83cfd5b55f5c
937
936
2021-01-18T14:53:26Z
Parazyd
1
/* More RAM */
wikitext
text/x-wiki
= (SSH) Login =
User credentials are: '''user:user'''
Root credentials are: '''root:toor'''
You should prefer logging in as user and then escalating to root with sudo as necessary.
In images newer than 17 January 2021, root SSH is disabled by default.
= Useful Bits =
* Default lockcode is "12345"
* Lockcode can only be changed if your hardware has CAL. QEMU does not have CAL. Droid 4 also not.
= More RAM =
You can install '''zram-tools''' from the repo, and edit '''/etc/default/zramswap''' as necessary.
hildon-base (and it's hildon-env-setup initscript) are aware if zramswap in installed and will activate zram.
If you have an image older than 17 January 2021, you should remove the existing zram initscript and install zram-tools to utilize this functionality.
Remove it with:
rc-update del zram
rm /etc/init.d/zram
= Tweaking =
See [[Tweaking]]
3966bdd9f517c805e3196a7756c1ba5a3d4f655d
938
937
2021-01-18T14:57:17Z
Parazyd
1
/* More RAM */
wikitext
text/x-wiki
= (SSH) Login =
User credentials are: '''user:user'''
Root credentials are: '''root:toor'''
You should prefer logging in as user and then escalating to root with sudo as necessary.
In images newer than 17 January 2021, root SSH is disabled by default.
= Useful Bits =
* Default lockcode is "12345"
* Lockcode can only be changed if your hardware has CAL. QEMU does not have CAL. Droid 4 also not.
= More RAM =
You can install '''zram-tools''' from the repo, and edit '''/etc/default/zramswap''' as necessary. It's probably convenient to set allocation to 1024.
hildon-base (and it's hildon-env-setup initscript) are aware if zramswap in installed and will activate zram.
If you have an image older than 17 January 2021, you should remove the existing zram initscript and install zram-tools to utilize this functionality.
Remove it with:
rc-update del zram
rm /etc/init.d/zram
= Tweaking =
See [[Tweaking]]
2fbc40176b97795ca3548b009ce413bab0aae1dd
Anbox
0
124
928
2021-01-18T14:14:31Z
Parazyd
1
Created page with "= Installation = From extras apt install anbox = Usage = The initscript should automatically start anbox container-manager. supervise-daemon anbox-container-manager --s..."
wikitext
text/x-wiki
= Installation =
From extras
apt install anbox
= Usage =
The initscript should automatically start anbox container-manager.
supervise-daemon anbox-container-manager --start /usr/bin/anbox -- container-manager --daemon --privileged --data-path=/var/lib/anbox --android-image=/usr/share/anbox/android.img
\_ /usr/bin/anbox container-manager --daemon --privileged --data-path=/var/lib/anbox --android-image=/usr/share/anbox/android.img
As '''user''':
anbox session-manager
anbox launch --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity
There is also an option with using '''anbox-launch.sh''' but I have not gotten it to work successfully.
7f2badb244e3103546ae5ecc11e2cbb5118e8b53
929
928
2021-01-18T14:15:15Z
Parazyd
1
wikitext
text/x-wiki
= Installation =
From extras
apt install anbox
= Usage =
The initscript should automatically start anbox container-manager.
supervise-daemon anbox-container-manager --start /usr/bin/anbox -- container-manager --daemon --privileged --data-path=/var/lib/anbox --android-image=/usr/share/anbox/android.img
\_ /usr/bin/anbox container-manager --daemon --privileged --data-path=/var/lib/anbox --android-image=/usr/share/anbox/android.img
As '''user''':
anbox session-manager
anbox launch --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity
There is also an option with using '''anbox-launch.sh''' but I have not gotten it to work successfully.
Please note that '''it takes a long time to start''' an activity for the first time. So be patient. Subsequent runs should be faster.
df246ea72ccb94b1dc8698cf7a2a510d4848a757
930
929
2021-01-18T14:16:04Z
Parazyd
1
wikitext
text/x-wiki
= Installation =
From extras
apt install anbox
= Usage =
The initscript should automatically start anbox container-manager.
supervise-daemon anbox-container-manager --start /usr/bin/anbox -- container-manager --daemon --privileged --data-path=/var/lib/anbox --android-image=/usr/share/anbox/android.img
\_ /usr/bin/anbox container-manager --daemon --privileged --data-path=/var/lib/anbox --android-image=/usr/share/anbox/android.img
As '''user''':
anbox session-manager
anbox launch --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity
There is also an option with using '''anbox-launch.sh''' but I have not gotten it to work successfully.
Please note that '''it takes a long time to start''' an activity for the first time. So be patient. Subsequent runs should be faster.
You can view "progress" in htop. anbox should be using the CPU. When the usage is low, you should be ready to start activities.
9a22ffc794764a4bbdb245eb1dda5a706e8cad4f
931
930
2021-01-18T14:16:17Z
Parazyd
1
/* Installation */
wikitext
text/x-wiki
= Installation =
From extras
apt install anbox
Or install anbox from HAM.
= Usage =
The initscript should automatically start anbox container-manager.
supervise-daemon anbox-container-manager --start /usr/bin/anbox -- container-manager --daemon --privileged --data-path=/var/lib/anbox --android-image=/usr/share/anbox/android.img
\_ /usr/bin/anbox container-manager --daemon --privileged --data-path=/var/lib/anbox --android-image=/usr/share/anbox/android.img
As '''user''':
anbox session-manager
anbox launch --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity
There is also an option with using '''anbox-launch.sh''' but I have not gotten it to work successfully.
Please note that '''it takes a long time to start''' an activity for the first time. So be patient. Subsequent runs should be faster.
You can view "progress" in htop. anbox should be using the CPU. When the usage is low, you should be ready to start activities.
ea42d183304a663ec18e636a4126211b8850b446
932
931
2021-01-18T14:16:46Z
Parazyd
1
/* Usage */
wikitext
text/x-wiki
= Installation =
From extras
apt install anbox
Or install anbox from HAM.
= Usage =
The initscript should automatically start anbox container-manager.
supervise-daemon anbox-container-manager --start /usr/bin/anbox -- container-manager --daemon --privileged --data-path=/var/lib/anbox --android-image=/usr/share/anbox/android.img
\_ /usr/bin/anbox container-manager --daemon --privileged --data-path=/var/lib/anbox --android-image=/usr/share/anbox/android.img
As '''user''':
export ANBOX_LOG_LEVEL=debug
anbox session-manager
anbox launch --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity
There is also an option with using '''anbox-launch.sh''' but I have not gotten it to work successfully.
Please note that '''it takes a long time to start''' an activity for the first time. So be patient. Subsequent runs should be faster.
You can view "progress" in htop. anbox should be using the CPU. When the usage is low, you should be ready to start activities.
75c0ff7a14167a38727b7f9ed1dda9eda55c030e
933
932
2021-01-18T14:17:56Z
Parazyd
1
/* Usage */
wikitext
text/x-wiki
= Installation =
From extras
apt install anbox
Or install anbox from HAM.
= Usage =
The initscript should automatically start anbox container-manager.
supervise-daemon anbox-container-manager --start /usr/bin/anbox -- container-manager --daemon --privileged --data-path=/var/lib/anbox --android-image=/usr/share/anbox/android.img
\_ /usr/bin/anbox container-manager --daemon --privileged --data-path=/var/lib/anbox --android-image=/usr/share/anbox/android.img
As '''user''':
export ANBOX_LOG_LEVEL=debug
anbox session-manager
anbox launch --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity
There is also an option with using '''anbox-launch.sh''' but I have not gotten it to work successfully.
Please note that '''it takes a long time to start''' an activity for the first time. So be patient. Subsequent runs should be faster.
You can view "progress" in htop. anbox should be using the CPU. When the usage is low, you should be ready to start activities.
You can also find some useful logs in /var/lib/anbox/logs
113a2eb8bd304c6686d615170521069f599b4d94
934
933
2021-01-18T14:22:11Z
Parazyd
1
/* Usage */
wikitext
text/x-wiki
= Installation =
From extras
apt install anbox
Or install anbox from HAM.
= Usage =
The initscript should automatically start anbox container-manager.
supervise-daemon anbox-container-manager --start /usr/bin/anbox -- container-manager --daemon --privileged --data-path=/var/lib/anbox --android-image=/usr/share/anbox/android.img
\_ /usr/bin/anbox container-manager --daemon --privileged --data-path=/var/lib/anbox --android-image=/usr/share/anbox/android.img
As '''user''':
export ANBOX_LOG_LEVEL=debug
anbox session-manager
This should output:
user@devuan-pinephone:~$ anbox session-manager
[ 2021-01-18 14:20:08] [Renderer.cpp:165@initialize] Using a surfaceless EGL context
[ 2021-01-18 14:20:08] [Renderer.cpp:248@initialize] Successfully initialized EGL
[ 2021-01-18 14:21:03] [session_manager.cpp:264@operator()] Android successfully booted
In another terminal, also as '''user''':
anbox launch --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity
There is also an option with using '''anbox-launch.sh''' but I have not gotten it to work successfully.
Please note that '''it takes a long time to start''' an activity for the first time. So be patient. Subsequent runs should be faster.
You can view "progress" in htop. anbox should be using the CPU. When the usage is low, you should be ready to start activities.
You can also find some useful logs in /var/lib/anbox/logs
e05f2c58a9f3f5a83be6881a37d6fc67f22a9e2a
939
934
2021-01-18T15:57:24Z
Parazyd
1
/* Installation */
wikitext
text/x-wiki
= Installation =
From extras
apt install anbox
Or install anbox from HAM.
You might have to enable zram or classic swap (at least 1GB).
= Usage =
The initscript should automatically start anbox container-manager.
supervise-daemon anbox-container-manager --start /usr/bin/anbox -- container-manager --daemon --privileged --data-path=/var/lib/anbox --android-image=/usr/share/anbox/android.img
\_ /usr/bin/anbox container-manager --daemon --privileged --data-path=/var/lib/anbox --android-image=/usr/share/anbox/android.img
As '''user''':
export ANBOX_LOG_LEVEL=debug
anbox session-manager
This should output:
user@devuan-pinephone:~$ anbox session-manager
[ 2021-01-18 14:20:08] [Renderer.cpp:165@initialize] Using a surfaceless EGL context
[ 2021-01-18 14:20:08] [Renderer.cpp:248@initialize] Successfully initialized EGL
[ 2021-01-18 14:21:03] [session_manager.cpp:264@operator()] Android successfully booted
In another terminal, also as '''user''':
anbox launch --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity
There is also an option with using '''anbox-launch.sh''' but I have not gotten it to work successfully.
Please note that '''it takes a long time to start''' an activity for the first time. So be patient. Subsequent runs should be faster.
You can view "progress" in htop. anbox should be using the CPU. When the usage is low, you should be ready to start activities.
You can also find some useful logs in /var/lib/anbox/logs
8c901e0d4be0decaf63bf71037d5ab333f18630e
941
939
2021-01-18T21:04:48Z
Parazyd
1
/* Usage */
wikitext
text/x-wiki
= Installation =
From extras
apt install anbox
Or install anbox from HAM.
You might have to enable zram or classic swap (at least 1GB).
= Usage =
The initscript should automatically start anbox container-manager.
supervise-daemon anbox-container-manager --start /usr/bin/anbox -- container-manager --daemon --privileged --data-path=/var/lib/anbox --android-image=/usr/share/anbox/android.img
\_ /usr/bin/anbox container-manager --daemon --privileged --data-path=/var/lib/anbox --android-image=/usr/share/anbox/android.img
You should be able to start Anbox through the '''Menu->Debian->Anbox'''. Be patient with the splash screen. It takes a long time.
An alternative to starting Anbox is the following:
As '''user''' in a terminal:
export ANBOX_LOG_LEVEL=debug
anbox session-manager
This should output:
user@devuan-pinephone:~$ anbox session-manager
[ 2021-01-18 14:20:08] [Renderer.cpp:165@initialize] Using a surfaceless EGL context
[ 2021-01-18 14:20:08] [Renderer.cpp:248@initialize] Successfully initialized EGL
[ 2021-01-18 14:21:03] [session_manager.cpp:264@operator()] Android successfully booted
In another terminal, also as '''user''':
anbox launch --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity
Please note that '''it takes a long time to start''' an activity for the first time. So be patient. Subsequent runs should be faster.
You can view "progress" in htop. anbox should be using the CPU. When the usage is low, you should be ready to start activities.
You can also find some useful logs in /var/lib/anbox/logs
To free up some memory after you're done with usage:
kill -3 `pgrep -f session-manager`
57e8a877422448a068a16ced3a2bdd2a19d9a76c
942
941
2021-01-18T21:08:51Z
Parazyd
1
/* Usage */
wikitext
text/x-wiki
= Installation =
From extras
apt install anbox
Or install anbox from HAM.
You might have to enable zram or classic swap (at least 1GB).
= Usage =
The initscript should automatically start anbox container-manager.
supervise-daemon anbox-container-manager --start /usr/bin/anbox -- container-manager --daemon --privileged --data-path=/var/lib/anbox --android-image=/usr/share/anbox/android.img
\_ /usr/bin/anbox container-manager --daemon --privileged --data-path=/var/lib/anbox --android-image=/usr/share/anbox/android.img
You should be able to start Anbox through the '''Menu->Debian->Anbox'''. Be patient with the splash screen. It can take a looong time.
== Alternative (CLI) ==
Same as above, the initscript should start anbox's container manager.
As '''user''' in a terminal:
export ANBOX_LOG_LEVEL=debug
anbox session-manager
This should output:
user@devuan-pinephone:~$ anbox session-manager
[ 2021-01-18 14:20:08] [Renderer.cpp:165@initialize] Using a surfaceless EGL context
[ 2021-01-18 14:20:08] [Renderer.cpp:248@initialize] Successfully initialized EGL
[ 2021-01-18 14:21:03] [session_manager.cpp:264@operator()] Android successfully booted
In another terminal, also as '''user''':
anbox launch --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity
Please note that '''it takes a long time to start''' an activity for the first time. So be patient. Subsequent runs should be faster.
You can view "progress" in htop. anbox should be using the CPU. When the usage is low, you should be ready to start activities.
== Tips ==
To free up some memory after you're done with usage:
kill -3 `pgrep -f session-manager`
You can also find some useful logs in /var/lib/anbox/logs
3f64461d2ece02268bfb72326842b10aa0ed8887
943
942
2021-01-18T21:15:35Z
Parazyd
1
/* Usage */
wikitext
text/x-wiki
= Installation =
From extras
apt install anbox
Or install anbox from HAM.
You might have to enable zram or classic swap (at least 1GB).
= Usage =
The initscript should automatically start anbox container-manager.
supervise-daemon anbox-container-manager --start /usr/bin/anbox -- container-manager --daemon --privileged --data-path=/var/lib/anbox --android-image=/usr/share/anbox/android.img
\_ /usr/bin/anbox container-manager --daemon --privileged --data-path=/var/lib/anbox --android-image=/usr/share/anbox/android.img
You should be able to start Anbox through the '''Menu->Anbox'''. Be patient with the splash screen. It can take a looong time.
== Alternative (CLI) ==
Same as above, the initscript should start anbox's container manager.
As '''user''' in a terminal:
export ANBOX_LOG_LEVEL=debug
anbox session-manager
This should output:
user@devuan-pinephone:~$ anbox session-manager
[ 2021-01-18 14:20:08] [Renderer.cpp:165@initialize] Using a surfaceless EGL context
[ 2021-01-18 14:20:08] [Renderer.cpp:248@initialize] Successfully initialized EGL
[ 2021-01-18 14:21:03] [session_manager.cpp:264@operator()] Android successfully booted
In another terminal, also as '''user''':
anbox launch --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity
Please note that '''it takes a long time to start''' an activity for the first time. So be patient. Subsequent runs should be faster.
You can view "progress" in htop. anbox should be using the CPU. When the usage is low, you should be ready to start activities.
== Tips ==
To free up some memory after you're done with usage:
kill -3 `pgrep -f session-manager`
You can also find some useful logs in /var/lib/anbox/logs
0dc3be64144cbbfd09c15fac7aa603b2c858cfb8
944
943
2021-01-18T21:16:22Z
Parazyd
1
/* Usage */
wikitext
text/x-wiki
= Installation =
From extras
apt install anbox
Or install anbox from HAM.
You might have to enable zram or classic swap (at least 1GB).
= Usage =
The initscript should automatically start anbox container-manager.
supervise-daemon anbox-container-manager --start /usr/bin/anbox -- container-manager --daemon --privileged --data-path=/var/lib/anbox --android-image=/usr/share/anbox/android.img
\_ /usr/bin/anbox container-manager --daemon --privileged --data-path=/var/lib/anbox --android-image=/usr/share/anbox/android.img
You should be able to start Anbox through '''Menu->Anbox'''. Be patient with the splash screen. It can take a looong time.
== Alternative (CLI) ==
Same as above, the initscript should start anbox's container manager.
As '''user''' in a terminal:
export ANBOX_LOG_LEVEL=debug
anbox session-manager
This should output:
user@devuan-pinephone:~$ anbox session-manager
[ 2021-01-18 14:20:08] [Renderer.cpp:165@initialize] Using a surfaceless EGL context
[ 2021-01-18 14:20:08] [Renderer.cpp:248@initialize] Successfully initialized EGL
[ 2021-01-18 14:21:03] [session_manager.cpp:264@operator()] Android successfully booted
In another terminal, also as '''user''':
anbox launch --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity
Please note that '''it takes a long time to start''' an activity for the first time. So be patient. Subsequent runs should be faster.
You can view "progress" in htop. anbox should be using the CPU. When the usage is low, you should be ready to start activities.
== Tips ==
To free up some memory after you're done with usage:
kill -3 `pgrep -f session-manager`
You can also find some useful logs in /var/lib/anbox/logs
0f924849517a718c122ed8bcb569734c571725d1
PinePhone
0
93
940
717
2021-01-18T16:06:27Z
Parazyd
1
/* Status */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
The first Pinephone (braveheart) phone
== Notes ==
''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] '''
''' What you can do with the 20200223 image:'''
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* (With not yet finished userspace, terminal only) connect to 2G/3G/4G data connections
''' TODO mention/link to:'''
* USB peripheral
* Develop for Maemo Leste and work on applications that interface with modems
* Make it work on latest pine64 kernel
''' Note that: '''
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!)
* Many "games" packages in the Application Manager don't work well yet.
* For some reason the X cursor is still shows (usually it's hidden)
*
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.10 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A ||
|-
| Bluetooth || ? ||
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || N/A || !
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, not enabled by default, community is quite far along, needs to work package their work
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|}
== Installation ==
(Work in Progress)
Currently:
* .img.xz does not match .img.sha
* working out how to install .tar.gz
Unlike most phones, it's pretty simple.
Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity:
$ cat maemo-leste-*-arm64-pinephone-*.img.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
or
$ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz
Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help.
=== SD Card Installation ===
==== Prepare the SD card ====
Format the SD card as ext4 using any of your preferred tools.
====if you downloaded the .img.xz====
extract the image:
$ cp maemo-leste-*-arm64-pinephone-*.img.xz /path/to/sd-card
$ cd /path/to/sd-card
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.img.xz
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to.
In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion.
$ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img of=/dev/sdX conv=fsync
Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo.
====if you downloaded the .tar.gz====
This might work?
$ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card
$ cd /path/to/image/
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz
Then insert SD card, replace the back cover, and turn it on.
These steps should work in theory, but at the moment the image is unbootable.
=== eMMC Installation ===
==== Extract the image ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
==== Modify the image to use eMMC paths ====
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img.xz
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install image to eMMC ====
Refer to the [https://wiki.pine64.org/index.php/PinePhone_Software_Release#Installation_to_eMMC_.28Optional.29 Pine64 Wiki].
[[Category:Device]]
b21dd53778e227b7d00d427ca003896baef77b4b
Nokia N900
0
48
945
870
2021-01-21T22:57:35Z
Sicelo
5
Make it clear that gpu driver isn't FOSS
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The Nokia N900.
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes || Uses omapfb, not omapdrmfb yet
|-
| 3D Acceleration || Yes || Works, using proprietary PowerVR SGX blobs
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration
|-
| 2G/3G data || Yes || Works with ofono; UI under way: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || Yes || Works with ofono, will be implemented using telepathy-ring, no UI yet
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, not enabled by default (might require pulseaudio audio filters)
|-
| Bluetooth || No || Driver problems in mainline
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/staging?id=757c2bf597a8e9f859f8efceda9c5108607fd98d Removed in Linux 5.4-rc1.]
|-
| Accelerometer || Yes || Available as input device, no integration yet. Needs MCE work
|-
| Compass || N/A || Missing in hardware
|-
| Proximity sensor || Yes || No integration yet
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || Missing in hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || WIP || Works using gps3 and gpsd, needs integration still, and work on a-gps
|-
| Infrared || Yes || TX only (hardware limitation).
|-
| Camera || || Needs complex v4l work
|}
== Installation ==
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''.
To flash u-boot permanently, you can issue the following command
'''(BE CAREFUL THOUGH. THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL. ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION OR YOU KNOW HOW TO RECOVER FROM THIS CONDITION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Notes ==
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them
Also see: https://elinux.org/N900
== Power Management ==
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch
<pre>
$ cat idlest.py
"""
00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000
f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046
0000000d 48004a28 (f7aa95e6) cm_idlest3_core
"""
# 31 to 0
cm_idlest1_core_bits = [
'RESERVED',
'ST_MMC3',
'ST_ICR',
'RESERVED',
'RESERVED',
'RESERVED',
'ST_MMC2',
'ST_MMC1',
'RESERVED',
'ST_HDQ',
'ST_MCSPI4',
'ST_MCSPI3',
'ST_MCSPI2',
'ST_MCSPI1',
'ST_I2C3',
'ST_I2C2',
'ST_I2C1',
'ST_UART2',
'ST_UART1',
'ST_GPT11',
'ST_GPT10',
'ST_MCBSP5',
'ST_MCBSP1',
'RESERVED',
'ST_MAILBOXES',
'ST_OMAPCTRL',
'ST_HSOTGUSB_IDLE',
'ST_HSOTGUSB_STDBY',
'RESERVED',
'ST_SDMA',
'ST_SDRC',
'RESERVED',
]
cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits))
#inp = '0020c046'
inp = '00208042' # after rmmod hci_nokia and hci_uart
v = int(inp, 16)
#print(v)
b= "{0:b}".format(v)
print((32-len(b))*'0' + b)
for i in range(0, 32):
is_set = (v & (1 << i)) >> i
if is_set:
print(cm_idlest1_core_bits[i])
</pre>
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
[[Category:Device]]
414e39d8a6dd1351af3e23f86bde318bf287e4a2
Main Page
0
1
946
899
2021-01-26T18:56:40Z
Parazyd
1
wikitext
text/x-wiki
= Description =
Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more.
You can find us on '''freenode''', channel '''#maemo-leste'''.
For an overview of the current status, you might want to check out: [[Status]]
Maemo Leste is based on Devuan Beowulf (Debian Buster) and all the "supported" devices ship with recent Linux (mainline-based) kernels.
The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers.
For some devices, we have development images available, such as the N900. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software.
If you have not used Maemo before, you might want to check out some of the tips on the [[HowTo]] page.
== Getting Started ==
[[Getting_Started]]
== Frequently Asked Questions ==
See [[Leste_FAQ|FAQ]]
== Supported Devices ==
See [[:Category:Device]]
== Latest Images ==
https://phoenix.maemo.org/view/Images/
== Development ==
See [[Development]]
== Roadmap ==
=== Project milestones ===
https://github.com/maemo-leste/bugtracker/milestones
=== Wishlist ===
You have an application you want to see in Leste? Please let us know [[Wishlist|here]].
== Talks ==
See [[Talks]]
== Links ==
<div>
The central point of meeting and talking is IRC (irc.freenode.net in #maemo-leste) and this thread: https://talk.maemo.org/showthread.php?t=100192.
*Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io]
*Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues]
*Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/]
*Our Extras Github: [https://github.com/maemo-leste-extras/ https://github.com/maemo-leste-extras/]
*Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] and https://phoenix.maemo.org/view/Images/
*Our Jenkins build server: [https://phoenix.maemo.org/ https://phoenix.maemo.org/]
*Our IRC history: [http://maedevu.maemo.org/irc.txt http://maedevu.maemo.org/irc.txt]
*Our YouTube channel: [https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w] (via [https://www.invidio.us/channel/UCgAWiHvWSuJAg5hjk7JYn1w Invidious] )
*Our Package index: [https://maedevu.maemo.org/pkgweb/ https://maedevu.maemo.org/pkgweb/] which runs [https://github.com/maemo-leste/mpi https://github.com/maemo-leste/mpi]
*Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
*RSS feed: [https://maemo-leste.github.io/feeds/all.atom.xml https://maemo-leste.github.io/feeds/all.atom.xml]
*[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)]
</div>
a4a59b48593748972a5e2563fc76a056883132b9
947
946
2021-01-26T18:57:01Z
Parazyd
1
/* Getting Started */
wikitext
text/x-wiki
= Description =
Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more.
You can find us on '''freenode''', channel '''#maemo-leste'''.
For an overview of the current status, you might want to check out: [[Status]]
Maemo Leste is based on Devuan Beowulf (Debian Buster) and all the "supported" devices ship with recent Linux (mainline-based) kernels.
The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers.
For some devices, we have development images available, such as the N900. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software.
If you have not used Maemo before, you might want to check out some of the tips on the [[HowTo]] page.
== Getting Started ==
See [[Getting_Started|Getting Started]]
== Frequently Asked Questions ==
See [[Leste_FAQ|FAQ]]
== Supported Devices ==
See [[:Category:Device]]
== Latest Images ==
https://phoenix.maemo.org/view/Images/
== Development ==
See [[Development]]
== Roadmap ==
=== Project milestones ===
https://github.com/maemo-leste/bugtracker/milestones
=== Wishlist ===
You have an application you want to see in Leste? Please let us know [[Wishlist|here]].
== Talks ==
See [[Talks]]
== Links ==
<div>
The central point of meeting and talking is IRC (irc.freenode.net in #maemo-leste) and this thread: https://talk.maemo.org/showthread.php?t=100192.
*Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io]
*Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues]
*Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/]
*Our Extras Github: [https://github.com/maemo-leste-extras/ https://github.com/maemo-leste-extras/]
*Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] and https://phoenix.maemo.org/view/Images/
*Our Jenkins build server: [https://phoenix.maemo.org/ https://phoenix.maemo.org/]
*Our IRC history: [http://maedevu.maemo.org/irc.txt http://maedevu.maemo.org/irc.txt]
*Our YouTube channel: [https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w] (via [https://www.invidio.us/channel/UCgAWiHvWSuJAg5hjk7JYn1w Invidious] )
*Our Package index: [https://maedevu.maemo.org/pkgweb/ https://maedevu.maemo.org/pkgweb/] which runs [https://github.com/maemo-leste/mpi https://github.com/maemo-leste/mpi]
*Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
*RSS feed: [https://maemo-leste.github.io/feeds/all.atom.xml https://maemo-leste.github.io/feeds/all.atom.xml]
*[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)]
</div>
e5b19dd039ada167ac1c1d6472c0cab3ed4d3273
Anbox
0
124
948
944
2021-01-27T09:47:02Z
Parazyd
1
/* Tips */
wikitext
text/x-wiki
= Installation =
From extras
apt install anbox
Or install anbox from HAM.
You might have to enable zram or classic swap (at least 1GB).
= Usage =
The initscript should automatically start anbox container-manager.
supervise-daemon anbox-container-manager --start /usr/bin/anbox -- container-manager --daemon --privileged --data-path=/var/lib/anbox --android-image=/usr/share/anbox/android.img
\_ /usr/bin/anbox container-manager --daemon --privileged --data-path=/var/lib/anbox --android-image=/usr/share/anbox/android.img
You should be able to start Anbox through '''Menu->Anbox'''. Be patient with the splash screen. It can take a looong time.
== Alternative (CLI) ==
Same as above, the initscript should start anbox's container manager.
As '''user''' in a terminal:
export ANBOX_LOG_LEVEL=debug
anbox session-manager
This should output:
user@devuan-pinephone:~$ anbox session-manager
[ 2021-01-18 14:20:08] [Renderer.cpp:165@initialize] Using a surfaceless EGL context
[ 2021-01-18 14:20:08] [Renderer.cpp:248@initialize] Successfully initialized EGL
[ 2021-01-18 14:21:03] [session_manager.cpp:264@operator()] Android successfully booted
In another terminal, also as '''user''':
anbox launch --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity
Please note that '''it takes a long time to start''' an activity for the first time. So be patient. Subsequent runs should be faster.
You can view "progress" in htop. anbox should be using the CPU. When the usage is low, you should be ready to start activities.
== Tips ==
=== Free memory after usage ===
To free up some memory after you're done with usage:
kill -3 `pgrep -f session-manager`
=== Logs ===
You can export an environment variable to get some more debug output from Anbox
export ANBOX_LOG_LEVEL=debug
Plus, you can also find some useful logs in /var/lib/anbox/logs.
=== Running Anbox in the Leste VM ===
Under qemu, it is possible to run Anbox in a VM. (Please add instructions for other VM backends if you test them)
A command line that is tested to work:
qemu-system-x86_64 -enable-kvm -cpu host -m 4G \
-smp cores=4 -drive file=maemo-leste.qcow2,if=virtio \
-net nic -net user,hostfwd=tcp::2223-:22 \
-usb -device usb-tablet \
-vga virtio -display gtk,gl=on
The <code>-vga virtio -display gtk,gl=on</code> is the important part. It should also be possible
to use plain SDL rather than GTK with <code>-display sdl,gl=on</code> instead. When booted, you
should see that hardware acceleration is enabled in the kernel log.
# dmesg | grep -i dri
Once enabled, on beowulf you also need the backports kernel, so you can install it by enabling the
backports repository:
# echo "deb https://pkgmaster.devuan.org/merged beowulf-backports main" >> /etc/apt/sources.list
# apt update
# apt -t beowulf-backports install linux-image-amd64
# reboot
# apt install anbox
Then you can use Anbox normally.
1856bb034430eb8998ef7809d658a724f564e9b1
950
948
2021-01-27T09:54:08Z
Parazyd
1
/* Installation */
wikitext
text/x-wiki
= Installation =
From extras
apt install anbox
Or install anbox from HAM.
[[File:Anbox-ham.png|400px]]
You might have to enable zram or classic swap (at least 1GB).
= Usage =
The initscript should automatically start anbox container-manager.
supervise-daemon anbox-container-manager --start /usr/bin/anbox -- container-manager --daemon --privileged --data-path=/var/lib/anbox --android-image=/usr/share/anbox/android.img
\_ /usr/bin/anbox container-manager --daemon --privileged --data-path=/var/lib/anbox --android-image=/usr/share/anbox/android.img
You should be able to start Anbox through '''Menu->Anbox'''. Be patient with the splash screen. It can take a looong time.
== Alternative (CLI) ==
Same as above, the initscript should start anbox's container manager.
As '''user''' in a terminal:
export ANBOX_LOG_LEVEL=debug
anbox session-manager
This should output:
user@devuan-pinephone:~$ anbox session-manager
[ 2021-01-18 14:20:08] [Renderer.cpp:165@initialize] Using a surfaceless EGL context
[ 2021-01-18 14:20:08] [Renderer.cpp:248@initialize] Successfully initialized EGL
[ 2021-01-18 14:21:03] [session_manager.cpp:264@operator()] Android successfully booted
In another terminal, also as '''user''':
anbox launch --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity
Please note that '''it takes a long time to start''' an activity for the first time. So be patient. Subsequent runs should be faster.
You can view "progress" in htop. anbox should be using the CPU. When the usage is low, you should be ready to start activities.
== Tips ==
=== Free memory after usage ===
To free up some memory after you're done with usage:
kill -3 `pgrep -f session-manager`
=== Logs ===
You can export an environment variable to get some more debug output from Anbox
export ANBOX_LOG_LEVEL=debug
Plus, you can also find some useful logs in /var/lib/anbox/logs.
=== Running Anbox in the Leste VM ===
Under qemu, it is possible to run Anbox in a VM. (Please add instructions for other VM backends if you test them)
A command line that is tested to work:
qemu-system-x86_64 -enable-kvm -cpu host -m 4G \
-smp cores=4 -drive file=maemo-leste.qcow2,if=virtio \
-net nic -net user,hostfwd=tcp::2223-:22 \
-usb -device usb-tablet \
-vga virtio -display gtk,gl=on
The <code>-vga virtio -display gtk,gl=on</code> is the important part. It should also be possible
to use plain SDL rather than GTK with <code>-display sdl,gl=on</code> instead. When booted, you
should see that hardware acceleration is enabled in the kernel log.
# dmesg | grep -i dri
Once enabled, on beowulf you also need the backports kernel, so you can install it by enabling the
backports repository:
# echo "deb https://pkgmaster.devuan.org/merged beowulf-backports main" >> /etc/apt/sources.list
# apt update
# apt -t beowulf-backports install linux-image-amd64
# reboot
# apt install anbox
Then you can use Anbox normally.
8782161cc1c6b655151ea2500ec8e8bd8356dcff
951
950
2021-01-27T09:55:34Z
Parazyd
1
wikitext
text/x-wiki
= Installation =
From extras
apt install anbox
Or install anbox from HAM.
[[File:Anbox-ham.png|400px]]
You might have to enable zram or classic swap (at least 1GB).
= Usage =
The initscript should automatically start anbox container-manager.
supervise-daemon anbox-container-manager --start /usr/bin/anbox -- container-manager --daemon --privileged --data-path=/var/lib/anbox --android-image=/usr/share/anbox/android.img
\_ /usr/bin/anbox container-manager --daemon --privileged --data-path=/var/lib/anbox --android-image=/usr/share/anbox/android.img
You should be able to start Anbox through '''Menu->Anbox'''. Be patient with the splash screen. It can take a looong time.
== Alternative (CLI) ==
Same as above, the initscript should start anbox's container manager.
As '''user''' in a terminal:
export ANBOX_LOG_LEVEL=debug
anbox session-manager
This should output:
user@devuan-pinephone:~$ anbox session-manager
[ 2021-01-18 14:20:08] [Renderer.cpp:165@initialize] Using a surfaceless EGL context
[ 2021-01-18 14:20:08] [Renderer.cpp:248@initialize] Successfully initialized EGL
[ 2021-01-18 14:21:03] [session_manager.cpp:264@operator()] Android successfully booted
In another terminal, also as '''user''':
anbox launch --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity
Please note that '''it takes a long time to start''' an activity for the first time. So be patient. Subsequent runs should be faster.
You can view "progress" in htop. anbox should be using the CPU. When the usage is low, you should be ready to start activities.
== Tips ==
=== Free memory after usage ===
To free up some memory after you're done with usage:
kill -3 `pgrep -f session-manager`
=== Logs ===
You can export an environment variable to get some more debug output from Anbox
export ANBOX_LOG_LEVEL=debug
Plus, you can also find some useful logs in /var/lib/anbox/logs.
=== Running Anbox in the Leste VM ===
Under qemu, it is possible to run Anbox in a VM. (Please add instructions for other VM backends if you test them)
A command line that is tested to work:
qemu-system-x86_64 -enable-kvm -cpu host -m 4G \
-smp cores=4 -drive file=maemo-leste.qcow2,if=virtio \
-net nic -net user,hostfwd=tcp::2223-:22 \
-usb -device usb-tablet \
-vga virtio -display gtk,gl=on
The <code>-vga virtio -display gtk,gl=on</code> is the important part. It should also be possible
to use plain SDL rather than GTK with <code>-display sdl,gl=on</code> instead. When booted, you
should see that hardware acceleration is enabled in the kernel log.
# dmesg | grep -i dri
Once enabled, on beowulf you also need the backports kernel, so you can install it by enabling the
backports repository:
# echo "deb https://pkgmaster.devuan.org/merged beowulf-backports main" >> /etc/apt/sources.list
# apt update
# apt -t beowulf-backports install linux-image-amd64
# reboot
# apt install anbox
Then you can use Anbox normally.
= Further reading =
https://wiki.postmarketos.org/wiki/Anbox
https://anbox.io/
df7c92183c33125d16112013277498e3598e08cc
File:Anbox-ham.png
6
125
949
2021-01-27T09:52:17Z
Parazyd
1
Anbox in HAM
wikitext
text/x-wiki
Anbox in HAM
93c2e34a43b56d173d2a3a22eec1bbda61e4eade
Motorola Droid Bionic
0
111
952
894
2021-01-27T15:33:40Z
Uvos
39
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Bionic.jpg|250px]]
|manufacturer=Motorola
|codename=Targa
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4.3"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, Kionix KXTf9 accelerometer, St L3GD20H Gyro, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.10.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || N/A ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Untested
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration)
|-
| Gyro || No || needs kernel work
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No ||
|-
| Idle power consumption || ~70mW || Needs sim inserted
|}
== Installation ==
Hardware requirements:
* Droid Bionic with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux system
* Android Tools: fastboot adb
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
# Latest maemo-leste-1.0-armhf-bionic-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# droid4-kexecboot.img
Download or clone https://github.com/IMbackK/bionic-clown-boot
Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
Wait for sync to complete and insert MicroSD card into The Bionic. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normaly you can just apt update && apt dist-upgrade to update to the latest version. I for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab latest image from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 and Bionic both expose a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Bionic, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
== Unlocking the modem for usage in Europe ==
Tony suggested these values, Wizzup confirmed it to work on his Bionic in Europe/Amsterdam.
<pre>
apt install build-essential
git clone https://github.com/tmlind/tcmdrw
cd tcmdrw
make
./tcmdrw 1877=8703E80400000200
./tcmdrw 6850=05
</pre>
Tony also writes:
<pre>
22:34 < tmlind> hmm so i had to do this for 3g gain: tcmdrw 1143=aaff0000, got that value from xt910 firmware i think, otherwise 3g signal was weak
22:43 < tmlind> Wizzup: great, the 1143 setting is for 1900 frequency only to get decent signal on t-mo in the us
</pre>
== Stuff to try ==
==== Make Audio Automaticaly set up (Temporary Solution) ====
Adding this in /etc/rc.local above the ''exit 0'' to make audio work from boot.
amixer cset numid=22 HiFi #set left speaker to HiFi
amixer cset numid=21 HiFi #set right speaker to HiFi
amixer cset numid=26 HiFi #set left headset to HiFi
amixer cset numid=25 HiFi #set right headset to HiFi
amixer cset numid=1 50% #set HiFi volumes to 50%
==== Wifi ====
The WL1271 Wifi chip in the Bionic has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
[[Category:Device]]
7b3c2080eba697dba03ae019553f507f82a12779
992
952
2021-04-30T20:03:16Z
Uvos
39
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Bionic.jpg|250px]]
|manufacturer=Motorola
|codename=Targa
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4.3"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, Kionix KXTf9 accelerometer, St L3GD20H Gyro, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.10.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || N/A ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Untested
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration)
|-
| Gyro || No || needs kernel work
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No ||
|-
| Idle power consumption || ~70mW || Needs sim inserted
|}
== Installation ==
Hardware requirements:
* Droid Bionic with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux system
* Android Tools: fastboot adb
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
# Latest maemo-leste-1.0-armhf-bionic-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# droid4-kexecboot.img
Download or clone https://github.com/IMbackK/bionic-clown-boot
Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
Wait for sync to complete and insert MicroSD card into The Bionic. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normaly you can just apt update && apt dist-upgrade to update to the latest version. I for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab latest image from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 and Bionic both expose a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Bionic, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
== Unlocking the modem for usage in Europe ==
Tony suggested these values, Wizzup confirmed it to work on his Bionic in Europe/Amsterdam.
<pre>
apt install build-essential
git clone https://github.com/tmlind/tcmdrw
cd tcmdrw
make
./tcmdrw 1877=8703E80400000200
./tcmdrw 6850=05
</pre>
Tony also writes:
<pre>
22:34 < tmlind> hmm so i had to do this for 3g gain: tcmdrw 1143=aaff0000, got that value from xt910 firmware i think, otherwise 3g signal was weak
22:43 < tmlind> Wizzup: great, the 1143 setting is for 1900 frequency only to get decent signal on t-mo in the us
</pre>
== Stuff to try ==
==== Wifi ====
The WL1271 Wifi chip in the Bionic has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
[[Category:Device]]
8dca4b2a1a59dfbdec58213e831c51ac5c526649
Nokia N900
0
48
953
945
2021-01-27T15:39:11Z
Uvos
39
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The Nokia N900.
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || N/A ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Patial || Works (minus speaker protection), but requires complex alsa configuration no ucm support
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, not enabled by default (might require pulseaudio audio filters)
|-
| Bluetooth || No ||
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || Missing in hardware
|-
| Gyro || N/A|| Missing in hardware
|-
| Proximity sensor || No || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || Now hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || Yes || TX only (hardware limitation).
|-
| Camera || No ||
|-
| Idle power consumption || ~300mW || No device dosent enter RET mode or OFF mode
|}
== Installation ==
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''.
To flash u-boot permanently, you can issue the following command
'''(BE CAREFUL THOUGH. THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL. ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION OR YOU KNOW HOW TO RECOVER FROM THIS CONDITION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Notes ==
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them
Also see: https://elinux.org/N900
== Power Management ==
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch
<pre>
$ cat idlest.py
"""
00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000
f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046
0000000d 48004a28 (f7aa95e6) cm_idlest3_core
"""
# 31 to 0
cm_idlest1_core_bits = [
'RESERVED',
'ST_MMC3',
'ST_ICR',
'RESERVED',
'RESERVED',
'RESERVED',
'ST_MMC2',
'ST_MMC1',
'RESERVED',
'ST_HDQ',
'ST_MCSPI4',
'ST_MCSPI3',
'ST_MCSPI2',
'ST_MCSPI1',
'ST_I2C3',
'ST_I2C2',
'ST_I2C1',
'ST_UART2',
'ST_UART1',
'ST_GPT11',
'ST_GPT10',
'ST_MCBSP5',
'ST_MCBSP1',
'RESERVED',
'ST_MAILBOXES',
'ST_OMAPCTRL',
'ST_HSOTGUSB_IDLE',
'ST_HSOTGUSB_STDBY',
'RESERVED',
'ST_SDMA',
'ST_SDRC',
'RESERVED',
]
cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits))
#inp = '0020c046'
inp = '00208042' # after rmmod hci_nokia and hci_uart
v = int(inp, 16)
#print(v)
b= "{0:b}".format(v)
print((32-len(b))*'0' + b)
for i in range(0, 32):
is_set = (v & (1 << i)) >> i
if is_set:
print(cm_idlest1_core_bits[i])
</pre>
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
[[Category:Device]]
73b60fe9bcf4adec89f093c95d7ea2ba0ebf1197
954
953
2021-01-29T00:32:03Z
Uvos
39
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The Nokia N900.
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Patial || Works (minus speaker protection), but requires complex alsa configuration no ucm support
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, not enabled by default (might require pulseaudio audio filters)
|-
| Bluetooth || No ||
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || Missing in hardware
|-
| Gyro || N/A|| Missing in hardware
|-
| Proximity sensor || No || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || Yes || TX only (hardware limitation).
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || No device dosent enter RET mode or OFF mode
|}
== Installation ==
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''.
To flash u-boot permanently, you can issue the following command
'''(BE CAREFUL THOUGH. THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL. ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION OR YOU KNOW HOW TO RECOVER FROM THIS CONDITION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Notes ==
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them
Also see: https://elinux.org/N900
== Power Management ==
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch
<pre>
$ cat idlest.py
"""
00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000
f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046
0000000d 48004a28 (f7aa95e6) cm_idlest3_core
"""
# 31 to 0
cm_idlest1_core_bits = [
'RESERVED',
'ST_MMC3',
'ST_ICR',
'RESERVED',
'RESERVED',
'RESERVED',
'ST_MMC2',
'ST_MMC1',
'RESERVED',
'ST_HDQ',
'ST_MCSPI4',
'ST_MCSPI3',
'ST_MCSPI2',
'ST_MCSPI1',
'ST_I2C3',
'ST_I2C2',
'ST_I2C1',
'ST_UART2',
'ST_UART1',
'ST_GPT11',
'ST_GPT10',
'ST_MCBSP5',
'ST_MCBSP1',
'RESERVED',
'ST_MAILBOXES',
'ST_OMAPCTRL',
'ST_HSOTGUSB_IDLE',
'ST_HSOTGUSB_STDBY',
'RESERVED',
'ST_SDMA',
'ST_SDRC',
'RESERVED',
]
cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits))
#inp = '0020c046'
inp = '00208042' # after rmmod hci_nokia and hci_uart
v = int(inp, 16)
#print(v)
b= "{0:b}".format(v)
print((32-len(b))*'0' + b)
for i in range(0, 32):
is_set = (v & (1 << i)) >> i
if is_set:
print(cm_idlest1_core_bits[i])
</pre>
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
[[Category:Device]]
b1d3b5fb85ec463dcf4b390415617b91627f5d53
955
954
2021-01-29T00:32:50Z
Uvos
39
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The Nokia N900.
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Patial || Works (minus speaker protection), but requires complex alsa configuration no ucm support
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, not enabled by default (might require pulseaudio audio filters)
|-
| Bluetooth || No ||
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || Missing in hardware
|-
| Gyro || N/A|| Missing in hardware
|-
| Proximity sensor || No || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || Yes || TX only (hardware limitation).
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device dosent enter RET mode or OFF mode
|}
== Installation ==
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''.
To flash u-boot permanently, you can issue the following command
'''(BE CAREFUL THOUGH. THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL. ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION OR YOU KNOW HOW TO RECOVER FROM THIS CONDITION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Notes ==
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them
Also see: https://elinux.org/N900
== Power Management ==
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch
<pre>
$ cat idlest.py
"""
00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000
f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046
0000000d 48004a28 (f7aa95e6) cm_idlest3_core
"""
# 31 to 0
cm_idlest1_core_bits = [
'RESERVED',
'ST_MMC3',
'ST_ICR',
'RESERVED',
'RESERVED',
'RESERVED',
'ST_MMC2',
'ST_MMC1',
'RESERVED',
'ST_HDQ',
'ST_MCSPI4',
'ST_MCSPI3',
'ST_MCSPI2',
'ST_MCSPI1',
'ST_I2C3',
'ST_I2C2',
'ST_I2C1',
'ST_UART2',
'ST_UART1',
'ST_GPT11',
'ST_GPT10',
'ST_MCBSP5',
'ST_MCBSP1',
'RESERVED',
'ST_MAILBOXES',
'ST_OMAPCTRL',
'ST_HSOTGUSB_IDLE',
'ST_HSOTGUSB_STDBY',
'RESERVED',
'ST_SDMA',
'ST_SDRC',
'RESERVED',
]
cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits))
#inp = '0020c046'
inp = '00208042' # after rmmod hci_nokia and hci_uart
v = int(inp, 16)
#print(v)
b= "{0:b}".format(v)
print((32-len(b))*'0' + b)
for i in range(0, 32):
is_set = (v & (1 << i)) >> i
if is_set:
print(cm_idlest1_core_bits[i])
</pre>
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
[[Category:Device]]
87bba5270c735dfb07cd8c892289074b013d2b7c
956
955
2021-01-29T00:34:29Z
Uvos
39
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The Nokia N900.
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Patial || Works (minus speaker protection), but requires complex alsa configuration no ucm support
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, not enabled by default (might require pulseaudio audio filters)
|-
| Bluetooth || No ||
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || Missing in hardware
|-
| Gyro || N/A|| Missing in hardware
|-
| Proximity sensor || No || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || Yes || TX only (hardware limitation).
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device dosent enter RET mode or OFF mode
|}
== Installation ==
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''.
To flash u-boot permanently, you can issue the following command
'''(BE CAREFUL THOUGH. THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL. ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION OR YOU KNOW HOW TO RECOVER FROM THIS CONDITION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Notes ==
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them
Also see: https://elinux.org/N900
== Power Management ==
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch
<pre>
$ cat idlest.py
"""
00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000
f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046
0000000d 48004a28 (f7aa95e6) cm_idlest3_core
"""
# 31 to 0
cm_idlest1_core_bits = [
'RESERVED',
'ST_MMC3',
'ST_ICR',
'RESERVED',
'RESERVED',
'RESERVED',
'ST_MMC2',
'ST_MMC1',
'RESERVED',
'ST_HDQ',
'ST_MCSPI4',
'ST_MCSPI3',
'ST_MCSPI2',
'ST_MCSPI1',
'ST_I2C3',
'ST_I2C2',
'ST_I2C1',
'ST_UART2',
'ST_UART1',
'ST_GPT11',
'ST_GPT10',
'ST_MCBSP5',
'ST_MCBSP1',
'RESERVED',
'ST_MAILBOXES',
'ST_OMAPCTRL',
'ST_HSOTGUSB_IDLE',
'ST_HSOTGUSB_STDBY',
'RESERVED',
'ST_SDMA',
'ST_SDRC',
'RESERVED',
]
cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits))
#inp = '0020c046'
inp = '00208042' # after rmmod hci_nokia and hci_uart
v = int(inp, 16)
#print(v)
b= "{0:b}".format(v)
print((32-len(b))*'0' + b)
for i in range(0, 32):
is_set = (v & (1 << i)) >> i
if is_set:
print(cm_idlest1_core_bits[i])
</pre>
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
[[Category:Device]]
91dab7b77858b8ed209928c813573b2dcd13409a
957
956
2021-01-29T16:19:23Z
Sicelo
5
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
The Nokia N900.
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || Yes || TX only (hardware limitation).
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode
|}
== Installation ==
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''.
To flash u-boot permanently, you can issue the following command
'''(BE CAREFUL THOUGH. THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL. ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION OR YOU KNOW HOW TO RECOVER FROM THIS CONDITION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Notes ==
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them
Also see: https://elinux.org/N900
== Power Management ==
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch
<pre>
$ cat idlest.py
"""
00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000
f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046
0000000d 48004a28 (f7aa95e6) cm_idlest3_core
"""
# 31 to 0
cm_idlest1_core_bits = [
'RESERVED',
'ST_MMC3',
'ST_ICR',
'RESERVED',
'RESERVED',
'RESERVED',
'ST_MMC2',
'ST_MMC1',
'RESERVED',
'ST_HDQ',
'ST_MCSPI4',
'ST_MCSPI3',
'ST_MCSPI2',
'ST_MCSPI1',
'ST_I2C3',
'ST_I2C2',
'ST_I2C1',
'ST_UART2',
'ST_UART1',
'ST_GPT11',
'ST_GPT10',
'ST_MCBSP5',
'ST_MCBSP1',
'RESERVED',
'ST_MAILBOXES',
'ST_OMAPCTRL',
'ST_HSOTGUSB_IDLE',
'ST_HSOTGUSB_STDBY',
'RESERVED',
'ST_SDMA',
'ST_SDRC',
'RESERVED',
]
cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits))
#inp = '0020c046'
inp = '00208042' # after rmmod hci_nokia and hci_uart
v = int(inp, 16)
#print(v)
b= "{0:b}".format(v)
print((32-len(b))*'0' + b)
for i in range(0, 32):
is_set = (v & (1 << i)) >> i
if is_set:
print(cm_idlest1_core_bits[i])
</pre>
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
[[Category:Device]]
394d230f6be62170ad316d1f7183daebe0b59dc6
Motorola Droid 4
0
50
958
911
2021-02-04T21:39:46Z
Parazyd
1
/* Status */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || Yes || Available in /sys, and as input device via iio-uinput
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)
|-
| Gyro || N/A ||
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/
|-
| Idle power consumption || ~120mW || Needs sim inserted
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
=== Updating Android ===
This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
=== Setting up kexecboot ===
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
=== Install Maemo Leste to the sdcard ===
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab the latest image from https://phoenix.maemo.org/view/Images/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Wifi ====
The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this over SSH:
<pre>
Read modem output:
# cat /dev/motmdm1 &
Online modem:
# printf "AT+CFUN=1\r" > /dev/motmdm1
Connect to network:
# printf "AT+COPS=1\r" > /dev/motmdm1
Print connected network:
# printf "AT+COPS?\r" > /dev/motmdm1
Not sure, do it anyway:
# printf "AT+SCRN=0\r" > /dev/motmdm1
Dial a number:
# printf "ATD+1234567890\r" > /dev/motmdm1
Hang up:
# printf "ATH\r" > /dev/motmdm1
Answer incoming call:
# printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero.
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
==== HDMI ====
Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier.
<pre>
xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off
</pre>
Return to internal touchscreen display.
<pre>
xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off
</pre>
==== Keyboard / Mouse sharing with PC ====
To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4.
<pre>
[https://github.com/debauchee/barrier Barrier software-KVM switch]
</pre>
Developers and testers may wish to disable the googley bits before compiling.
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
Cant_have_2_much_leste.jpg
Leste-neverball.jpg
Statsfun.jpg
Leste-glmatrix.png
Droid4-leste-utox2.jpg
Droid4-leste-pcsx.jpg
Droid4-leste-surf_master.jpg
</gallery>
[[Category:Device]]
b2618865a0cc22771917b4c11646ea6db301c59c
959
958
2021-02-04T21:41:35Z
Parazyd
1
/* Status */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Implemented with Pulseaudio and UCM files
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || Yes || Available in /sys, and as input device via iio-uinput
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)
|-
| Gyro || N/A ||
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/
|-
| Idle power consumption || ~120mW || Needs sim inserted
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
=== Updating Android ===
This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
=== Setting up kexecboot ===
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
=== Install Maemo Leste to the sdcard ===
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab the latest image from https://phoenix.maemo.org/view/Images/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Wifi ====
The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this over SSH:
<pre>
Read modem output:
# cat /dev/motmdm1 &
Online modem:
# printf "AT+CFUN=1\r" > /dev/motmdm1
Connect to network:
# printf "AT+COPS=1\r" > /dev/motmdm1
Print connected network:
# printf "AT+COPS?\r" > /dev/motmdm1
Not sure, do it anyway:
# printf "AT+SCRN=0\r" > /dev/motmdm1
Dial a number:
# printf "ATD+1234567890\r" > /dev/motmdm1
Hang up:
# printf "ATH\r" > /dev/motmdm1
Answer incoming call:
# printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to "speakerphone" and set the right speaker to "voice" codec, and set volume for both call and voice to something non-zero.
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
==== HDMI ====
Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier.
<pre>
xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off
</pre>
Return to internal touchscreen display.
<pre>
xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off
</pre>
==== Keyboard / Mouse sharing with PC ====
To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4.
<pre>
[https://github.com/debauchee/barrier Barrier software-KVM switch]
</pre>
Developers and testers may wish to disable the googley bits before compiling.
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
Cant_have_2_much_leste.jpg
Leste-neverball.jpg
Statsfun.jpg
Leste-glmatrix.png
Droid4-leste-utox2.jpg
Droid4-leste-pcsx.jpg
Droid4-leste-surf_master.jpg
</gallery>
[[Category:Device]]
aa87ab96b009f3377ada3ce6f06078c0e914d969
971
959
2021-03-31T20:31:37Z
Uvos
39
/* Stuff to try */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Implemented with Pulseaudio and UCM files
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || Yes || Available in /sys, and as input device via iio-uinput
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)
|-
| Gyro || N/A ||
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/
|-
| Idle power consumption || ~120mW || Needs sim inserted
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
=== Updating Android ===
This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
=== Setting up kexecboot ===
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
=== Install Maemo Leste to the sdcard ===
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab the latest image from https://phoenix.maemo.org/view/Images/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Wifi ====
The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this over SSH:
<pre>
Read modem output:
# cat /dev/motmdm1 &
Online modem:
# printf "AT+CFUN=1\r" > /dev/motmdm1
Connect to network:
# printf "AT+COPS=1\r" > /dev/motmdm1
Print connected network:
# printf "AT+COPS?\r" > /dev/motmdm1
Not sure, do it anyway:
# printf "AT+SCRN=0\r" > /dev/motmdm1
Dial a number:
# printf "ATD+1234567890\r" > /dev/motmdm1
Hang up:
# printf "ATH\r" > /dev/motmdm1
Answer incoming call:
# printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired.
==== 3G Internet ====
Using qmicli:
# qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
# route del default
# sudo ifconfig wwan0 up
# dhclient wwan0
Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed.
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
==== HDMI ====
Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier.
<pre>
xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off
</pre>
Return to internal touchscreen display.
<pre>
xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off
</pre>
==== Keyboard / Mouse sharing with PC ====
To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4.
<pre>
[https://github.com/debauchee/barrier Barrier software-KVM switch]
</pre>
Developers and testers may wish to disable the googley bits before compiling.
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
Cant_have_2_much_leste.jpg
Leste-neverball.jpg
Statsfun.jpg
Leste-glmatrix.png
Droid4-leste-utox2.jpg
Droid4-leste-pcsx.jpg
Droid4-leste-surf_master.jpg
</gallery>
[[Category:Device]]
217d575844f220e34b430052c0a69c708d0f8a89
972
971
2021-03-31T20:33:36Z
Uvos
39
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Implemented with Pulseaudio and UCM files
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || Yes || Available in /sys, and as input device via iio-uinput
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)
|-
| Gyro || N/A ||
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/
|-
| Idle power consumption || ~120mW || Needs sim inserted
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
=== Updating Android ===
This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
=== Setting up kexecboot ===
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
=== Install Maemo Leste to the sdcard ===
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab the latest image from https://phoenix.maemo.org/view/Images/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Wifi ====
The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this:
Read modem output:
<pre>
cat /dev/motmdm1 &
</pre>
Online modem:
<pre>
printf "AT+CFUN=1\r" > /dev/motmdm1
</pre>
Connect to network:
<pre>
printf "AT+COPS=1\r" > /dev/motmdm1
</pre>
Print connected network:
</pre>
printf "AT+COPS?\r" > /dev/motmdm1
Turn off signal reporting:
<pre>
# printf "AT+SCRN=0\r" > /dev/motmdm1
</pre>
Dial a number:
<pre>
printf "ATD+1234567890\r" > /dev/motmdm1
</pre>
Hang up:
<pre>
printf "ATH\r" > /dev/motmdm1
</pre>
Answer incoming call:
<pre>
printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired.
==== 3G Internet ====
Using qmicli:
# qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
# route del default
# sudo ifconfig wwan0 up
# dhclient wwan0
Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed.
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
==== HDMI ====
Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier.
<pre>
xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off
</pre>
Return to internal touchscreen display.
<pre>
xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off
</pre>
==== Keyboard / Mouse sharing with PC ====
To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4.
<pre>
[https://github.com/debauchee/barrier Barrier software-KVM switch]
</pre>
Developers and testers may wish to disable the googley bits before compiling.
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
Cant_have_2_much_leste.jpg
Leste-neverball.jpg
Statsfun.jpg
Leste-glmatrix.png
Droid4-leste-utox2.jpg
Droid4-leste-pcsx.jpg
Droid4-leste-surf_master.jpg
</gallery>
[[Category:Device]]
deaf4d960817b086ff42021cdf3528643e0553be
Tricks
0
120
960
884
2021-02-05T08:45:10Z
Parazyd
1
Firefox tip for touchscreen
wikitext
text/x-wiki
List of tricks:
==== Randomize MAC Address ====
Some users may wish to change the MAC address of an interface, for e.g. to prevent wifi networks associating their MAC address with their network usage pattern.
The macchanger package addresses this by either automatically or manually changing the MAC address of enabled interfaces.
<pre>apt install -y macchanger
</pre>
During installation, the package configuration allows user to select automatic change of MAC address when interface is brought up. This may interfere with USB networking. As an alternative, user can manually change the wlan0 MAC.
<pre>
macchanger wlan0 -e -a
ifconfig wlan0 up
</pre>
==== Keyboard / Mouse sharing with PC ====
To use a leste device while working at desktop it can be convenient to share mouse and keyboard of the host pc with the leste device. The 'barrier' client/server program, forked from 'synergy', allows this.
<pre>
https://github.com/debauchee/barrier Barrier software-KVM switch
</pre>
A hildonized maemo-leste binary of the client is not available at time of this writing. Developers and testers may wish to disable undesired modules included with the barrier source, before compiling.
==== Touchscreen support in Firefox (firefox-esr) ====
Add the necessary environment variable:
echo "MOZ_USE_XINPUT2 DEFAULT=1" >> /etc/security/pam_env.conf
Then in firefox, open '''about:config''' and set '''dom.w3c_touch_events.enabled''' to '''1'''.
You can also set a mobile useragent by creating a string key called '''general.useragent.override'''.
Then set something like this:
Mozilla/5.0 (Android 9; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0
1b998d45fe758b946c7664394a0b3c67d6321302
961
960
2021-02-05T08:47:27Z
Parazyd
1
Cleanup
wikitext
text/x-wiki
= Randomize MAC Address =
Some users may wish to change the MAC address of an interface, for e.g. to prevent wifi networks associating their MAC address with their network usage pattern.
The macchanger package addresses this by either automatically or manually changing the MAC address of enabled interfaces.
apt install -y macchanger
During installation, the package configuration allows user to select automatic change of MAC address when interface is brought up. This may interfere with USB networking. As an alternative, user can manually change the wlan0 MAC.
macchanger wlan0 -e -a
ifconfig wlan0 up
= Keyboard / Mouse sharing with PC =
To use a Leste device while working at desktop it can be convenient to share mouse and keyboard of the host pc with the leste device. The 'barrier' client/server program, forked from 'synergy', allows this.
https://github.com/debauchee/barrier Barrier software-KVM switch
A hildonized Maemo-leste binary of the client is not available at time of this writing. Developers and testers may wish to disable undesired modules included with the barrier source, before compiling.
= Touchscreen support in Firefox (firefox-esr) =
Add the necessary environment variable:
echo "MOZ_USE_XINPUT2 DEFAULT=1" >> /etc/security/pam_env.conf
Then in firefox, open '''about:config''' and set '''dom.w3c_touch_events.enabled''' to '''1'''.
You can also set a mobile useragent by creating a string key called '''general.useragent.override'''.
Then set something like this:
Mozilla/5.0 (Android 9; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0
190a18eb5f17cf07e27bc2d8a14d652875a7de6d
962
961
2021-02-05T08:48:51Z
Parazyd
1
wikitext
text/x-wiki
__FORCETOC__
= Randomize MAC Address =
Some users may wish to change the MAC address of an interface, for e.g. to prevent wifi networks associating their MAC address with their network usage pattern.
The macchanger package addresses this by either automatically or manually changing the MAC address of enabled interfaces.
apt install -y macchanger
During installation, the package configuration allows user to select automatic change of MAC address when interface is brought up. This may interfere with USB networking. As an alternative, user can manually change the wlan0 MAC.
macchanger wlan0 -e -a
ifconfig wlan0 up
= Keyboard / Mouse sharing with PC =
To use a Leste device while working at desktop it can be convenient to share mouse and keyboard of the host pc with the leste device. The 'barrier' client/server program, forked from 'synergy', allows this.
https://github.com/debauchee/barrier Barrier software-KVM switch
A hildonized Maemo-leste binary of the client is not available at time of this writing. Developers and testers may wish to disable undesired modules included with the barrier source, before compiling.
= Touchscreen support in Firefox (firefox-esr) =
Add the necessary environment variable:
echo "MOZ_USE_XINPUT2 DEFAULT=1" >> /etc/security/pam_env.conf
Then in firefox, open '''about:config''' and set '''dom.w3c_touch_events.enabled''' to '''1'''.
You can also set a mobile useragent by creating a string key called '''general.useragent.override'''.
Then set something like this:
Mozilla/5.0 (Android 9; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0
d976b27e693fdd4a7ac124c99a665f60bbafae34
Wishlist
0
89
963
922
2021-02-07T02:55:53Z
Rasmarc
43
/* Applications */
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
{| class="wikitable"http://maemo.org/packages/view/orecchiette/
! Package name
! Done
! Reason
! User
! URL
! Notes
|-
| osso-notes || Yes (quicknote) || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Quicknote currently packaged. Usage notes - http://wiki.maemo.org/Quicknote
|-
| pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation.
|-
| scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please
|-
| [[Games/Brainparty|brainparty]] || Yes || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ ||
|-
| Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || http://maemo.org/packages/view/orecchiette/(has also Psycho Pinball installable)
|-
| Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||http://maemo.org/packages/view/orecchiette/
|-
| Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend
|-
| PDF reader || Yes || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || libhildonfm has bugs regarding file opening dialogs that need to be fixed
|-
| Calendar app || Yes || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port.
|-
| Alarm clock || Yes || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI
|-
| Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/
|-
| Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel
|-
|Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0
|-
| Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ ||
|-
| Image viewer/editor || Yes || || [[User:Maemish]] || https://github.com/maemo-leste-extras/mihphoto ||
|-
| Mail with imap support || No || || [[User:Maemish]] || ||
|-
| RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || ||
|-
| Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ ||
|-
| OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer ||
|-
| SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net ||
|-
| Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ ||
|-
| D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ ||
|-
| Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ ||
|-
| MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms ||
|-
| Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ ||
|-
| Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed.
|-
| Firewall || No || || [[User:Maemish]] || || Something with easy configuration.
|-
| Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ ||
|-
|bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ ||
|-
| cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ ||
|-
| gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ ||
|-|-
| hamsterfiler || WIP [https://github.com/maemo-leste/bugtracker/issues/499] || utilities/files || [[User:ric9k]] || http://maemo.org/packages/view/hamsterfiler/ ||
|-|-
| alarmed (or cron?) || No || utilities || [[User:ric9k]] || http://maemo.org/packages/view/alarmed/ ||
|-|-
| user friendly tracker || No || utilities? || [[User:ric9k]] || n/a :-) ||
|-|-
| Maps (offline) || No || Navigation || [[User:Sicelo]] || || Ideally something like https://f-droid.org/en/packages/com.github.axet.maps/ from Android, but Modrana, https://github.com/M4rtinK/modrana may be easier as a start. [FoxtrotGPS https://www.foxtrotgps.org] might be the easiest to adapt, it is already packaged in Devuan.
|-
| Orecchiette || No || calls recording || [[User:capitannemo]] || http://maemo.org/packages/view/orecchiette/ ||
|-
| Panucci || No || audiobook || [[User:capitannemo]] || http://maemo.org/packages/view/panucci/ ||
|-
| gPodder || No || podcast || [[User:capitannemo]] || http://maemo.org/packages/view/gpodder/ ||
|-
| Symfonie || No || directory-based audioplayer || [[User:capitannemo]] || http://maemo.org/packages/view/symfonie/ ||
|-
| osso-clock || Yes (clock-ui) || clock and alarms application || pavel || ||
|-
| freecell4maemo || No || freecell game || pavel || ||
|-
| [http://festvox.org/index.html CMU Flite] || ? || Accessibility (TTS) || [[User:Buffer|Buffer]] ([[User talk:Buffer|talk]]) 21:48, 2 March 2020 (UTC) || https://github.com/festvox/flite ||
|-
| Cooktimer || No || feature-rich timers || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cooktimer/0.0.4-24/ || latest from extras-devel
|-
| OpenSSH Status Widget || No || openSSH monitor and config. || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/openssh-status-widget/2.2-12/ || Installing this package is the only step required on a fresh n900 to have openssh working
|-
| Recaller || No || record with one tap || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/recaller/2.1.0-5/ ||
|-
| NecroPlayer2 || No || directory-based audioplayer, easy playlist edit, multiple directories, very useful with recaller widget || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/necroplayer2/0.2.3/ ||
|-
| Simpler Brightness Applet || Yes || simple brightness applet with single tap for backlight and long tap for settings || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/simpler-brightness-applet/1.0/ ||
|)
|-
| telepathy-signal || No || The best open source alternative to WhatsApp should be ready for use with Maemo Leste || [[User:Derby]] || https://github.com/signalapp/Signal-Desktop ; https://github.com/AsamK/signal-cli || This is a suggestion to create a Telepathy connection manager for Signal. Although the Signal [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=842943 Desktop] and [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=926807 CLI] can be installed, they are not yet available in Debian. In any case, it would be great to have a Telepathy connection manager for Signal to provide seamless integration with Maemo.
b57d84892273111074b69bcabc7dbaf6a7a29589
Image Builder
0
100
964
897
2021-02-12T23:58:35Z
Venji10
46
add zsh to dependencies list
wikitext
text/x-wiki
= How to build your own images =
== Maemo 7 Leste ==
'''[https://github.com/maemo-leste/image-builder Github]'''
1.) Install the following packages: <pre>debootstrap curl git wget qemu-user-static build-essential rsync gcc-arm-none-eabi gcc-multilib lib32z1 u-boot-tools device-tree-compiler lzop dosfstools vboot-utils vboot-kernel-utils libftdi-dev libfdt-dev swig libpython-dev bc bison flex libssl-dev zsh</pre>
1.1) If you're using a distribution that is not Devuan, you will have to add a beowulf target to its scripts until the patch is merged upstream
<pre>
# wget -O /usr/share/debootstrap/scripts/ceres https://salsa.debian.org/installer-team/debootstrap/-/raw/e835c655006881af69de5476455ac0e7c824bcc4/scripts/ceres
# ln -s /usr/share/debootstrap/scripts/ceres /usr/share/debootstrap/scripts/beowulf
</pre>
2.) In your terminal, run the following commands:
$ git clone --recurse-submodules https://github.com/maemo-leste/image-builder.git
$ cd image-builder/arm-sdk
$ zsh -f
$ source sdk
$ load devuan DEVICE_NAME maemo
$ build_arm_dist
Note: replace <code>DEVICE_NAME</code> with your board name:
* n900
* n950
* n9
* droid4
* odroidxu
* odroidxu4
* ouya
* raspi1
* raspi2
* raspi3
* raspi4
* rock64
* pinephone-dontbeevil
* pinephone
* pinetab
* sunxi
* turbox-twister
ea3279bcb6ff2b5764a6a836c7cd62072f89028b
965
964
2021-02-16T21:45:44Z
Venji10
46
git is required for cloning repositories
wikitext
text/x-wiki
= How to build your own images =
== Maemo 7 Leste ==
'''[https://github.com/maemo-leste/image-builder Github]'''
1.) Install the following packages: <pre>debootstrap curl git wget qemu-user-static build-essential rsync gcc-arm-none-eabi gcc-multilib lib32z1 u-boot-tools device-tree-compiler lzop dosfstools vboot-utils vboot-kernel-utils libftdi-dev libfdt-dev swig libpython-dev bc bison flex libssl-dev zsh git</pre>
1.1) If you're using a distribution that is not Devuan, you will have to add a beowulf target to its scripts until the patch is merged upstream
<pre>
# wget -O /usr/share/debootstrap/scripts/ceres https://salsa.debian.org/installer-team/debootstrap/-/raw/e835c655006881af69de5476455ac0e7c824bcc4/scripts/ceres
# ln -s /usr/share/debootstrap/scripts/ceres /usr/share/debootstrap/scripts/beowulf
</pre>
2.) In your terminal, run the following commands:
$ git clone --recurse-submodules https://github.com/maemo-leste/image-builder.git
$ cd image-builder/arm-sdk
$ zsh -f
$ source sdk
$ load devuan DEVICE_NAME maemo
$ build_arm_dist
Note: replace <code>DEVICE_NAME</code> with your board name:
* n900
* n950
* n9
* droid4
* odroidxu
* odroidxu4
* ouya
* raspi1
* raspi2
* raspi3
* raspi4
* rock64
* pinephone-dontbeevil
* pinephone
* pinetab
* sunxi
* turbox-twister
7dcb124d03670b15ad84886272214b15286cf44e
Status/GPS
0
76
966
852
2021-03-03T13:31:53Z
Parazyd
1
/* Setting up GPSD with gpsfake on a VM */
wikitext
text/x-wiki
== Fremantle Gypsy ==
is actually not gypsy. Rather (some) gypsy calls implemented as "location-daemon".
location-daemon/gypsy gets spawned after an application requests GPS. How exactly - TBD.
== Setting up GPSD with gpsfake on a VM ==
Install gpsd and gpsd-clients:
<pre>
apt install gpsd gpsd-clients
</pre>
Stop apparmor (for testing only!):
<pre>
/etc/init.d/apparmor stop
aa-teardown
</pre>
And then you can run gpsfake using test files from the gpsd repo:
<pre>
git clone https://github.com/maemo-leste-upstream-forks/pkg-gpsd
gpsfake -c 1 pkg-gpsd/test/daemon/nokia-ld-4w.log
</pre>
Then in another terminal, type:
<pre>
cgps
</pre>
And you should see the information from the GPS log be replayed.
== Relevant URLs ==
* https://github.com/maemo-leste/bugtracker/issues/151
* https://github.com/maemo-leste/bugtracker/issues/57
* http://talk.maemo.org/showthread.php?t=100363
* <s>(On combining multiple gps sources such as A-GPS/SUPL and gpsd) https://lists.gnu.org/archive/html/gpsd-dev/2012-07/msg00018.html</s> (not actually relevant, A-GPS needs to fed to the GPS driver/subsystem, not merged as info into gpsd)
* supl implementation: https://github.com/tajuma/supl
* https://talk.maemo.org/showthread.php?t=93910
* https://github.com/postmarketOS/gps-nokia-n900/blob/master/gps-nokia-n900.c
== Regarding Droid 4 GPS ==
<pre>
17:05 < Wizzup> tmlind: wrt gps on the droid, you said there is currently a bug that allows opening
/dev/gnss* only once?
17:09 < tmlind> Wizzup: i think that was a bug in gpsd, did not happen last time i tried. if you hit
that one, opening secondary clients like gpspipe -R won't output anything
17:09 < Wizzup> ah, so it's not a kernel problem, ok
17:10 < Wizzup> once maemo-input-sounds is done (hopefully tonight) I will work on location stuff in
case I can go on vacation and need gps, or until fmg is done with abook and we then
look at rtcom
17:10 < Wizzup> in any case, I was wondering what the gps status is, but I think we'll start gpsd on
demand, so that's fine
17:11 < Wizzup> from a pm pov, I assume closing the fd will stop gps recv?
17:11 < Wizzup> also, this is on the wiki: 22:30 < tmlind> hmm there's a probably kernel gnss bug for
gsp access fyi, you can currently only open one connection before you have to restart
gpsd :)
17:13 < tmlind> Wizzup: yeah so if hiking, you probably want to modprobe gnss_motmdm rate_ms=3000 or
even higher to allow the soc to sleep inbetween
17:14 < tmlind> Wizzup: the default gpsd options only open device if there's a client and times out
automatically
17:14 < Wizzup> interesting.
17:14 < Wizzup> regarding module - well noted
17:14 < Wizzup> I didn't know gpsd auto closed, that's nice.
17:15 < tmlind> i think i measured about 200 - 250 mW with gps enabled screen blanked etc
</pre>
== Regarding A-GPS in general, but also N900 and Droid 4 specifics ==
<pre>
17:15 < Wizzup> also ran into this: https://lists.gnu.org/archive/html/gpsd-dev/2012-07/msg00018.html
17:15 < Entitlement> Wizzup - [ Re: [gpsd-dev] Using multiple location sources to improve accuracy and
r ]
17:15 < Wizzup> (regarding agps)
17:15 < tmlind> Wizzup: yeah so don't enable gpsd -n option, that will keep the gps open
17:15 < Wizzup> looks like ESR suggests to write a daemon that sits in the middle and mixes in agps
info
17:15 < Wizzup> ok
17:16 < Wizzup> regarding rate_ms, I wonder if it makes more sense to keep it lower until a proper fix
is found
17:16 < Wizzup> although I suppose that's only the reporting rate, so it probably doesn't matter
17:16 < tmlind> yeah it defaults to 1s so just leave it out by default
17:16 < tmlind> it will be some generic option eventually and not a module param
17:17 -!- z3ntu_ [z3ntumatri@gateway/shell/matrix.org/x-lnssiqwycssoqteb] has quit [Quit: Idle for 30+
days]
17:18 < tmlind> not sure how much stuff i'll get done over next few months in general, but at some
point i'm planning to continue on the droid4-agps tool..
17:19 < Wizzup> tmlind: what would that do?
17:19 < Wizzup> I figured agps could be done via with https://github.com/tajuma/supl
17:19 < Entitlement> Wizzup - [ GitHub - tajuma/supl ]
17:19 < Wizzup> s/via with/with this/
17:20 -!- peetah [~peetah@cha92-9-82-236-202-86.fbx.proxad.net] has joined #maemo-leste
17:22 < bencoh> (tested and more or less working on maemo5, btw)
17:22 < Wizzup> bencoh: just now?
17:22 < bencoh> no
17:22 < Wizzup> :)
17:23 < bencoh> I used it to proxify supl requests to google
17:23 < tmlind> Wizzup: hmm maybe not sure. in this case we need to download qcom provided up to date
xtra2.bin file for the gnss, not sure if the older formats work at all for the gnss
17:25 < bencoh> tmlind: I'd tend to think you would need to keep gps "always on" before the first fix
17:25 < bencoh> otherwise you will never get enough information from satellites
17:25 < bencoh> (unless you have agps/supl, of course)
17:26 < Wizzup> tmlind: from what I can tell that tool just takes lac/mcc/mns and such (like we can
get from ofono or from modem directly) and just calls to a SUPL service?
17:27 < bencoh> Wizzup: google would even return you a rough position with those
17:27 < tmlind> bencoh: yes it does that already automatically and won't start idling until the fix is
done
17:27 < bencoh> tmlind: ah, I see
17:28 < tmlind> Wizzup: yeh i figured, not sure if the modem nvram settings for supl are working or
not, i somehow have an impression they're only working for some older modems, could be
wrong
17:28 < Wizzup> I don't know enough about AGPS clearly, but from what I currently understand, it's
just a data connection to a server with some cell data
17:29 < Wizzup> so I am not sure what the modem would do specifically
17:29 < Wizzup> I suppose there are probably many "assisted" methods
17:29 < bencoh> Wizzup: you're supposed to receive orbital data / almanac
17:30 < Wizzup> ah
17:30 < bencoh> and feed it to the gps subsystem
17:30 < tmlind> yeah this xtra2.bin stuff is an almanac in some proprietary format for a week i think
17:30 < Wizzup> oh, right, to actually feed it
17:30 < Wizzup> I get it now.
17:30 < Wizzup> when I was searching for methods to tell gpsd about agps nothing turned out, explains
it now
17:31 < Wizzup> s/turned out/turned up/
17:31 < bencoh> iiuc on n900, the modem itself manages the supl connection; the location daemon only
acts as a proxy to provide it a tcp connection
17:31 < Wizzup> ok, yeah, so for the n900 we will have to RE some stuff
17:31 < bencoh> yeah
17:31 < tmlind> bencoh: afaik also mdm6600 nvram has something for supl server, not sure if it works
though
17:32 < tmlind> bencoh: if you want to try it, you can tweak the nvram values with tcmdrw on
github.com/tmlind
17:32 < bencoh> tmlind: meaning implementing/RE-ing such a proxy would make sense for both platforms
17:33 < tmlind> bencoh: hmm proxy running where? on the device?
17:33 < bencoh> on n900/maemo5, yeah
17:33 < bencoh> iirc it is location-proxy (forked on demand I think)
17:33 < tmlind> well i think the modem uses the supl server directly probably based on some
requirements from the ministry of silly walks
17:34 < Wizzup> bencoh: there is location-proxy and location-daemon btw
17:34 < bencoh> it does; the "proxy" only provides the modem with a mean to open a tcp socket and
read/write to it
17:34 < bencoh> Wizzup: indeed
17:34 < Wizzup> if you have more info please share :)
17:34 < Wizzup> I can RE some stuff, but want to RE the right things only
17:35 < bencoh> I haven't toyed with those for quite some time, but lemme see
17:35 < tmlind> well the thing to try with droid4 mdm6600 would be to configure supl server in nvram,
start modem data connection, then gps and see how fast it gets a fix
17:38 < tmlind> i'd try clearing openpst NV_AAGPS_XTRA_ENABLED_I value to try to disable xtra2.bin
use, then try to configure whatever nvram values there might be for a supl server,
sorry no idea what those entries might be but i see the dumps contain some url in hex
format
17:40 < bencoh> Wizzup: see /usr/lib/liblas.so.0.0.0
17:41 < bencoh> especially the las_socket_*
17:41 < bencoh> location-proxy refers to those
17:42 < Wizzup> hm 32K
17:42 < Wizzup> this is likely all n900 specific though right?
17:42 < bencoh> Wizzup: http://pastebin.notk.org/pastebin.php?show=f7f7b371d
17:42 < Entitlement> bencoh - [ pastebin private pastebin - collaborative debugging tool ]
17:42 < bencoh> most likely n900-specific yeah
17:42 < tmlind> hmm so a quick search for the NV_AAGPS_XTRA_ENABLED_I points to some earlier pastebin
page at https://pastebin.com/dyfsUcHc, maybe try configuring those and disable xtra
stuff?
17:42 < Entitlement> tmlind - [ QPST 378 NV Items that are in i535 but NOT in i535 dev ed -
Pastebin.com ]
17:43 < bencoh> tmlind: I don't think supl server address would go into nvram
17:43 < Wizzup> bencoh: ah, so you're suggesting we make some generic "how to write supl data to a
modem" lib?
17:43 < bencoh> tmlind: well, unless it has a mean to actually ask for a specific supl server from the
AP processor
17:43 < tmlind> bencoh: i'm pretty sure the uri goes to nvram, see NV_CGPS_UMTS_PDE_SERVER_ADDR_URL_I
in the link above
17:43 < bencoh> oh
17:44 < bencoh> well, on n900/maemo5, the host gets to decide on that
17:44 < tmlind> ok
17:45 < bencoh> Wizzup: I guess we would want a "generic" glue lib with support for various (two?)
platforms
17:45 < tmlind> bencoh: there seems to be a bunch PDE related nvram entries, see libopenpst dm_nv.h
file
17:46 < bencoh> right
17:47 < bencoh> Actually I wonder if the supl connection would need to go through the host cpu at all
on the mdm6600
17:47 < tmlind> bencoh: no afaik it can't
17:48 < bencoh> it might try and use the gprs/umts data channels
17:48 < tmlind> i think it has to
17:48 < bencoh> without even bothering with the host
17:48 < tmlind> right
17:48 < bencoh> it's a completely different design then
17:48 < bencoh> meaning it should work automagically once we setup pde server properly
17:49 < tmlind> yeah it should hopefully unless it's working only in the xtra2.bin mode
17:49 < bencoh> and that it'll stop working forever once supl servers break support for it
17:49 < tmlind> bencoh: so i did also a tool for the xtra2.bin stuff but it's not complete, also on my
github page droid4-agps or something like that
17:49 < bencoh> (unlike n900, where we managed to somehow get some kind of support using supl-proxy
from tajuma)
17:50 < tmlind> bencoh: at least the supl stuff is a standard format, let's hope it works :)
17:51 < bencoh> it's "standard" until google decides some input fields become mandatory
17:51 < bencoh> but yeah
17:51 < tmlind> i think there are other supl servers available too, right?
17:51 < Wizzup> bencoh: there were other supl servers I think
17:51 < bencoh> (I think that's the reason supl.google.com doesn't work on n900 without any proxy)
17:51 < Wizzup> bencoh: oh?
17:51 < bencoh> well, it depends on your phone service provider
17:52 < bencoh> vodaphone has (had?) one for their customers, but it's not available from outside
their network
17:52 < bencoh> nokia died
17:52 < bencoh> I think sony had one, but ...
17:53 < bencoh> we could also run one, but we'd need to write a fair bit of code for that
17:53 < Wizzup> didn't see any code for it so far
17:53 < Wizzup> (googling around)
17:54 < Wizzup> as in, for a supl server
17:54 < bencoh> Wizzup: https://github.com/fairwaves/RRLP-2.8
17:54 < Entitlement> bencoh - [ GitHub - fairwaves/RRLP-2.8: OpenBTS 2.8 RRLP server, Fairwaves
version ]
17:55 < bencoh> that's for the rrlp part
17:56 < bencoh> I don't remember whether they implemented the SUPL part, but if not, one would need to
wrap the RRLP payload in SUPL packets
17:56 < tmlind> well just having a server proxying the supl data from various sources should do, sort
of what ntpd does
17:57 < Wizzup> it would be nice to have a supl server one can just run, though
17:57 < tmlind> yup
17:57 < bencoh> tmlind: yup, that's exactly what we started doing on maemo5/n900
17:57 < Wizzup> all of this sounds like we will just do GPS with A-GPS first though ;)
17:57 < Wizzup> (for leste, to at least get the frameworks in place)
17:58 < bencoh> I ran a supl-proxy everytime I needed to get a gps fix
17:54 < bencoh> Wizzup: https://github.com/fairwaves/RRLP-2.8
17:54 < Entitlement> bencoh - [ GitHub - fairwaves/RRLP-2.8: OpenBTS 2.8 RRLP server, Fairwaves
version ]
17:55 < bencoh> that's for the rrlp part
17:56 < bencoh> I don't remember whether they implemented the SUPL part, but if not, one would need to
wrap the RRLP payload in SUPL packets
17:56 < tmlind> well just having a server proxying the supl data from various sources should do, sort
of what ntpd does
17:57 < Wizzup> it would be nice to have a supl server one can just run, though
17:57 < tmlind> yup
17:57 < bencoh> tmlind: yup, that's exactly what we started doing on maemo5/n900
17:57 < Wizzup> all of this sounds like we will just do GPS with A-GPS first though ;)
17:57 < Wizzup> (for leste, to at least get the frameworks in place)
17:58 < bencoh> I ran a supl-proxy everytime I needed to get a gps fix
17:58 < Wizzup> I should probably do it on fremantle too, didn't look at the proxying
17:58 < bencoh> (I think it stopped working at some point, but I haven't investigated it. It might be
a cert issue)
17:58 < tmlind> well i meant running a proxying supl server on maemo.org picking data from various
sources so devices would just point to the maemo supl server
17:58 < bencoh> Wizzup: Sicelo eventually wrote a howto https://wiki.maemo.org/N900_GPS_Proxy
17:58 < Entitlement> bencoh - [ N900 GPS Proxy - maemo.org wiki ]
17:59 < bencoh> tmlind: *nod*
17:59 < Wizzup> check
17:59 < Wizzup> tmlind: ah, right
17:59 < Wizzup> that's definitely a good stopgap at least
18:00 < bencoh> We almost have the code for that
18:00 < tmlind> yeah then adding supl data from some open source data feed could be just added
18:00 < bencoh> we just need to add multi-client support to supl-proxy
18:00 < tmlind> cool
18:01 < bencoh> err, except that supl-proxy will actually fetch data for every request
18:01 < tmlind> heh that probably creates a google maps traffic jam to where that server is hosted :)
18:01 < bencoh> :))
18:02 < tmlind> not sure if there are some legal aspects to consider there, not familiar with the supl
stuff really
18:02 < bencoh> you need to supply a valid cell (mnc/lac/whatever) coordinate, and supl response is
customized accordingly
18:02 < bencoh> afaict
18:02 < tmlind> huh why do you need mnc/lac?
18:03 < tmlind> to limit the data size?
18:03 < bencoh> I'm pretty certain you wouldn't need it in theory to get a full ephemeric/almanac dump
18:03 < tmlind> bbl
18:03 < bencoh> but iirc it's mandatory for supl.google.com
18:04 < bencoh> (I can see a pretty good reason for that, actually ... google loves knowing where you
are)
18:06 < Wizzup> yeah
18:06 < Wizzup> from 3) A-GPS here , there seem to be only a few
https://www.reddit.com/r/privacy/comments/cldrym/how_to_degoogle_lineageos_in_2019/
18:06 < Entitlement> Wizzup - [ How to deGoogle LineageOS in 2019 : privacy ]
18:06 < Wizzup> (providers that run a supl server)
18:12 < bencoh> wow, supl.sonyericsson.com actually works as well
18:13 < bencoh> and vodafone too. funny, last time I tried I couldn't use it
18:17 < tmlind> cool, anyways multiple source for the proxying supl server would be best, sort of like
with nptd
18:17 * bencoh nods
</pre>
44c28f6af40e377b31b9b965b567021d4e52ad68
IRC channel
0
54
967
736
2021-03-13T15:00:52Z
Sicelo
5
info for matrix users
wikitext
text/x-wiki
We are on '''irc.freenode.net''' ; channel '''#maemo-leste'''
You can connect from your browser using the [https://webchat.freenode.net/ webchat]. However, a dedicated IRC client is recommended for long-term use.
We want everyone to feel free in our channel, but also remain productive. Therefore, while we do not 'police' the channel, it is also good etiquette to remain on-topic as far as possible.
If you use Matrix, then you can connect to the IRC channel via Freenode's bridge. Simply join the room '''#freenode_#maemo-leste:matrix.org'''. However, please note the following caveats when using the bridge:
* Matrix allows a message to have multiple lines (i.e. include returns). This does not look good on IRC clients. Therefore, please refrain from sending multi-line messages
* Matrix allows sending media and files within the chat, while IRC does not. On IRC, this will appear as an URL. Please do not send any media or files directly into an IRC room. Use a pastebin, and paste the URL to the item, and include a brief explanation about the link. Otherwise no one might be willing to open it
043b2174b72801e028590a42ba5a31be76088dba
Status/USB Peripheral
0
73
968
734
2021-03-27T11:09:09Z
Wizzup
4
wikitext
text/x-wiki
Currently, devices that are supported by Maemo Leste will automatically set up USB networking if you plug them into a PC.
Mass Storage may show as an option, but doesn't do anything useful yet.
== Bringing up network on your PC ==
After plugging USB from your device into your PC, issue:
<pre>
ip link set usb0 up # this one might not really be necessary
ip address add 192.168.42.1/24 dev usb0
ssh root@192.168.42.2
</pre>
== Share PC network with Leste device ==
To also have the devices use your PC network, log into the devices:
The default password is <code>toor</code>. (user: <code>root</code>)
And then add the following route on the device:
<pre>
ip route add default via 192.168.42.1
# if this fails, first run ip route del default
</pre>
On your PC, issue:
<pre>
# (Maybe only one of these two echos is necessary)
echo 1 > /proc/sys/net/ipv4/conf/usb0/forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -A POSTROUTING -t nat -s 192.168.42.2/32 -j MASQUERADE
</pre>
Make sure that forwarding is also allowed within iptables itself, enable it with <code>iptables --policy FORWARD ACCEPT</code>
Now your Leste device should be able to use your PC network
== Share Leste network with PC over USB ==
On PC (as root):
<pre>
ifconfig usb0 up 192.168.42.1
ip route add default via 192.168.42.2
</pre>
On Leste (as root):
<pre>
iptables -A FORWARD -i wlan0
iptables -A POSTROUTING -t nat -s 192.168.42.1/32 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/conf/wlan0/forwarding
</pre>
If you want to share the wwan instead, switch out wlan0 for the wwan.
== Notes ==
* The default IP address is configured in <code>/usr/sbin/pcsuite-enable.sh</code>
59611a5627eea4080e22790cbf5f5907c6ece159
969
968
2021-03-27T11:10:02Z
Wizzup
4
wikitext
text/x-wiki
Currently, devices that are supported by Maemo Leste will automatically set up USB networking if you plug them into a PC.
Mass Storage may show as an option, but doesn't do anything useful yet.
== Bringing up network on your PC ==
After plugging USB from your device into your PC, issue:
<pre>
ip link set usb0 up # this one might not really be necessary
ip address add 192.168.42.1/24 dev usb0
ssh root@192.168.42.2
</pre>
== Share PC network with Leste device ==
To also have the devices use your PC network, log into the devices:
The default password is <code>toor</code>. (user: <code>root</code>)
And then add the following route on the device:
<pre>
ip route add default via 192.168.42.1
# if this fails, first run ip route del default
</pre>
On your PC, issue:
<pre>
# (Maybe only one of these two echos is necessary)
echo 1 > /proc/sys/net/ipv4/conf/usb0/forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -A POSTROUTING -t nat -s 192.168.42.2/32 -j MASQUERADE
</pre>
Make sure that forwarding is also allowed within iptables itself, enable it with <code>iptables --policy FORWARD ACCEPT</code>
Now your Leste device should be able to use your PC network
== Share Leste network with PC over USB ==
On PC (as root):
<pre>
ifconfig usb0 up 192.168.42.1
ip route add default via 192.168.42.2
</pre>
On Leste (as root):
<pre>
iptables -A FORWARD -i wlan0
iptables -A POSTROUTING -t nat -s 192.168.42.1/32 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/conf/wlan0/forwarding
</pre>
If you want to share the wwan instead, switch out wlan0 for the wwan (e.g. on the Droid that is 'wwan3').
== Notes ==
* The default IP address is configured in <code>/usr/sbin/pcsuite-enable.sh</code>
3efd46b15338425db4589cc7dbb9f6e8cb813fa6
User:Sicelo/Snippets
2
102
970
864
2021-03-27T14:10:06Z
Sicelo
5
wikitext
text/x-wiki
Possible N900 USB host mode
echo 'force host full-speed' > /sys/kernel/debug/musb-hdrc.0.auto/testmode
echo host > /sys/bus/platform/devices/musb-hdrc.0.auto/mode
echo 1 > /sys/kernel/debug/musb-hdrc.0.auto/softconnect
echo disconnect > /sys/bus/platform/devices/musb-hdrc.0.auto/musb-hdrc.0.auto/soft_connect
Force N900 to stop charging while connected to power
echo off > /sys/class/power_supply/bq24150a-0/mode
N900 bluetooth
00:26 < sicelo> sre: hi. (this isn't too important compared to the task at hand, but) iirc getting N900 bluetooth working with mainline needed some serdev work. do you know what still
needs to be done?
00:28 < sre> enabling CONFIG_BT_HCIUART_NOKIA should give you a somewhat working bluetooth device. IIRC there were some issues that need to be debugged.
Application wishlist from Wizzup
<pre>
Maybe fun to port:
desktop:
battery-eye (in vm al)
catorise http://maemo.org/downloads/product/Maemo5/catorise/ (evt "Debian" category)
live wallpaper? http://maemo.org/downloads/product/Maemo5/live-wallpaper/
datetoday home widget http://maemo.org/downloads/product/Maemo5/datetoday-home-widget/
personal gprs monitor maemo.org/downloads/product/Maemo5/personal-gprs-mon/
humanity theme http://maemo.org/downloads/product/Maemo5/humanity-theme/
DONE personal ip address http://maemo.org/downloads/product/Maemo5/personal-ip-address/
custom operator name widget http://maemo.org/downloads/product/Maemo5/custom-operator-name-widget/
advanced clock http://maemo.org/downloads/product/Maemo5/advanced-clock-plugin/
app search widget http://maemo.org/downloads/product/Maemo5/app-search-widget/
qtlockscreen (?) and qtlockscreenconfig -- http://maemo.org/downloads/product/Maemo5/qtlockscreenconfig/
DONE http://maemo.org/downloads/product/Maemo5/miku-theme/
education:
dorian http://maemo.org/downloads/product/Maemo5/dorian/
evopedia http://maemo.org/downloads/product/Maemo5/evopedia/
e-book reader http://maemo.org/downloads/product/Maemo5/epubreader/
gtranslate? http://maemo.org/downloads/product/Maemo5/gtranslate/ - gtk/glib/espeak
games
smw - http://maemo.org/downloads/product/Maemo5/smw/
warmux - http://maemo.org/downloads/product/Maemo5/wormux/
battle gweled - http://maemo.org/downloads/product/Maemo5/battlegweled/
drnoksnes (!!!)
freecell4maemo ?
prboom
bullshit bingo http://maemo.org/downloads/product/Maemo5/bullshitbingo/
puzzles http://maemo.org/downloads/product/Maemo5/sgt-puzzles/
rocks n diamond shttp://maemo.org/downloads/product/Maemo5/rocksndiamonds/
uae4all goed laten werken
neverball - http://maemo.org/downloads/product/Maemo5/neverball/
graphics
mypaint (?)
raw viewer? http://maemo.org/downloads/product/Maemo5/mrawviewer/
multimedia
Boel coole/nuttige music players
qspot http://maemo.org/downloads/product/Maemo5/qspot/
recorder http://maemo.org/downloads/product/Maemo5/recorder/
qmidictl http://maemo.org/downloads/product/Maemo5/qmidictl/
maetronome http://maemo.org/downloads/product/Maemo5/maetronome/
location and navigation
modrana
marble? http://maemo.org/downloads/product/Maemo5/marble/
marble maps? http://maemo.org/downloads/product/Maemo5/marble-maps/
maep for sure http://maemo.org/downloads/product/Maemo5/maep/
gps track logger http://maemo.org/downloads/product/Maemo5/gps-data-logger/
OSM2Go - http://maemo.org/downloads/product/Maemo5/osm2go/
interessant http://maemo.org/downloads/product/Maemo5/snuggle/
internet and networking
google voice dialer written in Qt http://maemo.org/downloads/product/Maemo5/qgvdial/
meer google voice http://maemo.org/downloads/product/Maemo5/dialcentral/
twitter clienter http://maemo.org/downloads/product/Maemo5/khweeteur/
zoutube -- http://maemo.org/downloads/product/Maemo5/zoutube/
witter -- twitter client in python http://maemo.org/downloads/product/Maemo5/witter/
vncviewer -- http://maemo.org/downloads/product/Maemo5/vncviewer/
wifi eye http://maemo.org/downloads/product/Maemo5/wifieye/
qnetman -- http://maemo.org/downloads/product/Maemo5/qnetman/
xchat irc http://maemo.org/downloads/product/Maemo5/xchat/
office
xournal http://maemo.org/downloads/product/Maemo5/xournal/
quicknote http://maemo.org/downloads/product/Maemo5/quicknote/
mebook http://maemo.org/downloads/product/Maemo5/mebook/
portabase? http://maemo.org/downloads/product/Maemo5/portabase/
other
--
science
orrery -- http://maemo.org/downloads/product/Maemo5/orrery/
accdisplay http://maemo.org/downloads/product/Maemo5/accdisplay/
system
(lots of themes)
theme-customizer -- http://maemo.org/downloads/product/Maemo5/theme-customizer/
matrix theme -- http://maemo.org/downloads/product/Maemo5/matrix-pr12/
borg sounds -- http://maemo.org/downloads/product/Maemo5/borg-sounds/
okuda theme -- http://maemo.org/downloads/product/Maemo5/hildon-theme-okuda/
cellular modem control buttons -- http://maemo.org/downloads/product/Maemo5/cell-modem-ui/
qtlockscreen -- http://maemo.org/downloads/product/Maemo5/qtlockscreen/
maemeemo theme -- http://maemo.org/downloads/product/Maemo5/maemeemo-theme/
extra translations / languages
</pre>
Other stuff to do/test:
<pre>
- N900 flashlight
- WiFi direct (p2p) on N900 & Droid 4 - https://kasiviswanathanblog.wordpress.com/wifi-p2p-in-linux/
- WiFi monitor mode (N900 & Droid 4)
- WiFi hotspot (Droid 4)
</pre>
https://gavv.github.io/articles/pulseaudio-under-the-hood/ <-- might be handy for voice calls
b20c9a1385bc64b1f16876a3d97517b1332601c9
Getting Started
0
105
973
938
2021-04-05T18:57:53Z
Clort
42
added some info for copying / installing image to microsd
wikitext
text/x-wiki
= Installation to SD Card =
After updating device firmware with included script (eg. flash-droid-4-fw.sh):
Download an image appropriate for your device from [http://maedevu.maemo.org/images/]
Insert a microsd card into your computer and find the device with cat /proc/partitions
Decompress and write the image to your microsd card device:
xzcat maemo-leste-VERSION.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
= (SSH) Login =
User credentials are: '''user:user'''
Root credentials are: '''root:toor'''
You should prefer logging in as user and then escalating to root with sudo as necessary.
In images newer than 17 January 2021, root SSH is disabled by default.
= Useful Bits =
* Default lockcode is "12345"
* Lockcode can only be changed if your hardware has CAL. QEMU does not have CAL. Droid 4 also not.
= More RAM =
You can install '''zram-tools''' from the repo, and edit '''/etc/default/zramswap''' as necessary. It's probably convenient to set allocation to 1024.
hildon-base (and it's hildon-env-setup initscript) are aware if zramswap in installed and will activate zram.
If you have an image older than 17 January 2021, you should remove the existing zram initscript and install zram-tools to utilize this functionality.
Remove it with:
rc-update del zram
rm /etc/init.d/zram
= Tweaking =
See [[Tweaking]]
a7634d72e37ff52daad046575cd72ee9ecb032dd
981
973
2021-04-10T00:42:36Z
Clort
42
added instruction for expanding root partition
wikitext
text/x-wiki
= Installation to SD Card =
After updating device firmware with included script (eg. flash-droid-4-fw.sh):
Download an image appropriate for your device from [http://maedevu.maemo.org/images/]
Insert a microsd card into your computer and find the device with cat /proc/partitions
Decompress and write the image to your microsd card device:
xzcat maemo-leste-VERSION.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
= Expand the root partition to fill SD card =
A helpful script is included to expand the root partition to fill the microSD card.
After booting and logging in to root. execute
/ex/expandcard.sh
This will expand the root partition to fill the microSD card using resize2fs
= (SSH) Login =
User credentials are: '''user:user'''
Root credentials are: '''root:toor'''
You should prefer logging in as user and then escalating to root with sudo as necessary.
In images newer than 17 January 2021, root SSH is disabled by default.
= Useful Bits =
* Default lockcode is "12345"
* Lockcode can only be changed if your hardware has CAL. QEMU does not have CAL. Droid 4 also not.
= More RAM =
You can install '''zram-tools''' from the repo, and edit '''/etc/default/zramswap''' as necessary. It's probably convenient to set allocation to 1024.
hildon-base (and it's hildon-env-setup initscript) are aware if zramswap in installed and will activate zram.
If you have an image older than 17 January 2021, you should remove the existing zram initscript and install zram-tools to utilize this functionality.
Remove it with:
rc-update del zram
rm /etc/init.d/zram
= Tweaking =
See [[Tweaking]]
3e435f5607af3cf763498d628f9d4ad7cd25b536
982
981
2021-04-10T00:43:02Z
Clort
42
/* Expand the root partition to fill SD card */
wikitext
text/x-wiki
= Installation to SD Card =
After updating device firmware with included script (eg. flash-droid-4-fw.sh):
Download an image appropriate for your device from [http://maedevu.maemo.org/images/]
Insert a microsd card into your computer and find the device with cat /proc/partitions
Decompress and write the image to your microsd card device:
xzcat maemo-leste-VERSION.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
= Expand the root partition to fill SD card =
A helpful script is included to expand the root partition to fill the microSD card.
After booting and logging in to root. execute
/etc/expandcard.sh
This will expand the root partition to fill the microSD card using resize2fs
= (SSH) Login =
User credentials are: '''user:user'''
Root credentials are: '''root:toor'''
You should prefer logging in as user and then escalating to root with sudo as necessary.
In images newer than 17 January 2021, root SSH is disabled by default.
= Useful Bits =
* Default lockcode is "12345"
* Lockcode can only be changed if your hardware has CAL. QEMU does not have CAL. Droid 4 also not.
= More RAM =
You can install '''zram-tools''' from the repo, and edit '''/etc/default/zramswap''' as necessary. It's probably convenient to set allocation to 1024.
hildon-base (and it's hildon-env-setup initscript) are aware if zramswap in installed and will activate zram.
If you have an image older than 17 January 2021, you should remove the existing zram initscript and install zram-tools to utilize this functionality.
Remove it with:
rc-update del zram
rm /etc/init.d/zram
= Tweaking =
See [[Tweaking]]
594c2cd9e94fb5a67ea11b1569dd8ccc24a8f849
983
982
2021-04-10T00:43:45Z
Clort
42
/* Expand the root partition to fill SD card */
wikitext
text/x-wiki
= Installation to SD Card =
After updating device firmware with included script (eg. flash-droid-4-fw.sh):
Download an image appropriate for your device from [http://maedevu.maemo.org/images/]
Insert a microsd card into your computer and find the device with cat /proc/partitions
Decompress and write the image to your microsd card device:
xzcat maemo-leste-VERSION.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
= Expand the root partition to fill SD card =
A helpful script is included to expand the root partition to fill the microSD card.
After booting and logging in to root. execute
/etc/expandcard.sh
This will expand the root partition to fill the microSD card using resize2fs.
= (SSH) Login =
User credentials are: '''user:user'''
Root credentials are: '''root:toor'''
You should prefer logging in as user and then escalating to root with sudo as necessary.
In images newer than 17 January 2021, root SSH is disabled by default.
= Useful Bits =
* Default lockcode is "12345"
* Lockcode can only be changed if your hardware has CAL. QEMU does not have CAL. Droid 4 also not.
= More RAM =
You can install '''zram-tools''' from the repo, and edit '''/etc/default/zramswap''' as necessary. It's probably convenient to set allocation to 1024.
hildon-base (and it's hildon-env-setup initscript) are aware if zramswap in installed and will activate zram.
If you have an image older than 17 January 2021, you should remove the existing zram initscript and install zram-tools to utilize this functionality.
Remove it with:
rc-update del zram
rm /etc/init.d/zram
= Tweaking =
See [[Tweaking]]
19fbe0a48aa1d8f10f762e5ae2a6d05470926d05
984
983
2021-04-10T05:01:22Z
Clort
42
/* Expand the root partition to fill SD card */
wikitext
text/x-wiki
= Installation to SD Card =
After updating device firmware with included script (eg. flash-droid-4-fw.sh):
Download an image appropriate for your device from [http://maedevu.maemo.org/images/]
Insert a microsd card into your computer and find the device with cat /proc/partitions
Decompress and write the image to your microsd card device:
xzcat maemo-leste-VERSION.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
= Expand the root partition to fill SD card =
A helpful script is included to expand the root partition to fill the microSD card.
After booting and logging in to root, execute/etc/expandcard.sh
This will expand the root partition to fill the microSD card using resize2fs.
= (SSH) Login =
User credentials are: '''user:user'''
Root credentials are: '''root:toor'''
You should prefer logging in as user and then escalating to root with sudo as necessary.
In images newer than 17 January 2021, root SSH is disabled by default.
= Useful Bits =
* Default lockcode is "12345"
* Lockcode can only be changed if your hardware has CAL. QEMU does not have CAL. Droid 4 also not.
= More RAM =
You can install '''zram-tools''' from the repo, and edit '''/etc/default/zramswap''' as necessary. It's probably convenient to set allocation to 1024.
hildon-base (and it's hildon-env-setup initscript) are aware if zramswap in installed and will activate zram.
If you have an image older than 17 January 2021, you should remove the existing zram initscript and install zram-tools to utilize this functionality.
Remove it with:
rc-update del zram
rm /etc/init.d/zram
= Tweaking =
See [[Tweaking]]
4ac3d1c9361df050fccb1903e7ef33a749faf4f8
Tweaking
0
104
974
912
2021-04-05T22:37:02Z
Clort
42
added disable screen rotate setting and settings list entry
wikitext
text/x-wiki
Maemo Leste is very tweakable/hackable/versatile, this page lists some of the things you could change, hopefully grouped in a meaningful manner.
==== Show current gconf settings ====
<pre>gconftool -S \* |less</pre>
==== Battery icon ====
You can change the animation of the charging icon to show the current charge capacity:
<pre>gconftool-2 -s /apps/osso/status-area-applet-battery/show_charge_charging -t bool true</pre> [edit] ''This doesn't do anything for me - clort''
==== Disable screen rotate ====
You can lock screen orientation to the current (disabling screen rotation) with
<pre>gconftool-2 -s /apps/osso/hildon-desktop/orientation_lock -t bool true</pre>
882f50d46c49d1a2a43e2890ea277e31fc7e0cf4
975
974
2021-04-05T22:55:47Z
Clort
42
more gconftool things to do
wikitext
text/x-wiki
Maemo Leste is very tweakable/hackable/versatile, this page lists some of the things you could change, hopefully grouped in a meaningful manner.
==== Show current gconf settings ====
<pre>gconftool-2 -R / |less</pre>
<pre>gconftool -S \* |less</pre>
==== Battery icon ====
You can change the animation of the charging icon to show the current charge capacity:
<pre>gconftool-2 -s /apps/osso/status-area-applet-battery/show_charge_charging -t bool true</pre> [edit] ''This doesn't do anything for me - clort''
==== Disable screen rotate ====
You can lock screen orientation to the current (disabling screen rotation) with
<pre>gconftool-2 -s /apps/osso/hildon-desktop/orientation_lock -t bool true</pre>
==== Switch clock display to 24h ====
<pre>gconftool-2 -s -t bool /apps/clock/time-format true</pre>
==== Prevent user rearranging of app menu ====
<pre>gconftool-2 -s /apps/osso/hildon-desktop/key-actions/disable_edit -t bool true</pre>
==== Hide toolbar at bottom of osso-xterm (to get more lines) ====
<pre>gconftool-2 -s /apps/osso/xterm/toolbar -t bool false</pre>
8b83c5bb5d79f2e4c3cf9922e745c76836013ffe
976
975
2021-04-06T23:25:50Z
Clort
42
/* Switch clock display to 24h */
wikitext
text/x-wiki
Maemo Leste is very tweakable/hackable/versatile, this page lists some of the things you could change, hopefully grouped in a meaningful manner.
==== Show current gconf settings ====
<pre>gconftool-2 -R / |less</pre>
<pre>gconftool -S \* |less</pre>
==== Battery icon ====
You can change the animation of the charging icon to show the current charge capacity:
<pre>gconftool-2 -s /apps/osso/status-area-applet-battery/show_charge_charging -t bool true</pre> [edit] ''This doesn't do anything for me - clort''
==== Disable screen rotate ====
You can lock screen orientation to the current (disabling screen rotation) with
<pre>gconftool-2 -s /apps/osso/hildon-desktop/orientation_lock -t bool true</pre>
==== Switch clock display to 24h ====
<pre>gconftool-2 -s /apps/clock/time-format -t bool true</pre>
==== Prevent user rearranging of app menu ====
<pre>gconftool-2 -s /apps/osso/hildon-desktop/key-actions/disable_edit -t bool true</pre>
==== Hide toolbar at bottom of osso-xterm (to get more lines) ====
<pre>gconftool-2 -s /apps/osso/xterm/toolbar -t bool false</pre>
c65384e2e046d06d38b3a3df4d204e9305c0be6d
985
976
2021-04-10T11:38:39Z
Clort
42
added preventing apt from autoremoving downloaded .deb packages
wikitext
text/x-wiki
Maemo Leste is very tweakable/hackable/versatile, this page lists some of the things you could change, hopefully grouped in a meaningful manner.
==== Show current gconf settings ====
<pre>gconftool-2 -R / |less</pre>
<pre>gconftool -S \* |less</pre>
==== Battery icon ====
You can change the animation of the charging icon to show the current charge capacity:
<pre>gconftool-2 -s /apps/osso/status-area-applet-battery/show_charge_charging -t bool true</pre> [edit] ''This doesn't do anything for me - clort''
==== Prevent autoremoval of downloaded .deb files ====
The tool 'apt' as an alternative to apt-get uses different configuration.
To prevent apt from auto-deleting downloaded .deb packages do this:
<pre>echo 'Binary::apt::APT::Keep-Downloaded-Packages "true";' \ > /etc/apt/apt.conf.d/01keep-debs</pre>
==== Disable screen rotate ====
You can lock screen orientation to the current (disabling screen rotation) with
<pre>gconftool-2 -s /apps/osso/hildon-desktop/orientation_lock -t bool true</pre>
==== Switch clock display to 24h ====
<pre>gconftool-2 -s /apps/clock/time-format -t bool true</pre>
==== Prevent user rearranging of app menu ====
<pre>gconftool-2 -s /apps/osso/hildon-desktop/key-actions/disable_edit -t bool true</pre>
==== Hide toolbar at bottom of osso-xterm (to get more lines) ====
<pre>gconftool-2 -s /apps/osso/xterm/toolbar -t bool false</pre>
93e468f2630ad217f1d64de0235a5635c61864d2
986
985
2021-04-10T11:43:28Z
Clort
42
wikitext
text/x-wiki
Maemo Leste is very tweakable/hackable/versatile, this page lists some of the things you could change, hopefully grouped in a meaningful manner.
==== Prevent autoremoval of downloaded .deb files ====
The tool 'apt' as an alternative to apt-get uses different configuration.
To prevent apt from auto-deleting downloaded .deb packages do this:
<pre>echo 'Binary::apt::APT::Keep-Downloaded-Packages "true";' \ > /etc/apt/apt.conf.d/01keep-debs</pre>
===== GConf Settings =====
==== Show current gconf settings ====
<pre>gconftool-2 -R / |less</pre>
<pre>gconftool -S \* |less</pre>
==== Battery icon ====
You can change the animation of the charging icon to show the current charge capacity:
<pre>gconftool-2 -s /apps/osso/status-area-applet-battery/show_charge_charging -t bool true</pre> [edit] ''This doesn't do anything for me - clort''
==== Disable screen rotate ====
You can lock screen orientation to the current (disabling screen rotation) with
<pre>gconftool-2 -s /apps/osso/hildon-desktop/orientation_lock -t bool true</pre>
==== Switch clock display to 24h ====
<pre>gconftool-2 -s /apps/clock/time-format -t bool true</pre>
==== Prevent user rearranging of app menu ====
<pre>gconftool-2 -s /apps/osso/hildon-desktop/key-actions/disable_edit -t bool true</pre>
==== Hide toolbar at bottom of osso-xterm (to get more lines) ====
<pre>gconftool-2 -s /apps/osso/xterm/toolbar -t bool false</pre>
dfe1a91b385802c891488d24e2858acafd728d70
Development/Modified Software
0
81
977
388
2021-04-06T23:30:35Z
Clort
42
wikitext
text/x-wiki
TODO, expand on this, why they are patched, etc:
* gtk2: extra widgets are added, menu patches, integration with virtual keyboard for (any) text field, theming
* SDL: full screen patches, other window manager patches
- SDL1.2 and SDL2 have different issues. Lacking keyboard input in fullscreen is top prio.
* qt5 (?): TBD
* gtk3 (?): Same as gtk2, currently not patched, though.
* xorg-server: Patched modesetting for rotation.
84189dd5110a2ff9b4a3596b9a1b19b035ee3c6a
File:Sixel.png
6
126
978
2021-04-06T23:44:04Z
Clort
42
Sixel Graphics in uxterm on Maemo-Leste
wikitext
text/x-wiki
Sixel Graphics in uxterm on Maemo-Leste
bbb5c4adf39d81a810eee108c70883038d599af1
Hacks
0
127
979
2021-04-06T23:51:29Z
Clort
42
Created page with "==== Fun Hacks for maemo-leste ==== ---- apt install -y uxterm imagemagick-6.q16 Add to ~/.bashrc: alias uxt="uxterm -ti vt340 -fa 'Monospace' -fs 16 -fullscreen" echo "c..."
wikitext
text/x-wiki
==== Fun Hacks for maemo-leste ====
----
apt install -y uxterm imagemagick-6.q16
Add to ~/.bashrc:
alias uxt="uxterm -ti vt340 -fa 'Monospace' -fs 16 -fullscreen"
echo "convert \$@ -geometry 950x484 sixel:-" > /usr/local/bin/imgterm
chmod uog+x /usr/local/bin/termimg
display pictures as sixel graphics in your terminal with:
termimg mypic.png
<gallery>Sixel.png</gallery>
You can also get thumbnails of directories with images with imagemagick and the shellscript [https://github.com/hackerb9/lsix/archive/master.zip lsix sixel thumbnailer]
----
9b52b87da15abe41f6db24a0ea8b75a712263a14
980
979
2021-04-06T23:52:10Z
Clort
42
/* Fun Hacks for maemo-leste */
wikitext
text/x-wiki
==== Fun Hacks for maemo-leste ====
----
apt install -y uxterm imagemagick-6.q16
Add to ~/.bashrc:
alias uxt="uxterm -ti vt340 -fa 'Monospace' -fs 16 -fullscreen"
echo "convert \$@ -geometry 950x484 sixel:-" > /usr/local/bin/imgterm
chmod uog+x /usr/local/bin/termimg
display pictures as sixel graphics in your terminal with:
imgterm avatar-yinlee.png
<gallery>Sixel.png</gallery>
You can also get thumbnails of directories with images with imagemagick and the shellscript [https://github.com/hackerb9/lsix/archive/master.zip lsix sixel thumbnailer]
----
8408468870d1d7cbea4bfc4e2ff637ff2bc5eda8
Status/Wireless
0
78
987
310
2021-04-12T17:16:29Z
Wizzup
4
wikitext
text/x-wiki
Client mode should just work using the UI.
== Mobile Hotspot ==
There is no UI for this yet.
To share your mobile data over wireless, you will need to install dnsmasq and hostapd.
You will want to set `wpa=2`, `ssid=` and `wpa_passphrase` in hostapd.conf, like so (of course, there might be other options that are set):
<pre>
wpa=2
ssid=Internet
wpa_passphrase=secureinternetpassword
</pre>
You can copy the example config files to /etc/hostapd/
For /etc/dnsmasq.conf, make sure `interface=` includes at least `lo,wlan0`, like so:
<pre>
interface=lo,wlan0
</pre>
You might also want to change `dhcp-range=` in the config file to match the subnet of your wireless interface ip, per our example:
<pre>
dhcp-range=192.168.44.50,192.168.44.150,12h
</pre>
Then restart dnsmasq.
Next, configure iptables:
<pre>
sudo iptables -A POSTROUTING -t nat -s 192.168.42.1/24 -j MASQUERADE
sysctl -w net.ipv4.ip_forward=1
</pre>
And finally bring up the interface and run hostapd:
<pre>
sudo ifconfig wlan0 192.168.42.2
sudo hostapd -i wlan0 /etc/hostapd/hostapd.conf
</pre>
f429691d85bb10eb9802171efc14ff894e4f9562
988
987
2021-04-12T20:47:09Z
Wizzup
4
wikitext
text/x-wiki
Client mode should just work using the UI.
== Mobile Hotspot ==
There is no UI for this yet.
To share your mobile data over wireless, you will need to install dnsmasq and hostapd.
You will want to set `wpa=2`, `ssid=` and `wpa_passphrase` in hostapd.conf, like so (of course, there might be other options that are set):
<pre>
wpa=2
ssid=Internet
wpa_passphrase=secureinternetpassword
</pre>
You can copy the example config files to /etc/hostapd/
For /etc/dnsmasq.conf, make sure `interface=` includes at least `lo,wlan0`, like so:
<pre>
interface=lo,wlan0
</pre>
You might also want to change `dhcp-range=` in the config file to match the subnet of your wireless interface ip, per our example:
<pre>
dhcp-range=192.168.44.50,192.168.44.150,12h
</pre>
Then restart dnsmasq.
Next, configure iptables:
<pre>
sudo iptables -A POSTROUTING -t nat -s 192.168.44.1/24 -j MASQUERADE
sysctl -w net.ipv4.ip_forward=1
</pre>
And finally bring up the interface and run hostapd:
<pre>
sudo ifconfig wlan0 192.168.44.2
sudo hostapd -i wlan0 /etc/hostapd/hostapd.conf
</pre>
7c3427508cb3c79b641102d58ecf97485fc18421
Packaging
0
69
989
223
2021-04-13T22:33:21Z
Sicelo
5
/* Workflow */
wikitext
text/x-wiki
The packages we build for Maemo Leste are hosted on Github: https://github.com/maemo-leste
We use the Jenkins CI https://phoenix.maemo.org along with helper scripts that can be found at https://github.com/maemo-leste/jenkins-integration
The base logic of buildng Debian packages in Jenkins comes from https://jenkins-debian-glue.org
= Workflow =
Our workflow consists of having the packages in Git, along with respective branches.
The master branch in git should represent the latest development. When the sources are ready, we create a new branch called "maemo/ascii", which represents the Devuan suite we base it on.
Being git-based, our packages require the gbp.conf file inside the debian directory.
All of our packages contain the exact same gbp.conf, which is the following:
<pre>
[DEFAULT]
upstream-tag=%(version)s
</pre>
This file is used by gbp, which in turn is used by jenkins-debian-glue.
The rest is standard Debian packaging.
= Initial packaging =
TODO
= Updating a package =
TODO
4e4d3a9ea8384102025e362db83f8b4f645611f4
Development/Building Packages
0
80
990
851
2021-04-14T16:02:25Z
Sicelo
5
/* The git tag */
wikitext
text/x-wiki
= Maintenance workflow =
Each package in Maemo Leste uses a specific git-based workflow which makes it easy to track history and maintain in an easy way.
Taking the https://github.com/maemo-leste/libcal/ package as an example - a valid repository contains at least two git branches:
# master
# maemo/beowulf
Ideally, the branches should have no difference, but sometimes this may vary.
Your git repository should contain your code, and a '''debian''' directory - which contains the debian package build logic.
The <i>compat</i> level of the package should be no less than '''9''' and preferably it should use '''debhelper'''.
Once you have your package ready and it builds locally on your Maemo Leste VM/device, there are just a couple more things to
do to make it ready for building on Jenkins:
== The git tag ==
In '''debian/changelog''' you should have your package version. It is very important to have a git tag that reflects this version
so Jenkins and jenkins-debian-glue can figure out which revision to build.
Keep in mind that the git tag should '''only''' contain the upstream version and no package revisions or epochs, for example if we have:
<code>libcal (0.3-2) unstable; urgency=medium</code>
Our git tag would be <i>0.3</i>, and '''not''' <i>0.3-2</i>
Once tagged, push the tag to git origin.
NB: The tags are used to checkout the source code itself, the debian directory is always taken from git HEAD
== gbp.conf ==
Your '''debian''' directory should contain a file called '''gbp.conf''' with the following contents:
<code>
[DEFAULT]
upstream-tag=%(version)s
</code>
Once all this is in place, make sure that you have a '''maemo/$codename''' branch containing all this ready and pushed.
= How you can build packages =
Building a packages is easier than one might think, it requires roughly the following steps:
#. Access to a Devuan/Debian system (you can use a [[Virtual_Machine|VM running Maemo Leste]] or a [[:Category:Device|Device running Maemo Leste]].
#. Source code of a package, obtain either via '''git''' or '''apt source <packagename>'''
#. Install build dependencies (run from source directory): '''sudo apt-get build-dep .'''
#. Build a package using '''dpkg-buildpackage -uc -b'''
You can now install the package you have just built with '''dpkg -i somename.deb'''
Also see: https://wiki.debian.org/HowToPackageForDebian
== Submitting changes ==
If you make changes to a package, please submit a pull request for the repository of that package, likely: https://github.com/maemo-leste/PACKAGENAME
For now, we will take care of updating tags and branches.
= How packages end up in the repository =
There are currently two repositories:
* The main repository: https://maedevu.maemo.org/leste
* The extras repository: https://maedevu.maemo.org/extras
The packages in the extras repository are not core, but useful applications nonetheless.
The codenames and an /etc/apt/sources.list file entry would look like the following:
<code>
deb https://maedevu.maemo.org/leste beowulf main contrib non-free
deb https://maedevu.maemo.org/extras beowulf main contrib non-free
</code>
Packages in this repository get build by Jenkins, to which a select group of people has access. (Parazyd, Wizzup)
== How packages are built using Jenkins ==
Read only access to the http frontend: https://phoenix.maemo.org/ (write-access can be granted)
All packages are hosted on https://github.com/maemo-leste and a current list of all the packages in Jenkins can be found here:
https://github.com/maemo-leste/jenkins-integration/blob/master/config.py
Every repository has a branch for each release, for example:
# maemo/beowulf - main branch for Devuan Beowulf target
# maemo/beowulf-devel - optional branch for Devuan Beowulf with unstable/testing version
See [[Development/Branches]] for more information on the usual branches flow.
= Maemo Leste Extras =
If you wish to maintain your own package in Maemo Leste, you can apply a package at https://github.com/maemo-leste-extras/bugtracker
Have a look at the README in that repository and open a ticket.
== Consideration for HAM ==
For packages built for extras to appear correctly in Hildon Application Manager, be aware that Maemo packaging system
included a few enhancements that HAM assumes. The most important one is that your application will '''only''' appear in HAM if the
<code>debian/control</code> file has a correct <code>section</code> clause as explained on the [https://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide/Packaging,_Deploying_and_Distributing#Sections|Maemo Packaging Wiki]. This wiki page also explains how to have HAM show your application's icon. Note that having an icon showing in HAM is a separate issue from having an icon show up in the application list (Hildon Home). The latter is done through
<code>.desktop</code> files, while the former is done in <code>debian/control</code>.
== Adding an icon to the package in HAM ==
In case you want to add an icon that is shown in HAM when listing the packages, we provide a debhelper plugin that can
handle this with a simple PNG file. In your package's debian directory, add your PNG icon as '''maemo-icon.png'''.
Next, have your Build-Depends contain '''maemo-system-services-dev'''. maemo-system-services-dev will pull in the debhelper plugin.
Following this, in your '''debian/control''', under your '''Package''', add the following entry:
<pre>
XB-Maemo-Icon-26: ${maemo:icon26}
</pre>
And finally, in '''debian/rules''', assuming you're using debhelper, add this:
<pre>
override_dh_gencontrol:
dh_maemo_icon
dh_gencontrol
</pre>
Finally, if using quilt, add the icon in '''debian/source/include-binaries'''
<pre>$ echo debian/maemo-icon.png >> debian/source/include-binaries</pre>
Further reading: https://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide/Packaging,_Deploying_and_Distributing#Sections
554c6509cfc6b4ad394d621010ff57205a25c8ba
991
990
2021-04-14T16:14:23Z
Sicelo
5
/* The git tag */
wikitext
text/x-wiki
= Maintenance workflow =
Each package in Maemo Leste uses a specific git-based workflow which makes it easy to track history and maintain in an easy way.
Taking the https://github.com/maemo-leste/libcal/ package as an example - a valid repository contains at least two git branches:
# master
# maemo/beowulf
Ideally, the branches should have no difference, but sometimes this may vary.
Your git repository should contain your code, and a '''debian''' directory - which contains the debian package build logic.
The <i>compat</i> level of the package should be no less than '''9''' and preferably it should use '''debhelper'''.
Once you have your package ready and it builds locally on your Maemo Leste VM/device, there are just a couple more things to
do to make it ready for building on Jenkins:
== The git tag ==
In '''debian/changelog''' you should have your package version. It is very important to have a git tag that reflects this version
so Jenkins and jenkins-debian-glue can figure out which revision to build.
Keep in mind that the git tag should '''only''' contain the upstream version and no package revisions or epochs, for example if we have:
<code>libcal (0.3-2) unstable; urgency=medium</code>
Our git tag would be <i>0.3</i>, and '''not''' <i>0.3-2</i>
Once tagged, push the tag to git origin.
NB: The tags are used to checkout the source code itself, the debian directory is always taken from git HEAD, so there is no need to update the tag when changing the packaging (i.e. in debian directory). Tag shall be updated only when there are changes to the source files.
== gbp.conf ==
Your '''debian''' directory should contain a file called '''gbp.conf''' with the following contents:
<code>
[DEFAULT]
upstream-tag=%(version)s
</code>
Once all this is in place, make sure that you have a '''maemo/$codename''' branch containing all this ready and pushed.
= How you can build packages =
Building a packages is easier than one might think, it requires roughly the following steps:
#. Access to a Devuan/Debian system (you can use a [[Virtual_Machine|VM running Maemo Leste]] or a [[:Category:Device|Device running Maemo Leste]].
#. Source code of a package, obtain either via '''git''' or '''apt source <packagename>'''
#. Install build dependencies (run from source directory): '''sudo apt-get build-dep .'''
#. Build a package using '''dpkg-buildpackage -uc -b'''
You can now install the package you have just built with '''dpkg -i somename.deb'''
Also see: https://wiki.debian.org/HowToPackageForDebian
== Submitting changes ==
If you make changes to a package, please submit a pull request for the repository of that package, likely: https://github.com/maemo-leste/PACKAGENAME
For now, we will take care of updating tags and branches.
= How packages end up in the repository =
There are currently two repositories:
* The main repository: https://maedevu.maemo.org/leste
* The extras repository: https://maedevu.maemo.org/extras
The packages in the extras repository are not core, but useful applications nonetheless.
The codenames and an /etc/apt/sources.list file entry would look like the following:
<code>
deb https://maedevu.maemo.org/leste beowulf main contrib non-free
deb https://maedevu.maemo.org/extras beowulf main contrib non-free
</code>
Packages in this repository get build by Jenkins, to which a select group of people has access. (Parazyd, Wizzup)
== How packages are built using Jenkins ==
Read only access to the http frontend: https://phoenix.maemo.org/ (write-access can be granted)
All packages are hosted on https://github.com/maemo-leste and a current list of all the packages in Jenkins can be found here:
https://github.com/maemo-leste/jenkins-integration/blob/master/config.py
Every repository has a branch for each release, for example:
# maemo/beowulf - main branch for Devuan Beowulf target
# maemo/beowulf-devel - optional branch for Devuan Beowulf with unstable/testing version
See [[Development/Branches]] for more information on the usual branches flow.
= Maemo Leste Extras =
If you wish to maintain your own package in Maemo Leste, you can apply a package at https://github.com/maemo-leste-extras/bugtracker
Have a look at the README in that repository and open a ticket.
== Consideration for HAM ==
For packages built for extras to appear correctly in Hildon Application Manager, be aware that Maemo packaging system
included a few enhancements that HAM assumes. The most important one is that your application will '''only''' appear in HAM if the
<code>debian/control</code> file has a correct <code>section</code> clause as explained on the [https://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide/Packaging,_Deploying_and_Distributing#Sections|Maemo Packaging Wiki]. This wiki page also explains how to have HAM show your application's icon. Note that having an icon showing in HAM is a separate issue from having an icon show up in the application list (Hildon Home). The latter is done through
<code>.desktop</code> files, while the former is done in <code>debian/control</code>.
== Adding an icon to the package in HAM ==
In case you want to add an icon that is shown in HAM when listing the packages, we provide a debhelper plugin that can
handle this with a simple PNG file. In your package's debian directory, add your PNG icon as '''maemo-icon.png'''.
Next, have your Build-Depends contain '''maemo-system-services-dev'''. maemo-system-services-dev will pull in the debhelper plugin.
Following this, in your '''debian/control''', under your '''Package''', add the following entry:
<pre>
XB-Maemo-Icon-26: ${maemo:icon26}
</pre>
And finally, in '''debian/rules''', assuming you're using debhelper, add this:
<pre>
override_dh_gencontrol:
dh_maemo_icon
dh_gencontrol
</pre>
Finally, if using quilt, add the icon in '''debian/source/include-binaries'''
<pre>$ echo debian/maemo-icon.png >> debian/source/include-binaries</pre>
Further reading: https://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide/Packaging,_Deploying_and_Distributing#Sections
2efba4cbd24d04370c435ea4de8556c917af2463
Talks
0
99
993
615
2021-05-04T18:21:50Z
Parazyd
1
Add Bitreichcon 2020 talk.
wikitext
text/x-wiki
== Bitreichcon 2020 - 2nd May 2020 ==
'''The state of Maemo Leste''' - ''Ivan Jelincic (parazyd)''
[gopher://bitreich.org/1/con/2020 Event info (gopher)]
Slides: [gopher://bitreich.org/0/con/2020/rec/state-of-maemo-leste.md markdown]
Audio: [gopher://bitreich.org/9/con/2020/rec/brcon2020-state-of-maemo-leste.ogg OGG]
== FOSDEM 2020 - Freedom Main Track - 2nd February 2020 ==
'''Regaining control of your smartphone with postmarketOS and Maemo Leste - Status of Linux on the smartphone''' - ''Merlijn Wajer (Wizzup), Bart Ribbers (PureTryOut)''
[https://fosdem.org/2020/schedule/event/smartphones/ Event info]
Video: [https://video.fosdem.org/2020/Janson/smartphones.webm WebM/VP9], [https://video.fosdem.org/2020/Janson/smartphones.mp4 MP4]
== OpenFest 2019 - 2nd November 2019==
'''GNU/Linux: coming to a phone near you''' - ''Merlijn Wajer (Wizzup)''
[https://www.openfest.org/2019/en/full-schedule/#lecture-471 Event info]
Video: [https://www.youtube.com/watch?v=heQmjP5tQn0 YouTube] (via [https://invidio.us/watch?v=heQmjP5tQn0 Invidious])
== OpenAlt 2019 - 2nd November 2019 ==
'''Debian v kapse''' - ''Pavel Machek''
[https://openalt.cz/2019/program_detail.php#event_32 Event info]
== Devuan Conference #1: “THE POWER OF CHOICE” - 7th April 2019 ==
'''Maemo Leste: Mobile Hacker OS''' - ''Ivan Jelincic (parazyd)''
Video: [https://www.youtube.com/watch?v=_ULy7jBnXdo&t=12304 YouTube] (via [https://invidio.us/watch?v=_ULy7jBnXdo&t=12304 Invidious])
== FOSDEM 2019 - Lightning Talk - 2nd February 2019 ==
'''Maemo Leste - A Debian/Devuan based mobile hacker OS''' - ''Merlijn Wajer (Wizzup)''
[https://archive.fosdem.org/2019/schedule/event/maemo_leste_mobile Event info]
Video: [https://video.fosdem.org/2019/H.2215/maemo_leste_mobile.webm WebM/VP9], [https://video.fosdem.org/2019/H.2215/maemo_leste_mobile.mp4 MP4]
[https://maedevu.maemo.org/media/fosdem-2019-maemo-leste.pdf Slides]
== OpenFest 2018 - 4th November 2018 ==
'''Maemo Leste''' - ''Merlijn Wajer (Wizzup), Ivan Jelincic (parazyd)''
[https://www.openfest.org/2018/en/full-schedule/#lecture-360 Event info]
Video: [https://maedevu.maemo.org/media/openfest-2018-maemo-leste-wizzup-parazyd.webm WebM]
[https://maedevu.maemo.org/media/openfest-2018-maemo-leste.pdf Slides]
== OpenAlt 2018 - 3rd November 2018 ==
'''Maemo Leste - Debian do kapsy''' - ''Pavel Machek''
[https://openalt.cz/2018/program_detail.php#event_14 Event info]
Video: [https://www.youtube.com/watch?v=9C0j4M_AQ2I YouTube] (via [https://invidio.us/watch?v=9C0j4M_AQ2I Invidious])
[https://openalt.cz/2018/avatars/d96c9c95348879e4e6e2c27f665ca2b3-nokia_n900.pdf Slides]
2357f22cdbbc37fa96147d34e2b08ac413a090bd
994
993
2021-05-04T18:28:43Z
Parazyd
1
Add Pavel's talk on installfest.cz
wikitext
text/x-wiki
== installfest.cz - 3rd March 2021 ==
''' Rok Linuxového telefonu''' - ''Pavel Machek''
[https://installfest.cz/if21/ Event info]
Video [https://www.youtube.com/watch?v=KYmn9-0Tzz8&list=PLub6xBWO8gV-DFBwRbs4xJq4sTGcvEcN0&index=2 YouTube] (via [https://yewtu.be/watch?v=KYmn9-0Tzz8 invidious])
== Bitreichcon 2020 - 2nd May 2020 ==
'''The state of Maemo Leste''' - ''Ivan Jelincic (parazyd)''
[gopher://bitreich.org/1/con/2020 Event info (gopher)]
Slides: [gopher://bitreich.org/0/con/2020/rec/state-of-maemo-leste.md markdown]
Audio: [gopher://bitreich.org/9/con/2020/rec/brcon2020-state-of-maemo-leste.ogg OGG]
== FOSDEM 2020 - Freedom Main Track - 2nd February 2020 ==
'''Regaining control of your smartphone with postmarketOS and Maemo Leste - Status of Linux on the smartphone''' - ''Merlijn Wajer (Wizzup), Bart Ribbers (PureTryOut)''
[https://fosdem.org/2020/schedule/event/smartphones/ Event info]
Video: [https://video.fosdem.org/2020/Janson/smartphones.webm WebM/VP9], [https://video.fosdem.org/2020/Janson/smartphones.mp4 MP4]
== OpenFest 2019 - 2nd November 2019==
'''GNU/Linux: coming to a phone near you''' - ''Merlijn Wajer (Wizzup)''
[https://www.openfest.org/2019/en/full-schedule/#lecture-471 Event info]
Video: [https://www.youtube.com/watch?v=heQmjP5tQn0 YouTube] (via [https://invidio.us/watch?v=heQmjP5tQn0 Invidious])
== OpenAlt 2019 - 2nd November 2019 ==
'''Debian v kapse''' - ''Pavel Machek''
[https://openalt.cz/2019/program_detail.php#event_32 Event info]
== Devuan Conference #1: “THE POWER OF CHOICE” - 7th April 2019 ==
'''Maemo Leste: Mobile Hacker OS''' - ''Ivan Jelincic (parazyd)''
Video: [https://www.youtube.com/watch?v=_ULy7jBnXdo&t=12304 YouTube] (via [https://invidio.us/watch?v=_ULy7jBnXdo&t=12304 Invidious])
== FOSDEM 2019 - Lightning Talk - 2nd February 2019 ==
'''Maemo Leste - A Debian/Devuan based mobile hacker OS''' - ''Merlijn Wajer (Wizzup)''
[https://archive.fosdem.org/2019/schedule/event/maemo_leste_mobile Event info]
Video: [https://video.fosdem.org/2019/H.2215/maemo_leste_mobile.webm WebM/VP9], [https://video.fosdem.org/2019/H.2215/maemo_leste_mobile.mp4 MP4]
[https://maedevu.maemo.org/media/fosdem-2019-maemo-leste.pdf Slides]
== OpenFest 2018 - 4th November 2018 ==
'''Maemo Leste''' - ''Merlijn Wajer (Wizzup), Ivan Jelincic (parazyd)''
[https://www.openfest.org/2018/en/full-schedule/#lecture-360 Event info]
Video: [https://maedevu.maemo.org/media/openfest-2018-maemo-leste-wizzup-parazyd.webm WebM]
[https://maedevu.maemo.org/media/openfest-2018-maemo-leste.pdf Slides]
== OpenAlt 2018 - 3rd November 2018 ==
'''Maemo Leste - Debian do kapsy''' - ''Pavel Machek''
[https://openalt.cz/2018/program_detail.php#event_14 Event info]
Video: [https://www.youtube.com/watch?v=9C0j4M_AQ2I YouTube] (via [https://invidio.us/watch?v=9C0j4M_AQ2I Invidious])
[https://openalt.cz/2018/avatars/d96c9c95348879e4e6e2c27f665ca2b3-nokia_n900.pdf Slides]
dac53941173335787e9b342ef03ad06d1758f521
Debugging
0
128
995
2021-05-05T13:27:19Z
Wizzup
4
Created page with "=== Things break. How do you debug the problems? === You will want to take the following steps: * Add the devuan/debian debug repositories. * Identify the program that crash..."
wikitext
text/x-wiki
=== Things break. How do you debug the problems? ===
You will want to take the following steps:
* Add the devuan/debian debug repositories.
* Identify the program that crashes (you can use `dpkg -S /usr/bin/program-name`) and install the -dbg or -dbgsym packages
* Install the -dbg and -dbgsym dependencies of the packages
* Attach to the program in gdb (or start it from gdb)
==== Add the debug repositories ====
Maemo Leste ships its debug packages in the normal repository, but for the Devuan/Debian packages, you need to add an additional source list file:
<pre>
# cat /etc/apt/sources.list.d/debug.list
deb http://deb.debian.org/debian-debug/ buster-debug main
deb http://deb.debian.org/debian-debug/ buster-backports-debug main
deb https://pkgmaster.devuan.org/devuan beowulf main contrib non-free
deb https://pkgmaster.devuan.org/devuan beowulf-updates main contrib non-free
deb https://pkgmaster.devuan.org/devuan beowulf-security main contrib non-free
</pre>
==== Identify the program that crashes ====
Example: location-status (the location status applet) crashes.
Find out which main program or library is likely involved in the crash. If clicking the location status applet button causes a crash, the problem is likely in that package, and we can use dpkg -S to figure out what package the file is part of, and then install the debug symbols:
<pre>
# dpkg -S /usr/lib/arm-linux-gnueabihf/hildon-desktop/location-status.so
location-status: /usr/lib/arm-linux-gnueabihf/hildon-desktop/location-status.so
# apt-cache search location-status | grep dbg
location-status-dbgsym - debug symbols for location-status
# apt install location-status-dbgsym
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following package was automatically installed and is no longer required:
libmicrodns0
Use 'apt autoremove' to remove it.
The following NEW packages will be installed:
location-status-dbgsym
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 27,1 kB of archives.
After this operation, 41,0 kB of additional disk space will be used.
0% [Working]
Get:1 https://maedevu.maemo.org/leste beowulf/main armhf location-status-dbgsym armhf 0.111-1+2m7 [27,1 kB]
Fetched 27,1 kB in 0s (55,8 kB/s)
Selecting previously unselected package location-status-dbgsym.
(Reading database ... 96891 files and directories currently installed.)
Preparing to unpack .../location-status-dbgsym_0.111-1+2m7_armhf.deb ...
Unpacking location-status-dbgsym (0.111-1+2m7) ...
Setting up location-status-dbgsym (0.111-1+2m7) ...
</pre>
==== Install additional debug files ====
To get useful stack traces, gdb typically requires the debug symbols of other libraries to be installed as well. Following our example location-status, we can get a list of all the libraries involved using ldd:
<pre>
# ldd /usr/lib/arm-linux-gnueabihf/hildon-desktop/location-status.so
</pre>
This lists a lot of libraries, so we will start with the basic ones, e.g. glib-2.0:
<pre>
root@maindroid:/etc/apt# dpkg -S /usr/lib/arm-linux-gnueabihf/libglib-2.0.so.0.5800.3
libglib2.0-0:armhf: /usr/lib/arm-linux-gnueabihf/libglib-2.0.so.0.5800.3
root@maindroid:/etc/apt# apt-cache search libglib2.0-0 | grep dbg
libglib2.0-0-dbgsym - debug symbols for libglib2.0-0
# apt install libglib2.0-0-dbgsym
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following package was automatically installed and is no longer required:
libmicrodns0
Use 'apt autoremove' to remove it.
The following NEW packages will be installed:
libglib2.0-0-dbgsym
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 4240 kB of archives.
After this operation, 4984 kB of additional disk space will be used.
Get:1 http://deb.debian.org/debian-debug buster-debug/main armhf libglib2.0-0-dbgsym armhf 2.58.3-2+deb10u2 [4240 kB]
0% [1 libglib2.0-0-dbgsym 0 B/4240 kB 0%]
Fetched 4240 kB in 3s (1278 kB/s)
Selecting previously unselected package libglib2.0-0-dbgsym:armhf.
(Reading database ... 96893 files and directories currently installed.)
Preparing to unpack .../libglib2.0-0-dbgsym_2.58.3-2+deb10u2_armhf.deb ...
Unpacking libglib2.0-0-dbgsym:armhf (2.58.3-2+deb10u2) ...
Setting up libglib2.0-0-dbgsym:armhf (2.58.3-2+deb10u2) ...
</pre>
We can repeat this process until we get satisfactory backtraces in gdb. For example:
<pre>
# gdb attach <pid>
[...]
Thread 1 "hildon-status-m" received signal SIGSEGV, Segmentation fault.
0xb6625f72 in g_atomic_ref_count_compare (arc=arc@entry=0x38, val=val@entry=0) at ../../../glib/grefcount.c:284
284 ../../../glib/grefcount.c: No such file or directory.
(gdb) bt
#0 0xb6625f72 in g_atomic_ref_count_compare (arc=arc@entry=0x38, val=val@entry=0) at ../../../glib/grefcount.c:284
#1 0xb660cf0a in g_hash_table_lookup_node
(hash_return=<synthetic pointer>, key=0xbed97c68, hash_table=<error reading variable: Cannot access memory at address 0x30>0x10) at ../../../glib/ghash.c:1153
#2 0xb660cf0a in g_hash_table_lookup (hash_table=<error reading variable: Cannot access memory at address 0x30>0x10, key=0xbed97c68) at ../../../glib/ghash.c:1153
#3 0xb64b03fe in () at /usr/lib/arm-linux-gnueabihf/libosso.so.1
</pre>
This means we should probably install debug symbols for libosso.so.1, so we add it and repeat:
<pre>
root@maindroid:/etc/apt# dpkg -S /usr/lib/arm-linux-gnueabihf/libosso.so.1
libosso1: /usr/lib/arm-linux-gnueabihf/libosso.so.1
root@maindroid:/etc/apt# apt-cache search libosso1 | grep dbg
libosso1-dbgsym - debug symbols for libosso1
root@maindroid:/etc/apt# apt install libosso1-dbgsym
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following package was automatically installed and is no longer required:
libmicrodns0
Use 'apt autoremove' to remove it.
The following NEW packages will be installed:
libosso1-dbgsym
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 111 kB of archives.
After this operation, 137 kB of additional disk space will be used.
Get:1 https://maedevu.maemo.org/leste beowulf/main armhf libosso1-dbgsym armhf 2.35+2m7 [111 kB]
Fetched 111 kB in 1s (197 kB/s)
Selecting previously unselected package libosso1-dbgsym.
(Reading database ... 96903 files and directories currently installed.)
Preparing to unpack .../libosso1-dbgsym_2.35+2m7_armhf.deb ...
Unpacking libosso1-dbgsym (2.35+2m7) ...
Setting up libosso1-dbgsym (2.35+2m7) ...
</pre>
Try again in gdb:
<pre>
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
__libc_do_syscall () at ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S:46
46 ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S: No such file or directory.
(gdb) c
Continuing.
Thread 1 "hildon-status-m" received signal SIGSEGV, Segmentation fault.
0x10460f44 in ?? ()
(gdb) bt
#0 0x10460f44 in ()
#1 0xb660cf16 in g_hash_table_lookup_node
(hash_return=<synthetic pointer>, key=0xbed97c60, hash_table=0xb66cb765<error reading variable: Cannot access memory at address 0x2dbf004b>)
at ../../../glib/ghash.c:379
#2 0xb660cf16 in g_hash_table_lookup (hash_table=0xb66cb765<error reading variable: Cannot access memory at address 0x2dbf004b>, key=key@entry=0xbed97c60)
at ../../../glib/ghash.c:1153
#3 0xb64b03fe in try_plugin (dir=<optimized out>, file=file@entry=0xb474d75c "liblocation_applet.so", osso=<optimized out>) at osso-cp-plugin.c:103
#4 0xb64b0466 in osso_cp_plugin_execute (osso=0x63a4b8, filename=0xb474d75c "liblocation_applet.so", data=data@entry=0x669850, user_activated=user_activated@entry=1)
at osso-cp-plugin.c:148
#5 0xb474d418 in execute_cp_plugin (obj=0x669850) at location-status.c:84
#9 0xb66e10b2 in <emit signal ??? on instance 0x669850 [HildonButton]> (instance=<optimized out>, signal_id=<optimized out>, detail=0)
at ../../../gobject/gsignal.c:3447
#6 0xb66ccb7e in g_closure_invoke (closure=0x664af8, return_value=0x0, n_param_values=1, param_values=0xbed98df0, invocation_hint=0xbed98d8c)
at ../../../gobject/gclosure.c:810
#7 0xb66dab0a in signal_emit_unlocked_R
(node=node@entry=0x551458, detail=0, instance=0x669850, emission_return=emission_return@entry=0x0, instance_and_params=0xbed98df0)
at ../../../gobject/gsignal.c:3635
#8 0xb66e0c0e in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=detail@entry=1, var_args=..., var_args@entry=...)
at ../../../gobject/gsignal.c:3391
#10 0xb6a9cd6c in () at /usr/lib/arm-linux-gnueabihf/libgtk-x11-2.0.so.0
</pre>
Do the same for libgtk-x11-2.0.so.0, etc.
==== TODO ====
* valgrind
* gdb
Example debugging location-status bug:
3111eaa535ea023729bfb7d00032319f2a91cd9f
Debugging
0
128
996
995
2021-05-05T13:30:57Z
Wizzup
4
wikitext
text/x-wiki
=== Things break. How do you debug the problems? ===
You will want to take the following steps:
* Add the devuan/debian debug repositories.
* Identify the program that crashes (you can use `dpkg -S /usr/bin/program-name`) and install the -dbg or -dbgsym packages
* Install the -dbg and -dbgsym dependencies of the packages
* Attach to the program in gdb (or start it from gdb)
==== Add the debug repositories ====
Maemo Leste ships its debug packages in the normal repository, but for the Devuan/Debian packages, you need to add an additional source list file:
<pre>
# cat /etc/apt/sources.list.d/debug.list
deb http://deb.debian.org/debian-debug/ buster-debug main
deb http://deb.debian.org/debian-debug/ buster-backports-debug main
deb https://pkgmaster.devuan.org/devuan beowulf main contrib non-free
deb https://pkgmaster.devuan.org/devuan beowulf-updates main contrib non-free
deb https://pkgmaster.devuan.org/devuan beowulf-security main contrib non-free
</pre>
==== Identify the program that crashes ====
Example: location-status (the location status applet) crashes.
Find out which main program or library is likely involved in the crash. If clicking the location status applet button causes a crash, the problem is likely in that package, and we can use dpkg -S to figure out what package the file is part of, and then install the debug symbols:
<pre>
# dpkg -S /usr/lib/arm-linux-gnueabihf/hildon-desktop/location-status.so
location-status: /usr/lib/arm-linux-gnueabihf/hildon-desktop/location-status.so
# apt-cache search location-status | grep dbg
location-status-dbgsym - debug symbols for location-status
# apt install location-status-dbgsym
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following package was automatically installed and is no longer required:
libmicrodns0
Use 'apt autoremove' to remove it.
The following NEW packages will be installed:
location-status-dbgsym
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 27,1 kB of archives.
After this operation, 41,0 kB of additional disk space will be used.
0% [Working]
Get:1 https://maedevu.maemo.org/leste beowulf/main armhf location-status-dbgsym armhf 0.111-1+2m7 [27,1 kB]
Fetched 27,1 kB in 0s (55,8 kB/s)
Selecting previously unselected package location-status-dbgsym.
(Reading database ... 96891 files and directories currently installed.)
Preparing to unpack .../location-status-dbgsym_0.111-1+2m7_armhf.deb ...
Unpacking location-status-dbgsym (0.111-1+2m7) ...
Setting up location-status-dbgsym (0.111-1+2m7) ...
</pre>
==== Install additional debug files ====
To get useful stack traces, gdb typically requires the debug symbols of other libraries to be installed as well. Following our example location-status, we can get a list of all the libraries involved using ldd:
<pre>
# ldd /usr/lib/arm-linux-gnueabihf/hildon-desktop/location-status.so
</pre>
This lists a lot of libraries, so we will start with the basic ones, e.g. glib-2.0:
<pre>
root@maindroid:/etc/apt# dpkg -S /usr/lib/arm-linux-gnueabihf/libglib-2.0.so.0.5800.3
libglib2.0-0:armhf: /usr/lib/arm-linux-gnueabihf/libglib-2.0.so.0.5800.3
root@maindroid:/etc/apt# apt-cache search libglib2.0-0 | grep dbg
libglib2.0-0-dbgsym - debug symbols for libglib2.0-0
# apt install libglib2.0-0-dbgsym
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following package was automatically installed and is no longer required:
libmicrodns0
Use 'apt autoremove' to remove it.
The following NEW packages will be installed:
libglib2.0-0-dbgsym
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 4240 kB of archives.
After this operation, 4984 kB of additional disk space will be used.
Get:1 http://deb.debian.org/debian-debug buster-debug/main armhf libglib2.0-0-dbgsym armhf 2.58.3-2+deb10u2 [4240 kB]
0% [1 libglib2.0-0-dbgsym 0 B/4240 kB 0%]
Fetched 4240 kB in 3s (1278 kB/s)
Selecting previously unselected package libglib2.0-0-dbgsym:armhf.
(Reading database ... 96893 files and directories currently installed.)
Preparing to unpack .../libglib2.0-0-dbgsym_2.58.3-2+deb10u2_armhf.deb ...
Unpacking libglib2.0-0-dbgsym:armhf (2.58.3-2+deb10u2) ...
Setting up libglib2.0-0-dbgsym:armhf (2.58.3-2+deb10u2) ...
</pre>
We can repeat this process until we get satisfactory backtraces in gdb. For example:
<pre>
# gdb attach <pid>
[...]
Thread 1 "hildon-status-m" received signal SIGSEGV, Segmentation fault.
0xb6625f72 in g_atomic_ref_count_compare (arc=arc@entry=0x38, val=val@entry=0) at ../../../glib/grefcount.c:284
284 ../../../glib/grefcount.c: No such file or directory.
(gdb) bt
#0 0xb6625f72 in g_atomic_ref_count_compare (arc=arc@entry=0x38, val=val@entry=0) at ../../../glib/grefcount.c:284
#1 0xb660cf0a in g_hash_table_lookup_node
(hash_return=<synthetic pointer>, key=0xbed97c68, hash_table=<error reading variable: Cannot access memory at address 0x30>0x10) at ../../../glib/ghash.c:1153
#2 0xb660cf0a in g_hash_table_lookup (hash_table=<error reading variable: Cannot access memory at address 0x30>0x10, key=0xbed97c68) at ../../../glib/ghash.c:1153
#3 0xb64b03fe in () at /usr/lib/arm-linux-gnueabihf/libosso.so.1
</pre>
This means we should probably install debug symbols for libosso.so.1, so we add it and repeat:
<pre>
root@maindroid:/etc/apt# dpkg -S /usr/lib/arm-linux-gnueabihf/libosso.so.1
libosso1: /usr/lib/arm-linux-gnueabihf/libosso.so.1
root@maindroid:/etc/apt# apt-cache search libosso1 | grep dbg
libosso1-dbgsym - debug symbols for libosso1
root@maindroid:/etc/apt# apt install libosso1-dbgsym
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following package was automatically installed and is no longer required:
libmicrodns0
Use 'apt autoremove' to remove it.
The following NEW packages will be installed:
libosso1-dbgsym
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 111 kB of archives.
After this operation, 137 kB of additional disk space will be used.
Get:1 https://maedevu.maemo.org/leste beowulf/main armhf libosso1-dbgsym armhf 2.35+2m7 [111 kB]
Fetched 111 kB in 1s (197 kB/s)
Selecting previously unselected package libosso1-dbgsym.
(Reading database ... 96903 files and directories currently installed.)
Preparing to unpack .../libosso1-dbgsym_2.35+2m7_armhf.deb ...
Unpacking libosso1-dbgsym (2.35+2m7) ...
Setting up libosso1-dbgsym (2.35+2m7) ...
</pre>
Try again in gdb:
<pre>
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
__libc_do_syscall () at ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S:46
46 ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S: No such file or directory.
(gdb) c
Continuing.
Thread 1 "hildon-status-m" received signal SIGSEGV, Segmentation fault.
0x10460f44 in ?? ()
(gdb) bt
#0 0x10460f44 in ()
#1 0xb660cf16 in g_hash_table_lookup_node
(hash_return=<synthetic pointer>, key=0xbed97c60, hash_table=0xb66cb765<error reading variable: Cannot access memory at address 0x2dbf004b>)
at ../../../glib/ghash.c:379
#2 0xb660cf16 in g_hash_table_lookup (hash_table=0xb66cb765<error reading variable: Cannot access memory at address 0x2dbf004b>, key=key@entry=0xbed97c60)
at ../../../glib/ghash.c:1153
#3 0xb64b03fe in try_plugin (dir=<optimized out>, file=file@entry=0xb474d75c "liblocation_applet.so", osso=<optimized out>) at osso-cp-plugin.c:103
#4 0xb64b0466 in osso_cp_plugin_execute (osso=0x63a4b8, filename=0xb474d75c "liblocation_applet.so", data=data@entry=0x669850, user_activated=user_activated@entry=1)
at osso-cp-plugin.c:148
#5 0xb474d418 in execute_cp_plugin (obj=0x669850) at location-status.c:84
#9 0xb66e10b2 in <emit signal ??? on instance 0x669850 [HildonButton]> (instance=<optimized out>, signal_id=<optimized out>, detail=0)
at ../../../gobject/gsignal.c:3447
#6 0xb66ccb7e in g_closure_invoke (closure=0x664af8, return_value=0x0, n_param_values=1, param_values=0xbed98df0, invocation_hint=0xbed98d8c)
at ../../../gobject/gclosure.c:810
#7 0xb66dab0a in signal_emit_unlocked_R
(node=node@entry=0x551458, detail=0, instance=0x669850, emission_return=emission_return@entry=0x0, instance_and_params=0xbed98df0)
at ../../../gobject/gsignal.c:3635
#8 0xb66e0c0e in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=detail@entry=1, var_args=..., var_args@entry=...)
at ../../../gobject/gsignal.c:3391
#10 0xb6a9cd6c in () at /usr/lib/arm-linux-gnueabihf/libgtk-x11-2.0.so.0
</pre>
Do the same for libgtk-x11-2.0.so.0, etc. Finally, we get the full trace:
<pre>
root@maindroid:/etc/apt# gdb attach 8990
GNU gdb (Debian 8.2.1-2+b3) 8.2.1
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "arm-linux-gnueabihf".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
attach: No such file or directory.
Attaching to process 8990
[New LWP 8991]
[New LWP 8992]
[New LWP 8993]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
__libc_do_syscall () at ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S:46
46 ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S: No such file or directory.
(gdb) c
Continuing.
Thread 1 "hildon-status-m" received signal SIGSEGV, Segmentation fault.
g_type_class_meta_marshalv (closure=0xbed97c60, return_value=0x0, instance=0x955d3700, args=..., marshal_data=0x63a090, n_params=-1093038708, param_types=0x0)
at ../../../gobject/gclosure.c:1028
1028 ../../../gobject/gclosure.c: No such file or directory.
(gdb) bt
#0 0xb66cb768 in g_type_class_meta_marshalv
(closure=0xbed97c60, return_value=0x0, instance=0x955d3700, args=..., marshal_data=0x63a090, n_params=-1093038708, param_types=0x0)
at ../../../gobject/gclosure.c:1028
#1 0xb660cf16 in g_hash_table_lookup_node (hash_return=<synthetic pointer>, key=0xbed97c60, hash_table=0x544200 = {...}) at ../../../glib/ghash.c:379
#2 0xb660cf16 in g_hash_table_lookup (hash_table=0x544200 = {...}, key=key@entry=0xbed97c60) at ../../../glib/ghash.c:1153
#3 0xb64b03fe in try_plugin (dir=<optimized out>, file=file@entry=0xb474d75c "liblocation_applet.so", osso=<optimized out>) at osso-cp-plugin.c:103
#4 0xb64b0466 in osso_cp_plugin_execute (osso=0x639cb8, filename=0xb474d75c "liblocation_applet.so", data=data@entry=0x669850, user_activated=user_activated@entry=1)
at osso-cp-plugin.c:148
#5 0xb474d418 in execute_cp_plugin (obj=0x669850) at location-status.c:84
#9 0xb66e10b2 in <emit signal ??? on instance 0x669850 [HildonButton]> (instance=<optimized out>, signal_id=<optimized out>, detail=0)
at ../../../gobject/gsignal.c:3447
#6 0xb66ccb7e in g_closure_invoke (closure=0x64f0e0, return_value=0x0, n_param_values=1, param_values=0xbed98df0, invocation_hint=0xbed98d8c)
at ../../../gobject/gclosure.c:810
#7 0xb66dab0a in signal_emit_unlocked_R
(node=node@entry=0x551458, detail=0, instance=0x669850, emission_return=emission_return@entry=0x0, instance_and_params=0xbed98df0)
at ../../../gobject/gsignal.c:3635
#8 0xb66e0c0e in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=detail@entry=1, var_args=..., var_args@entry=...)
at ../../../gobject/gsignal.c:3391
#10 0xb6a9cd6c in gtk_real_button_released (button=0x669850 [HildonButton]) at /build/gtk+2.0-2.24.32/gtk/gtkbutton.c:1712
#14 0xb66e10b2 in <emit signal ??? on instance 0x669850 [HildonButton]> (instance=<optimized out>, signal_id=<optimized out>, detail=0)
at ../../../gobject/gsignal.c:3447
#11 0xb66ccb7e in g_closure_invoke (closure=0x551240, return_value=0x0, n_param_values=1, param_values=0xbed99068, invocation_hint=0xbed99004)
at ../../../gobject/gclosure.c:810
#12 0xb66dab7c in signal_emit_unlocked_R
(node=node@entry=0x551258, detail=0, instance=0x669850, emission_return=emission_return@entry=0x0, instance_and_params=0xbed99068)
at ../../../gobject/gsignal.c:3565
#13 0xb66e0c0e in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=detail@entry=3201929896, var_args=..., var_args@entry=...)
at ../../../gobject/gsignal.c:3391
#15 0xb6a9c1e4 in gtk_button_button_release (widget=<optimized out>, event=<optimized out>) at /build/gtk+2.0-2.24.32/gtk/gtkbutton.c:1604
#20 0xb66e10b2 in <emit signal ??? on instance 0x669850 [HildonButton]> (instance=instance@entry=0x669850, signal_id=<optimized out>, detail=0)
at ../../../gobject/gsignal.c:3447
#16 0xb6b0de34 in _gtk_marshal_BOOLEAN__BOXED
(closure=0x542e98, return_value=0xbed992a8, n_param_values=<optimized out>, param_values=0xbed992f8, invocation_hint=0xbed99294, marshal_data=0xb6a9c1d5 <gtk_button_button_release>) at gtkmarshalers.c:84
#17 0xb66ccb7e in g_closure_invoke (closure=0x542e98, return_value=0xbed992a8, n_param_values=2, param_values=0xbed992f8, invocation_hint=0xbed99294)
at ../../../gobject/gclosure.c:810
#18 0xb66da2e2 in signal_emit_unlocked_R
(node=node@entry=0x542ec0, detail=0, instance=0x669850, emission_return=emission_return@entry=0xbed993a8, instance_and_params=0xbed992f8)
at ../../../gobject/gsignal.c:3673
#19 0xb66e08d2 in g_signal_emit_valist (instance=instance@entry=0x669850, signal_id=<optimized out>, detail=detail@entry=3201930332, var_args=...,
var_args@entry=...) at ../../../gobject/gsignal.c:3401
#21 0xb6bccb52 in gtk_widget_event_internal (widget=widget@entry=0x669850 [HildonButton], event=event@entry=0x6e0570) at /build/gtk+2.0-2.24.32/gtk/gtkwidget.c:5211
#22 0xb6bcccd0 in IA__gtk_widget_event (widget=widget@entry=0x669850 [HildonButton], event=event@entry=0x6e0570) at /build/gtk+2.0-2.24.32/gtk/gtkwidget.c:5008
#23 0xb6b0ccaa in IA__gtk_propagate_event (widget=0x669850 [HildonButton], event=0x6e0570) at /build/gtk+2.0-2.24.32/gtk/gtkmain.c:2503
#24 0xb6b0cf9a in IA__gtk_main_do_event (event=0x6e0570) at /build/gtk+2.0-2.24.32/gtk/gtkmain.c:1698
#25 0xb6b0cf9a in IA__gtk_main_do_event (event=<optimized out>) at /build/gtk+2.0-2.24.32/gtk/gtkmain.c:1503
#26 0xb69ed6f2 in gdk_event_dispatch (source=<optimized out>, callback=<optimized out>, user_data=<optimized out>)
at /build/gtk+2.0-2.24.32/gdk/x11/gdkevents-x11.c:2425
#27 0xb661987e in g_main_dispatch (context=0x571b68) at ../../../glib/gmain.c:3182
#28 0xb661987e in g_main_context_dispatch (context=context@entry=0x571b68) at ../../../glib/gmain.c:3847
#29 0xb6619a2a in g_main_context_iterate (context=0x571b68, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:3920
#30 0xb6619ca2 in g_main_loop_run (loop=0x641090) at ../../../glib/gmain.c:4116
#31 0xb6b0c4b0 in IA__gtk_main () at /build/gtk+2.0-2.24.32/gtk/gtkmain.c:1270
#32 0xb51231f0 in main () at /usr/bin/hildon-status-menu.launch
#33 0x004d208a in main ()
</pre>
==== TODO ====
* valgrind
* gdb
Example debugging location-status bug:
0ea161dcc95434dc9f8c970596d1cafa8a847c1d
998
996
2021-05-05T18:58:09Z
Wizzup
4
wikitext
text/x-wiki
=== Things break. How do you debug the problems? ===
You will want to take the following steps:
* Add the devuan/debian debug repositories.
* Identify the program that crashes (you can use `dpkg -S /usr/bin/program-name`) and install the -dbg or -dbgsym packages
* Install the -dbg and -dbgsym dependencies of the packages
* Attach to the program in gdb (or start it from gdb)
==== Add the debug repositories ====
Maemo Leste ships its debug packages in the normal repository, but for the Devuan/Debian packages, you need to add an additional source list file:
<pre>
# cat /etc/apt/sources.list.d/debug.list
deb http://deb.debian.org/debian-debug/ buster-debug main
deb http://deb.debian.org/debian-debug/ buster-backports-debug main
deb https://pkgmaster.devuan.org/devuan beowulf main contrib non-free
deb https://pkgmaster.devuan.org/devuan beowulf-updates main contrib non-free
deb https://pkgmaster.devuan.org/devuan beowulf-security main contrib non-free
</pre>
==== Identify the program that crashes ====
Example: location-status (the location status applet) crashes.
Find out which main program or library is likely involved in the crash. If clicking the location status applet button causes a crash, the problem is likely in that package, and we can use dpkg -S to figure out what package the file is part of, and then install the debug symbols:
<pre>
# dpkg -S /usr/lib/arm-linux-gnueabihf/hildon-desktop/location-status.so
location-status: /usr/lib/arm-linux-gnueabihf/hildon-desktop/location-status.so
# apt-cache search location-status | grep dbg
location-status-dbgsym - debug symbols for location-status
# apt install location-status-dbgsym
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following package was automatically installed and is no longer required:
libmicrodns0
Use 'apt autoremove' to remove it.
The following NEW packages will be installed:
location-status-dbgsym
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 27,1 kB of archives.
After this operation, 41,0 kB of additional disk space will be used.
0% [Working]
Get:1 https://maedevu.maemo.org/leste beowulf/main armhf location-status-dbgsym armhf 0.111-1+2m7 [27,1 kB]
Fetched 27,1 kB in 0s (55,8 kB/s)
Selecting previously unselected package location-status-dbgsym.
(Reading database ... 96891 files and directories currently installed.)
Preparing to unpack .../location-status-dbgsym_0.111-1+2m7_armhf.deb ...
Unpacking location-status-dbgsym (0.111-1+2m7) ...
Setting up location-status-dbgsym (0.111-1+2m7) ...
</pre>
==== Install additional debug files ====
To get useful stack traces, gdb typically requires the debug symbols of other libraries to be installed as well. Following our example location-status, we can get a list of all the libraries involved using ldd:
<pre>
# ldd /usr/lib/arm-linux-gnueabihf/hildon-desktop/location-status.so
</pre>
This lists a lot of libraries, so we will start with the basic ones, e.g. glib-2.0:
<pre>
root@maindroid:/etc/apt# dpkg -S /usr/lib/arm-linux-gnueabihf/libglib-2.0.so.0.5800.3
libglib2.0-0:armhf: /usr/lib/arm-linux-gnueabihf/libglib-2.0.so.0.5800.3
root@maindroid:/etc/apt# apt-cache search libglib2.0-0 | grep dbg
libglib2.0-0-dbgsym - debug symbols for libglib2.0-0
# apt install libglib2.0-0-dbgsym
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following package was automatically installed and is no longer required:
libmicrodns0
Use 'apt autoremove' to remove it.
The following NEW packages will be installed:
libglib2.0-0-dbgsym
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 4240 kB of archives.
After this operation, 4984 kB of additional disk space will be used.
Get:1 http://deb.debian.org/debian-debug buster-debug/main armhf libglib2.0-0-dbgsym armhf 2.58.3-2+deb10u2 [4240 kB]
0% [1 libglib2.0-0-dbgsym 0 B/4240 kB 0%]
Fetched 4240 kB in 3s (1278 kB/s)
Selecting previously unselected package libglib2.0-0-dbgsym:armhf.
(Reading database ... 96893 files and directories currently installed.)
Preparing to unpack .../libglib2.0-0-dbgsym_2.58.3-2+deb10u2_armhf.deb ...
Unpacking libglib2.0-0-dbgsym:armhf (2.58.3-2+deb10u2) ...
Setting up libglib2.0-0-dbgsym:armhf (2.58.3-2+deb10u2) ...
</pre>
We can repeat this process until we get satisfactory backtraces in gdb. For example:
<pre>
# gdb attach <pid>
[...]
Thread 1 "hildon-status-m" received signal SIGSEGV, Segmentation fault.
0xb6625f72 in g_atomic_ref_count_compare (arc=arc@entry=0x38, val=val@entry=0) at ../../../glib/grefcount.c:284
284 ../../../glib/grefcount.c: No such file or directory.
(gdb) bt
#0 0xb6625f72 in g_atomic_ref_count_compare (arc=arc@entry=0x38, val=val@entry=0) at ../../../glib/grefcount.c:284
#1 0xb660cf0a in g_hash_table_lookup_node
(hash_return=<synthetic pointer>, key=0xbed97c68, hash_table=<error reading variable: Cannot access memory at address 0x30>0x10) at ../../../glib/ghash.c:1153
#2 0xb660cf0a in g_hash_table_lookup (hash_table=<error reading variable: Cannot access memory at address 0x30>0x10, key=0xbed97c68) at ../../../glib/ghash.c:1153
#3 0xb64b03fe in () at /usr/lib/arm-linux-gnueabihf/libosso.so.1
</pre>
This means we should probably install debug symbols for libosso.so.1, so we add it and repeat:
<pre>
root@maindroid:/etc/apt# dpkg -S /usr/lib/arm-linux-gnueabihf/libosso.so.1
libosso1: /usr/lib/arm-linux-gnueabihf/libosso.so.1
root@maindroid:/etc/apt# apt-cache search libosso1 | grep dbg
libosso1-dbgsym - debug symbols for libosso1
root@maindroid:/etc/apt# apt install libosso1-dbgsym
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following package was automatically installed and is no longer required:
libmicrodns0
Use 'apt autoremove' to remove it.
The following NEW packages will be installed:
libosso1-dbgsym
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 111 kB of archives.
After this operation, 137 kB of additional disk space will be used.
Get:1 https://maedevu.maemo.org/leste beowulf/main armhf libosso1-dbgsym armhf 2.35+2m7 [111 kB]
Fetched 111 kB in 1s (197 kB/s)
Selecting previously unselected package libosso1-dbgsym.
(Reading database ... 96903 files and directories currently installed.)
Preparing to unpack .../libosso1-dbgsym_2.35+2m7_armhf.deb ...
Unpacking libosso1-dbgsym (2.35+2m7) ...
Setting up libosso1-dbgsym (2.35+2m7) ...
</pre>
Try again in gdb:
<pre>
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
__libc_do_syscall () at ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S:46
46 ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S: No such file or directory.
(gdb) c
Continuing.
Thread 1 "hildon-status-m" received signal SIGSEGV, Segmentation fault.
0x10460f44 in ?? ()
(gdb) bt
#0 0x10460f44 in ()
#1 0xb660cf16 in g_hash_table_lookup_node
(hash_return=<synthetic pointer>, key=0xbed97c60, hash_table=0xb66cb765<error reading variable: Cannot access memory at address 0x2dbf004b>)
at ../../../glib/ghash.c:379
#2 0xb660cf16 in g_hash_table_lookup (hash_table=0xb66cb765<error reading variable: Cannot access memory at address 0x2dbf004b>, key=key@entry=0xbed97c60)
at ../../../glib/ghash.c:1153
#3 0xb64b03fe in try_plugin (dir=<optimized out>, file=file@entry=0xb474d75c "liblocation_applet.so", osso=<optimized out>) at osso-cp-plugin.c:103
#4 0xb64b0466 in osso_cp_plugin_execute (osso=0x63a4b8, filename=0xb474d75c "liblocation_applet.so", data=data@entry=0x669850, user_activated=user_activated@entry=1)
at osso-cp-plugin.c:148
#5 0xb474d418 in execute_cp_plugin (obj=0x669850) at location-status.c:84
#9 0xb66e10b2 in <emit signal ??? on instance 0x669850 [HildonButton]> (instance=<optimized out>, signal_id=<optimized out>, detail=0)
at ../../../gobject/gsignal.c:3447
#6 0xb66ccb7e in g_closure_invoke (closure=0x664af8, return_value=0x0, n_param_values=1, param_values=0xbed98df0, invocation_hint=0xbed98d8c)
at ../../../gobject/gclosure.c:810
#7 0xb66dab0a in signal_emit_unlocked_R
(node=node@entry=0x551458, detail=0, instance=0x669850, emission_return=emission_return@entry=0x0, instance_and_params=0xbed98df0)
at ../../../gobject/gsignal.c:3635
#8 0xb66e0c0e in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=detail@entry=1, var_args=..., var_args@entry=...)
at ../../../gobject/gsignal.c:3391
#10 0xb6a9cd6c in () at /usr/lib/arm-linux-gnueabihf/libgtk-x11-2.0.so.0
</pre>
Do the same for libgtk-x11-2.0.so.0, etc. Finally, we get the full trace:
<pre>
root@maindroid:/etc/apt# gdb attach 8990
GNU gdb (Debian 8.2.1-2+b3) 8.2.1
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "arm-linux-gnueabihf".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
attach: No such file or directory.
Attaching to process 8990
[New LWP 8991]
[New LWP 8992]
[New LWP 8993]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
__libc_do_syscall () at ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S:46
46 ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S: No such file or directory.
(gdb) c
Continuing.
Thread 1 "hildon-status-m" received signal SIGSEGV, Segmentation fault.
g_type_class_meta_marshalv (closure=0xbed97c60, return_value=0x0, instance=0x955d3700, args=..., marshal_data=0x63a090, n_params=-1093038708, param_types=0x0)
at ../../../gobject/gclosure.c:1028
1028 ../../../gobject/gclosure.c: No such file or directory.
(gdb) bt
#0 0xb66cb768 in g_type_class_meta_marshalv
(closure=0xbed97c60, return_value=0x0, instance=0x955d3700, args=..., marshal_data=0x63a090, n_params=-1093038708, param_types=0x0)
at ../../../gobject/gclosure.c:1028
#1 0xb660cf16 in g_hash_table_lookup_node (hash_return=<synthetic pointer>, key=0xbed97c60, hash_table=0x544200 = {...}) at ../../../glib/ghash.c:379
#2 0xb660cf16 in g_hash_table_lookup (hash_table=0x544200 = {...}, key=key@entry=0xbed97c60) at ../../../glib/ghash.c:1153
#3 0xb64b03fe in try_plugin (dir=<optimized out>, file=file@entry=0xb474d75c "liblocation_applet.so", osso=<optimized out>) at osso-cp-plugin.c:103
#4 0xb64b0466 in osso_cp_plugin_execute (osso=0x639cb8, filename=0xb474d75c "liblocation_applet.so", data=data@entry=0x669850, user_activated=user_activated@entry=1)
at osso-cp-plugin.c:148
#5 0xb474d418 in execute_cp_plugin (obj=0x669850) at location-status.c:84
#9 0xb66e10b2 in <emit signal ??? on instance 0x669850 [HildonButton]> (instance=<optimized out>, signal_id=<optimized out>, detail=0)
at ../../../gobject/gsignal.c:3447
#6 0xb66ccb7e in g_closure_invoke (closure=0x64f0e0, return_value=0x0, n_param_values=1, param_values=0xbed98df0, invocation_hint=0xbed98d8c)
at ../../../gobject/gclosure.c:810
#7 0xb66dab0a in signal_emit_unlocked_R
(node=node@entry=0x551458, detail=0, instance=0x669850, emission_return=emission_return@entry=0x0, instance_and_params=0xbed98df0)
at ../../../gobject/gsignal.c:3635
#8 0xb66e0c0e in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=detail@entry=1, var_args=..., var_args@entry=...)
at ../../../gobject/gsignal.c:3391
#10 0xb6a9cd6c in gtk_real_button_released (button=0x669850 [HildonButton]) at /build/gtk+2.0-2.24.32/gtk/gtkbutton.c:1712
#14 0xb66e10b2 in <emit signal ??? on instance 0x669850 [HildonButton]> (instance=<optimized out>, signal_id=<optimized out>, detail=0)
at ../../../gobject/gsignal.c:3447
#11 0xb66ccb7e in g_closure_invoke (closure=0x551240, return_value=0x0, n_param_values=1, param_values=0xbed99068, invocation_hint=0xbed99004)
at ../../../gobject/gclosure.c:810
#12 0xb66dab7c in signal_emit_unlocked_R
(node=node@entry=0x551258, detail=0, instance=0x669850, emission_return=emission_return@entry=0x0, instance_and_params=0xbed99068)
at ../../../gobject/gsignal.c:3565
#13 0xb66e0c0e in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=detail@entry=3201929896, var_args=..., var_args@entry=...)
at ../../../gobject/gsignal.c:3391
#15 0xb6a9c1e4 in gtk_button_button_release (widget=<optimized out>, event=<optimized out>) at /build/gtk+2.0-2.24.32/gtk/gtkbutton.c:1604
#20 0xb66e10b2 in <emit signal ??? on instance 0x669850 [HildonButton]> (instance=instance@entry=0x669850, signal_id=<optimized out>, detail=0)
at ../../../gobject/gsignal.c:3447
#16 0xb6b0de34 in _gtk_marshal_BOOLEAN__BOXED
(closure=0x542e98, return_value=0xbed992a8, n_param_values=<optimized out>, param_values=0xbed992f8, invocation_hint=0xbed99294, marshal_data=0xb6a9c1d5 <gtk_button_button_release>) at gtkmarshalers.c:84
#17 0xb66ccb7e in g_closure_invoke (closure=0x542e98, return_value=0xbed992a8, n_param_values=2, param_values=0xbed992f8, invocation_hint=0xbed99294)
at ../../../gobject/gclosure.c:810
#18 0xb66da2e2 in signal_emit_unlocked_R
(node=node@entry=0x542ec0, detail=0, instance=0x669850, emission_return=emission_return@entry=0xbed993a8, instance_and_params=0xbed992f8)
at ../../../gobject/gsignal.c:3673
#19 0xb66e08d2 in g_signal_emit_valist (instance=instance@entry=0x669850, signal_id=<optimized out>, detail=detail@entry=3201930332, var_args=...,
var_args@entry=...) at ../../../gobject/gsignal.c:3401
#21 0xb6bccb52 in gtk_widget_event_internal (widget=widget@entry=0x669850 [HildonButton], event=event@entry=0x6e0570) at /build/gtk+2.0-2.24.32/gtk/gtkwidget.c:5211
#22 0xb6bcccd0 in IA__gtk_widget_event (widget=widget@entry=0x669850 [HildonButton], event=event@entry=0x6e0570) at /build/gtk+2.0-2.24.32/gtk/gtkwidget.c:5008
#23 0xb6b0ccaa in IA__gtk_propagate_event (widget=0x669850 [HildonButton], event=0x6e0570) at /build/gtk+2.0-2.24.32/gtk/gtkmain.c:2503
#24 0xb6b0cf9a in IA__gtk_main_do_event (event=0x6e0570) at /build/gtk+2.0-2.24.32/gtk/gtkmain.c:1698
#25 0xb6b0cf9a in IA__gtk_main_do_event (event=<optimized out>) at /build/gtk+2.0-2.24.32/gtk/gtkmain.c:1503
#26 0xb69ed6f2 in gdk_event_dispatch (source=<optimized out>, callback=<optimized out>, user_data=<optimized out>)
at /build/gtk+2.0-2.24.32/gdk/x11/gdkevents-x11.c:2425
#27 0xb661987e in g_main_dispatch (context=0x571b68) at ../../../glib/gmain.c:3182
#28 0xb661987e in g_main_context_dispatch (context=context@entry=0x571b68) at ../../../glib/gmain.c:3847
#29 0xb6619a2a in g_main_context_iterate (context=0x571b68, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:3920
#30 0xb6619ca2 in g_main_loop_run (loop=0x641090) at ../../../glib/gmain.c:4116
#31 0xb6b0c4b0 in IA__gtk_main () at /build/gtk+2.0-2.24.32/gtk/gtkmain.c:1270
#32 0xb51231f0 in main () at /usr/bin/hildon-status-menu.launch
#33 0x004d208a in main ()
</pre>
=== Debugging applications launched via maemo-launcher ===
When programs are launched via maemo-launcher (many are), like the status area applet, then to debug problems, you can attach with gdb to the running processes. However, it is more likely that you will need to recompile and debug, in which case you should stop the 'service' or program with dsmetool (if required), and invoke the program using maemo-summoner, like so:
<pre>
gdb --args maemo-summoner hildon-status-menu.launch
</pre>
==== TODO ====
* valgrind
* gdb
Example debugging location-status bug:
d0297ffa03c61ce1315f1d213937ec5f1a5123c3
999
998
2021-05-05T19:51:54Z
Wizzup
4
/* Debugging applications launched via maemo-launcher */
wikitext
text/x-wiki
=== Things break. How do you debug the problems? ===
You will want to take the following steps:
* Add the devuan/debian debug repositories.
* Identify the program that crashes (you can use `dpkg -S /usr/bin/program-name`) and install the -dbg or -dbgsym packages
* Install the -dbg and -dbgsym dependencies of the packages
* Attach to the program in gdb (or start it from gdb)
==== Add the debug repositories ====
Maemo Leste ships its debug packages in the normal repository, but for the Devuan/Debian packages, you need to add an additional source list file:
<pre>
# cat /etc/apt/sources.list.d/debug.list
deb http://deb.debian.org/debian-debug/ buster-debug main
deb http://deb.debian.org/debian-debug/ buster-backports-debug main
deb https://pkgmaster.devuan.org/devuan beowulf main contrib non-free
deb https://pkgmaster.devuan.org/devuan beowulf-updates main contrib non-free
deb https://pkgmaster.devuan.org/devuan beowulf-security main contrib non-free
</pre>
==== Identify the program that crashes ====
Example: location-status (the location status applet) crashes.
Find out which main program or library is likely involved in the crash. If clicking the location status applet button causes a crash, the problem is likely in that package, and we can use dpkg -S to figure out what package the file is part of, and then install the debug symbols:
<pre>
# dpkg -S /usr/lib/arm-linux-gnueabihf/hildon-desktop/location-status.so
location-status: /usr/lib/arm-linux-gnueabihf/hildon-desktop/location-status.so
# apt-cache search location-status | grep dbg
location-status-dbgsym - debug symbols for location-status
# apt install location-status-dbgsym
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following package was automatically installed and is no longer required:
libmicrodns0
Use 'apt autoremove' to remove it.
The following NEW packages will be installed:
location-status-dbgsym
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 27,1 kB of archives.
After this operation, 41,0 kB of additional disk space will be used.
0% [Working]
Get:1 https://maedevu.maemo.org/leste beowulf/main armhf location-status-dbgsym armhf 0.111-1+2m7 [27,1 kB]
Fetched 27,1 kB in 0s (55,8 kB/s)
Selecting previously unselected package location-status-dbgsym.
(Reading database ... 96891 files and directories currently installed.)
Preparing to unpack .../location-status-dbgsym_0.111-1+2m7_armhf.deb ...
Unpacking location-status-dbgsym (0.111-1+2m7) ...
Setting up location-status-dbgsym (0.111-1+2m7) ...
</pre>
==== Install additional debug files ====
To get useful stack traces, gdb typically requires the debug symbols of other libraries to be installed as well. Following our example location-status, we can get a list of all the libraries involved using ldd:
<pre>
# ldd /usr/lib/arm-linux-gnueabihf/hildon-desktop/location-status.so
</pre>
This lists a lot of libraries, so we will start with the basic ones, e.g. glib-2.0:
<pre>
root@maindroid:/etc/apt# dpkg -S /usr/lib/arm-linux-gnueabihf/libglib-2.0.so.0.5800.3
libglib2.0-0:armhf: /usr/lib/arm-linux-gnueabihf/libglib-2.0.so.0.5800.3
root@maindroid:/etc/apt# apt-cache search libglib2.0-0 | grep dbg
libglib2.0-0-dbgsym - debug symbols for libglib2.0-0
# apt install libglib2.0-0-dbgsym
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following package was automatically installed and is no longer required:
libmicrodns0
Use 'apt autoremove' to remove it.
The following NEW packages will be installed:
libglib2.0-0-dbgsym
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 4240 kB of archives.
After this operation, 4984 kB of additional disk space will be used.
Get:1 http://deb.debian.org/debian-debug buster-debug/main armhf libglib2.0-0-dbgsym armhf 2.58.3-2+deb10u2 [4240 kB]
0% [1 libglib2.0-0-dbgsym 0 B/4240 kB 0%]
Fetched 4240 kB in 3s (1278 kB/s)
Selecting previously unselected package libglib2.0-0-dbgsym:armhf.
(Reading database ... 96893 files and directories currently installed.)
Preparing to unpack .../libglib2.0-0-dbgsym_2.58.3-2+deb10u2_armhf.deb ...
Unpacking libglib2.0-0-dbgsym:armhf (2.58.3-2+deb10u2) ...
Setting up libglib2.0-0-dbgsym:armhf (2.58.3-2+deb10u2) ...
</pre>
We can repeat this process until we get satisfactory backtraces in gdb. For example:
<pre>
# gdb attach <pid>
[...]
Thread 1 "hildon-status-m" received signal SIGSEGV, Segmentation fault.
0xb6625f72 in g_atomic_ref_count_compare (arc=arc@entry=0x38, val=val@entry=0) at ../../../glib/grefcount.c:284
284 ../../../glib/grefcount.c: No such file or directory.
(gdb) bt
#0 0xb6625f72 in g_atomic_ref_count_compare (arc=arc@entry=0x38, val=val@entry=0) at ../../../glib/grefcount.c:284
#1 0xb660cf0a in g_hash_table_lookup_node
(hash_return=<synthetic pointer>, key=0xbed97c68, hash_table=<error reading variable: Cannot access memory at address 0x30>0x10) at ../../../glib/ghash.c:1153
#2 0xb660cf0a in g_hash_table_lookup (hash_table=<error reading variable: Cannot access memory at address 0x30>0x10, key=0xbed97c68) at ../../../glib/ghash.c:1153
#3 0xb64b03fe in () at /usr/lib/arm-linux-gnueabihf/libosso.so.1
</pre>
This means we should probably install debug symbols for libosso.so.1, so we add it and repeat:
<pre>
root@maindroid:/etc/apt# dpkg -S /usr/lib/arm-linux-gnueabihf/libosso.so.1
libosso1: /usr/lib/arm-linux-gnueabihf/libosso.so.1
root@maindroid:/etc/apt# apt-cache search libosso1 | grep dbg
libosso1-dbgsym - debug symbols for libosso1
root@maindroid:/etc/apt# apt install libosso1-dbgsym
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following package was automatically installed and is no longer required:
libmicrodns0
Use 'apt autoremove' to remove it.
The following NEW packages will be installed:
libosso1-dbgsym
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 111 kB of archives.
After this operation, 137 kB of additional disk space will be used.
Get:1 https://maedevu.maemo.org/leste beowulf/main armhf libosso1-dbgsym armhf 2.35+2m7 [111 kB]
Fetched 111 kB in 1s (197 kB/s)
Selecting previously unselected package libosso1-dbgsym.
(Reading database ... 96903 files and directories currently installed.)
Preparing to unpack .../libosso1-dbgsym_2.35+2m7_armhf.deb ...
Unpacking libosso1-dbgsym (2.35+2m7) ...
Setting up libosso1-dbgsym (2.35+2m7) ...
</pre>
Try again in gdb:
<pre>
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
__libc_do_syscall () at ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S:46
46 ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S: No such file or directory.
(gdb) c
Continuing.
Thread 1 "hildon-status-m" received signal SIGSEGV, Segmentation fault.
0x10460f44 in ?? ()
(gdb) bt
#0 0x10460f44 in ()
#1 0xb660cf16 in g_hash_table_lookup_node
(hash_return=<synthetic pointer>, key=0xbed97c60, hash_table=0xb66cb765<error reading variable: Cannot access memory at address 0x2dbf004b>)
at ../../../glib/ghash.c:379
#2 0xb660cf16 in g_hash_table_lookup (hash_table=0xb66cb765<error reading variable: Cannot access memory at address 0x2dbf004b>, key=key@entry=0xbed97c60)
at ../../../glib/ghash.c:1153
#3 0xb64b03fe in try_plugin (dir=<optimized out>, file=file@entry=0xb474d75c "liblocation_applet.so", osso=<optimized out>) at osso-cp-plugin.c:103
#4 0xb64b0466 in osso_cp_plugin_execute (osso=0x63a4b8, filename=0xb474d75c "liblocation_applet.so", data=data@entry=0x669850, user_activated=user_activated@entry=1)
at osso-cp-plugin.c:148
#5 0xb474d418 in execute_cp_plugin (obj=0x669850) at location-status.c:84
#9 0xb66e10b2 in <emit signal ??? on instance 0x669850 [HildonButton]> (instance=<optimized out>, signal_id=<optimized out>, detail=0)
at ../../../gobject/gsignal.c:3447
#6 0xb66ccb7e in g_closure_invoke (closure=0x664af8, return_value=0x0, n_param_values=1, param_values=0xbed98df0, invocation_hint=0xbed98d8c)
at ../../../gobject/gclosure.c:810
#7 0xb66dab0a in signal_emit_unlocked_R
(node=node@entry=0x551458, detail=0, instance=0x669850, emission_return=emission_return@entry=0x0, instance_and_params=0xbed98df0)
at ../../../gobject/gsignal.c:3635
#8 0xb66e0c0e in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=detail@entry=1, var_args=..., var_args@entry=...)
at ../../../gobject/gsignal.c:3391
#10 0xb6a9cd6c in () at /usr/lib/arm-linux-gnueabihf/libgtk-x11-2.0.so.0
</pre>
Do the same for libgtk-x11-2.0.so.0, etc. Finally, we get the full trace:
<pre>
root@maindroid:/etc/apt# gdb attach 8990
GNU gdb (Debian 8.2.1-2+b3) 8.2.1
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "arm-linux-gnueabihf".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
attach: No such file or directory.
Attaching to process 8990
[New LWP 8991]
[New LWP 8992]
[New LWP 8993]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
__libc_do_syscall () at ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S:46
46 ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S: No such file or directory.
(gdb) c
Continuing.
Thread 1 "hildon-status-m" received signal SIGSEGV, Segmentation fault.
g_type_class_meta_marshalv (closure=0xbed97c60, return_value=0x0, instance=0x955d3700, args=..., marshal_data=0x63a090, n_params=-1093038708, param_types=0x0)
at ../../../gobject/gclosure.c:1028
1028 ../../../gobject/gclosure.c: No such file or directory.
(gdb) bt
#0 0xb66cb768 in g_type_class_meta_marshalv
(closure=0xbed97c60, return_value=0x0, instance=0x955d3700, args=..., marshal_data=0x63a090, n_params=-1093038708, param_types=0x0)
at ../../../gobject/gclosure.c:1028
#1 0xb660cf16 in g_hash_table_lookup_node (hash_return=<synthetic pointer>, key=0xbed97c60, hash_table=0x544200 = {...}) at ../../../glib/ghash.c:379
#2 0xb660cf16 in g_hash_table_lookup (hash_table=0x544200 = {...}, key=key@entry=0xbed97c60) at ../../../glib/ghash.c:1153
#3 0xb64b03fe in try_plugin (dir=<optimized out>, file=file@entry=0xb474d75c "liblocation_applet.so", osso=<optimized out>) at osso-cp-plugin.c:103
#4 0xb64b0466 in osso_cp_plugin_execute (osso=0x639cb8, filename=0xb474d75c "liblocation_applet.so", data=data@entry=0x669850, user_activated=user_activated@entry=1)
at osso-cp-plugin.c:148
#5 0xb474d418 in execute_cp_plugin (obj=0x669850) at location-status.c:84
#9 0xb66e10b2 in <emit signal ??? on instance 0x669850 [HildonButton]> (instance=<optimized out>, signal_id=<optimized out>, detail=0)
at ../../../gobject/gsignal.c:3447
#6 0xb66ccb7e in g_closure_invoke (closure=0x64f0e0, return_value=0x0, n_param_values=1, param_values=0xbed98df0, invocation_hint=0xbed98d8c)
at ../../../gobject/gclosure.c:810
#7 0xb66dab0a in signal_emit_unlocked_R
(node=node@entry=0x551458, detail=0, instance=0x669850, emission_return=emission_return@entry=0x0, instance_and_params=0xbed98df0)
at ../../../gobject/gsignal.c:3635
#8 0xb66e0c0e in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=detail@entry=1, var_args=..., var_args@entry=...)
at ../../../gobject/gsignal.c:3391
#10 0xb6a9cd6c in gtk_real_button_released (button=0x669850 [HildonButton]) at /build/gtk+2.0-2.24.32/gtk/gtkbutton.c:1712
#14 0xb66e10b2 in <emit signal ??? on instance 0x669850 [HildonButton]> (instance=<optimized out>, signal_id=<optimized out>, detail=0)
at ../../../gobject/gsignal.c:3447
#11 0xb66ccb7e in g_closure_invoke (closure=0x551240, return_value=0x0, n_param_values=1, param_values=0xbed99068, invocation_hint=0xbed99004)
at ../../../gobject/gclosure.c:810
#12 0xb66dab7c in signal_emit_unlocked_R
(node=node@entry=0x551258, detail=0, instance=0x669850, emission_return=emission_return@entry=0x0, instance_and_params=0xbed99068)
at ../../../gobject/gsignal.c:3565
#13 0xb66e0c0e in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=detail@entry=3201929896, var_args=..., var_args@entry=...)
at ../../../gobject/gsignal.c:3391
#15 0xb6a9c1e4 in gtk_button_button_release (widget=<optimized out>, event=<optimized out>) at /build/gtk+2.0-2.24.32/gtk/gtkbutton.c:1604
#20 0xb66e10b2 in <emit signal ??? on instance 0x669850 [HildonButton]> (instance=instance@entry=0x669850, signal_id=<optimized out>, detail=0)
at ../../../gobject/gsignal.c:3447
#16 0xb6b0de34 in _gtk_marshal_BOOLEAN__BOXED
(closure=0x542e98, return_value=0xbed992a8, n_param_values=<optimized out>, param_values=0xbed992f8, invocation_hint=0xbed99294, marshal_data=0xb6a9c1d5 <gtk_button_button_release>) at gtkmarshalers.c:84
#17 0xb66ccb7e in g_closure_invoke (closure=0x542e98, return_value=0xbed992a8, n_param_values=2, param_values=0xbed992f8, invocation_hint=0xbed99294)
at ../../../gobject/gclosure.c:810
#18 0xb66da2e2 in signal_emit_unlocked_R
(node=node@entry=0x542ec0, detail=0, instance=0x669850, emission_return=emission_return@entry=0xbed993a8, instance_and_params=0xbed992f8)
at ../../../gobject/gsignal.c:3673
#19 0xb66e08d2 in g_signal_emit_valist (instance=instance@entry=0x669850, signal_id=<optimized out>, detail=detail@entry=3201930332, var_args=...,
var_args@entry=...) at ../../../gobject/gsignal.c:3401
#21 0xb6bccb52 in gtk_widget_event_internal (widget=widget@entry=0x669850 [HildonButton], event=event@entry=0x6e0570) at /build/gtk+2.0-2.24.32/gtk/gtkwidget.c:5211
#22 0xb6bcccd0 in IA__gtk_widget_event (widget=widget@entry=0x669850 [HildonButton], event=event@entry=0x6e0570) at /build/gtk+2.0-2.24.32/gtk/gtkwidget.c:5008
#23 0xb6b0ccaa in IA__gtk_propagate_event (widget=0x669850 [HildonButton], event=0x6e0570) at /build/gtk+2.0-2.24.32/gtk/gtkmain.c:2503
#24 0xb6b0cf9a in IA__gtk_main_do_event (event=0x6e0570) at /build/gtk+2.0-2.24.32/gtk/gtkmain.c:1698
#25 0xb6b0cf9a in IA__gtk_main_do_event (event=<optimized out>) at /build/gtk+2.0-2.24.32/gtk/gtkmain.c:1503
#26 0xb69ed6f2 in gdk_event_dispatch (source=<optimized out>, callback=<optimized out>, user_data=<optimized out>)
at /build/gtk+2.0-2.24.32/gdk/x11/gdkevents-x11.c:2425
#27 0xb661987e in g_main_dispatch (context=0x571b68) at ../../../glib/gmain.c:3182
#28 0xb661987e in g_main_context_dispatch (context=context@entry=0x571b68) at ../../../glib/gmain.c:3847
#29 0xb6619a2a in g_main_context_iterate (context=0x571b68, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:3920
#30 0xb6619ca2 in g_main_loop_run (loop=0x641090) at ../../../glib/gmain.c:4116
#31 0xb6b0c4b0 in IA__gtk_main () at /build/gtk+2.0-2.24.32/gtk/gtkmain.c:1270
#32 0xb51231f0 in main () at /usr/bin/hildon-status-menu.launch
#33 0x004d208a in main ()
</pre>
=== Debugging applications launched via maemo-launcher ===
When programs are launched via maemo-launcher (many are), like the status area applet, then to debug problems, you can attach with gdb to the running processes. However, it is more likely that you will need to recompile and debug, in which case you should stop the 'service' or program with dsmetool (if required), and invoke the program using maemo-summoner, like so:
<pre>
user@devuan:~$ gdb maemo-summoner
[...]
(gdb) r hildon-status-menu.launch
</pre>
==== TODO ====
* valgrind
* gdb
Example debugging location-status bug:
de0a4f5a51ea7befeda715195934cc03d7f2dbc7
1000
999
2021-05-05T19:55:25Z
Wizzup
4
/* Debugging applications launched via maemo-launcher */
wikitext
text/x-wiki
=== Things break. How do you debug the problems? ===
You will want to take the following steps:
* Add the devuan/debian debug repositories.
* Identify the program that crashes (you can use `dpkg -S /usr/bin/program-name`) and install the -dbg or -dbgsym packages
* Install the -dbg and -dbgsym dependencies of the packages
* Attach to the program in gdb (or start it from gdb)
==== Add the debug repositories ====
Maemo Leste ships its debug packages in the normal repository, but for the Devuan/Debian packages, you need to add an additional source list file:
<pre>
# cat /etc/apt/sources.list.d/debug.list
deb http://deb.debian.org/debian-debug/ buster-debug main
deb http://deb.debian.org/debian-debug/ buster-backports-debug main
deb https://pkgmaster.devuan.org/devuan beowulf main contrib non-free
deb https://pkgmaster.devuan.org/devuan beowulf-updates main contrib non-free
deb https://pkgmaster.devuan.org/devuan beowulf-security main contrib non-free
</pre>
==== Identify the program that crashes ====
Example: location-status (the location status applet) crashes.
Find out which main program or library is likely involved in the crash. If clicking the location status applet button causes a crash, the problem is likely in that package, and we can use dpkg -S to figure out what package the file is part of, and then install the debug symbols:
<pre>
# dpkg -S /usr/lib/arm-linux-gnueabihf/hildon-desktop/location-status.so
location-status: /usr/lib/arm-linux-gnueabihf/hildon-desktop/location-status.so
# apt-cache search location-status | grep dbg
location-status-dbgsym - debug symbols for location-status
# apt install location-status-dbgsym
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following package was automatically installed and is no longer required:
libmicrodns0
Use 'apt autoremove' to remove it.
The following NEW packages will be installed:
location-status-dbgsym
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 27,1 kB of archives.
After this operation, 41,0 kB of additional disk space will be used.
0% [Working]
Get:1 https://maedevu.maemo.org/leste beowulf/main armhf location-status-dbgsym armhf 0.111-1+2m7 [27,1 kB]
Fetched 27,1 kB in 0s (55,8 kB/s)
Selecting previously unselected package location-status-dbgsym.
(Reading database ... 96891 files and directories currently installed.)
Preparing to unpack .../location-status-dbgsym_0.111-1+2m7_armhf.deb ...
Unpacking location-status-dbgsym (0.111-1+2m7) ...
Setting up location-status-dbgsym (0.111-1+2m7) ...
</pre>
==== Install additional debug files ====
To get useful stack traces, gdb typically requires the debug symbols of other libraries to be installed as well. Following our example location-status, we can get a list of all the libraries involved using ldd:
<pre>
# ldd /usr/lib/arm-linux-gnueabihf/hildon-desktop/location-status.so
</pre>
This lists a lot of libraries, so we will start with the basic ones, e.g. glib-2.0:
<pre>
root@maindroid:/etc/apt# dpkg -S /usr/lib/arm-linux-gnueabihf/libglib-2.0.so.0.5800.3
libglib2.0-0:armhf: /usr/lib/arm-linux-gnueabihf/libglib-2.0.so.0.5800.3
root@maindroid:/etc/apt# apt-cache search libglib2.0-0 | grep dbg
libglib2.0-0-dbgsym - debug symbols for libglib2.0-0
# apt install libglib2.0-0-dbgsym
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following package was automatically installed and is no longer required:
libmicrodns0
Use 'apt autoremove' to remove it.
The following NEW packages will be installed:
libglib2.0-0-dbgsym
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 4240 kB of archives.
After this operation, 4984 kB of additional disk space will be used.
Get:1 http://deb.debian.org/debian-debug buster-debug/main armhf libglib2.0-0-dbgsym armhf 2.58.3-2+deb10u2 [4240 kB]
0% [1 libglib2.0-0-dbgsym 0 B/4240 kB 0%]
Fetched 4240 kB in 3s (1278 kB/s)
Selecting previously unselected package libglib2.0-0-dbgsym:armhf.
(Reading database ... 96893 files and directories currently installed.)
Preparing to unpack .../libglib2.0-0-dbgsym_2.58.3-2+deb10u2_armhf.deb ...
Unpacking libglib2.0-0-dbgsym:armhf (2.58.3-2+deb10u2) ...
Setting up libglib2.0-0-dbgsym:armhf (2.58.3-2+deb10u2) ...
</pre>
We can repeat this process until we get satisfactory backtraces in gdb. For example:
<pre>
# gdb attach <pid>
[...]
Thread 1 "hildon-status-m" received signal SIGSEGV, Segmentation fault.
0xb6625f72 in g_atomic_ref_count_compare (arc=arc@entry=0x38, val=val@entry=0) at ../../../glib/grefcount.c:284
284 ../../../glib/grefcount.c: No such file or directory.
(gdb) bt
#0 0xb6625f72 in g_atomic_ref_count_compare (arc=arc@entry=0x38, val=val@entry=0) at ../../../glib/grefcount.c:284
#1 0xb660cf0a in g_hash_table_lookup_node
(hash_return=<synthetic pointer>, key=0xbed97c68, hash_table=<error reading variable: Cannot access memory at address 0x30>0x10) at ../../../glib/ghash.c:1153
#2 0xb660cf0a in g_hash_table_lookup (hash_table=<error reading variable: Cannot access memory at address 0x30>0x10, key=0xbed97c68) at ../../../glib/ghash.c:1153
#3 0xb64b03fe in () at /usr/lib/arm-linux-gnueabihf/libosso.so.1
</pre>
This means we should probably install debug symbols for libosso.so.1, so we add it and repeat:
<pre>
root@maindroid:/etc/apt# dpkg -S /usr/lib/arm-linux-gnueabihf/libosso.so.1
libosso1: /usr/lib/arm-linux-gnueabihf/libosso.so.1
root@maindroid:/etc/apt# apt-cache search libosso1 | grep dbg
libosso1-dbgsym - debug symbols for libosso1
root@maindroid:/etc/apt# apt install libosso1-dbgsym
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following package was automatically installed and is no longer required:
libmicrodns0
Use 'apt autoremove' to remove it.
The following NEW packages will be installed:
libosso1-dbgsym
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 111 kB of archives.
After this operation, 137 kB of additional disk space will be used.
Get:1 https://maedevu.maemo.org/leste beowulf/main armhf libosso1-dbgsym armhf 2.35+2m7 [111 kB]
Fetched 111 kB in 1s (197 kB/s)
Selecting previously unselected package libosso1-dbgsym.
(Reading database ... 96903 files and directories currently installed.)
Preparing to unpack .../libosso1-dbgsym_2.35+2m7_armhf.deb ...
Unpacking libosso1-dbgsym (2.35+2m7) ...
Setting up libosso1-dbgsym (2.35+2m7) ...
</pre>
Try again in gdb:
<pre>
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
__libc_do_syscall () at ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S:46
46 ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S: No such file or directory.
(gdb) c
Continuing.
Thread 1 "hildon-status-m" received signal SIGSEGV, Segmentation fault.
0x10460f44 in ?? ()
(gdb) bt
#0 0x10460f44 in ()
#1 0xb660cf16 in g_hash_table_lookup_node
(hash_return=<synthetic pointer>, key=0xbed97c60, hash_table=0xb66cb765<error reading variable: Cannot access memory at address 0x2dbf004b>)
at ../../../glib/ghash.c:379
#2 0xb660cf16 in g_hash_table_lookup (hash_table=0xb66cb765<error reading variable: Cannot access memory at address 0x2dbf004b>, key=key@entry=0xbed97c60)
at ../../../glib/ghash.c:1153
#3 0xb64b03fe in try_plugin (dir=<optimized out>, file=file@entry=0xb474d75c "liblocation_applet.so", osso=<optimized out>) at osso-cp-plugin.c:103
#4 0xb64b0466 in osso_cp_plugin_execute (osso=0x63a4b8, filename=0xb474d75c "liblocation_applet.so", data=data@entry=0x669850, user_activated=user_activated@entry=1)
at osso-cp-plugin.c:148
#5 0xb474d418 in execute_cp_plugin (obj=0x669850) at location-status.c:84
#9 0xb66e10b2 in <emit signal ??? on instance 0x669850 [HildonButton]> (instance=<optimized out>, signal_id=<optimized out>, detail=0)
at ../../../gobject/gsignal.c:3447
#6 0xb66ccb7e in g_closure_invoke (closure=0x664af8, return_value=0x0, n_param_values=1, param_values=0xbed98df0, invocation_hint=0xbed98d8c)
at ../../../gobject/gclosure.c:810
#7 0xb66dab0a in signal_emit_unlocked_R
(node=node@entry=0x551458, detail=0, instance=0x669850, emission_return=emission_return@entry=0x0, instance_and_params=0xbed98df0)
at ../../../gobject/gsignal.c:3635
#8 0xb66e0c0e in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=detail@entry=1, var_args=..., var_args@entry=...)
at ../../../gobject/gsignal.c:3391
#10 0xb6a9cd6c in () at /usr/lib/arm-linux-gnueabihf/libgtk-x11-2.0.so.0
</pre>
Do the same for libgtk-x11-2.0.so.0, etc. Finally, we get the full trace:
<pre>
root@maindroid:/etc/apt# gdb attach 8990
GNU gdb (Debian 8.2.1-2+b3) 8.2.1
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "arm-linux-gnueabihf".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
attach: No such file or directory.
Attaching to process 8990
[New LWP 8991]
[New LWP 8992]
[New LWP 8993]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
__libc_do_syscall () at ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S:46
46 ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S: No such file or directory.
(gdb) c
Continuing.
Thread 1 "hildon-status-m" received signal SIGSEGV, Segmentation fault.
g_type_class_meta_marshalv (closure=0xbed97c60, return_value=0x0, instance=0x955d3700, args=..., marshal_data=0x63a090, n_params=-1093038708, param_types=0x0)
at ../../../gobject/gclosure.c:1028
1028 ../../../gobject/gclosure.c: No such file or directory.
(gdb) bt
#0 0xb66cb768 in g_type_class_meta_marshalv
(closure=0xbed97c60, return_value=0x0, instance=0x955d3700, args=..., marshal_data=0x63a090, n_params=-1093038708, param_types=0x0)
at ../../../gobject/gclosure.c:1028
#1 0xb660cf16 in g_hash_table_lookup_node (hash_return=<synthetic pointer>, key=0xbed97c60, hash_table=0x544200 = {...}) at ../../../glib/ghash.c:379
#2 0xb660cf16 in g_hash_table_lookup (hash_table=0x544200 = {...}, key=key@entry=0xbed97c60) at ../../../glib/ghash.c:1153
#3 0xb64b03fe in try_plugin (dir=<optimized out>, file=file@entry=0xb474d75c "liblocation_applet.so", osso=<optimized out>) at osso-cp-plugin.c:103
#4 0xb64b0466 in osso_cp_plugin_execute (osso=0x639cb8, filename=0xb474d75c "liblocation_applet.so", data=data@entry=0x669850, user_activated=user_activated@entry=1)
at osso-cp-plugin.c:148
#5 0xb474d418 in execute_cp_plugin (obj=0x669850) at location-status.c:84
#9 0xb66e10b2 in <emit signal ??? on instance 0x669850 [HildonButton]> (instance=<optimized out>, signal_id=<optimized out>, detail=0)
at ../../../gobject/gsignal.c:3447
#6 0xb66ccb7e in g_closure_invoke (closure=0x64f0e0, return_value=0x0, n_param_values=1, param_values=0xbed98df0, invocation_hint=0xbed98d8c)
at ../../../gobject/gclosure.c:810
#7 0xb66dab0a in signal_emit_unlocked_R
(node=node@entry=0x551458, detail=0, instance=0x669850, emission_return=emission_return@entry=0x0, instance_and_params=0xbed98df0)
at ../../../gobject/gsignal.c:3635
#8 0xb66e0c0e in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=detail@entry=1, var_args=..., var_args@entry=...)
at ../../../gobject/gsignal.c:3391
#10 0xb6a9cd6c in gtk_real_button_released (button=0x669850 [HildonButton]) at /build/gtk+2.0-2.24.32/gtk/gtkbutton.c:1712
#14 0xb66e10b2 in <emit signal ??? on instance 0x669850 [HildonButton]> (instance=<optimized out>, signal_id=<optimized out>, detail=0)
at ../../../gobject/gsignal.c:3447
#11 0xb66ccb7e in g_closure_invoke (closure=0x551240, return_value=0x0, n_param_values=1, param_values=0xbed99068, invocation_hint=0xbed99004)
at ../../../gobject/gclosure.c:810
#12 0xb66dab7c in signal_emit_unlocked_R
(node=node@entry=0x551258, detail=0, instance=0x669850, emission_return=emission_return@entry=0x0, instance_and_params=0xbed99068)
at ../../../gobject/gsignal.c:3565
#13 0xb66e0c0e in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=detail@entry=3201929896, var_args=..., var_args@entry=...)
at ../../../gobject/gsignal.c:3391
#15 0xb6a9c1e4 in gtk_button_button_release (widget=<optimized out>, event=<optimized out>) at /build/gtk+2.0-2.24.32/gtk/gtkbutton.c:1604
#20 0xb66e10b2 in <emit signal ??? on instance 0x669850 [HildonButton]> (instance=instance@entry=0x669850, signal_id=<optimized out>, detail=0)
at ../../../gobject/gsignal.c:3447
#16 0xb6b0de34 in _gtk_marshal_BOOLEAN__BOXED
(closure=0x542e98, return_value=0xbed992a8, n_param_values=<optimized out>, param_values=0xbed992f8, invocation_hint=0xbed99294, marshal_data=0xb6a9c1d5 <gtk_button_button_release>) at gtkmarshalers.c:84
#17 0xb66ccb7e in g_closure_invoke (closure=0x542e98, return_value=0xbed992a8, n_param_values=2, param_values=0xbed992f8, invocation_hint=0xbed99294)
at ../../../gobject/gclosure.c:810
#18 0xb66da2e2 in signal_emit_unlocked_R
(node=node@entry=0x542ec0, detail=0, instance=0x669850, emission_return=emission_return@entry=0xbed993a8, instance_and_params=0xbed992f8)
at ../../../gobject/gsignal.c:3673
#19 0xb66e08d2 in g_signal_emit_valist (instance=instance@entry=0x669850, signal_id=<optimized out>, detail=detail@entry=3201930332, var_args=...,
var_args@entry=...) at ../../../gobject/gsignal.c:3401
#21 0xb6bccb52 in gtk_widget_event_internal (widget=widget@entry=0x669850 [HildonButton], event=event@entry=0x6e0570) at /build/gtk+2.0-2.24.32/gtk/gtkwidget.c:5211
#22 0xb6bcccd0 in IA__gtk_widget_event (widget=widget@entry=0x669850 [HildonButton], event=event@entry=0x6e0570) at /build/gtk+2.0-2.24.32/gtk/gtkwidget.c:5008
#23 0xb6b0ccaa in IA__gtk_propagate_event (widget=0x669850 [HildonButton], event=0x6e0570) at /build/gtk+2.0-2.24.32/gtk/gtkmain.c:2503
#24 0xb6b0cf9a in IA__gtk_main_do_event (event=0x6e0570) at /build/gtk+2.0-2.24.32/gtk/gtkmain.c:1698
#25 0xb6b0cf9a in IA__gtk_main_do_event (event=<optimized out>) at /build/gtk+2.0-2.24.32/gtk/gtkmain.c:1503
#26 0xb69ed6f2 in gdk_event_dispatch (source=<optimized out>, callback=<optimized out>, user_data=<optimized out>)
at /build/gtk+2.0-2.24.32/gdk/x11/gdkevents-x11.c:2425
#27 0xb661987e in g_main_dispatch (context=0x571b68) at ../../../glib/gmain.c:3182
#28 0xb661987e in g_main_context_dispatch (context=context@entry=0x571b68) at ../../../glib/gmain.c:3847
#29 0xb6619a2a in g_main_context_iterate (context=0x571b68, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:3920
#30 0xb6619ca2 in g_main_loop_run (loop=0x641090) at ../../../glib/gmain.c:4116
#31 0xb6b0c4b0 in IA__gtk_main () at /build/gtk+2.0-2.24.32/gtk/gtkmain.c:1270
#32 0xb51231f0 in main () at /usr/bin/hildon-status-menu.launch
#33 0x004d208a in main ()
</pre>
=== Debugging applications launched via maemo-launcher ===
When programs are launched via maemo-launcher (many are), like the status area applet, then to debug problems, you can attach with gdb to the running processes. However, it is more likely that you will need to recompile and debug, in which case you should stop the 'service' or program with dsmetool (if required), and invoke the program using maemo-summoner, like so:
<pre>
user@devuan:~$ gdb maemo-summoner
[...]
(gdb) r hildon-status-menu.launch
</pre>
And valgrind:
<pre>
valgrind maemo-summoner hildon-status-menu.launch
</pre>
==== TODO ====
* valgrind
* gdb
Example debugging location-status bug:
1ce4d33f43865d102f84a760eb7f0539c1ddcba9
Main Page
0
1
997
947
2021-05-05T14:40:29Z
Halftux
7
/* Links */ added irclog whitequark
wikitext
text/x-wiki
= Description =
Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more.
You can find us on '''freenode''', channel '''#maemo-leste'''.
For an overview of the current status, you might want to check out: [[Status]]
Maemo Leste is based on Devuan Beowulf (Debian Buster) and all the "supported" devices ship with recent Linux (mainline-based) kernels.
The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers.
For some devices, we have development images available, such as the N900. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software.
If you have not used Maemo before, you might want to check out some of the tips on the [[HowTo]] page.
== Getting Started ==
See [[Getting_Started|Getting Started]]
== Frequently Asked Questions ==
See [[Leste_FAQ|FAQ]]
== Supported Devices ==
See [[:Category:Device]]
== Latest Images ==
https://phoenix.maemo.org/view/Images/
== Development ==
See [[Development]]
== Roadmap ==
=== Project milestones ===
https://github.com/maemo-leste/bugtracker/milestones
=== Wishlist ===
You have an application you want to see in Leste? Please let us know [[Wishlist|here]].
== Talks ==
See [[Talks]]
== Links ==
<div>
The central point of meeting and talking is IRC (irc.freenode.net in #maemo-leste) and this thread: https://talk.maemo.org/showthread.php?t=100192.
*Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io]
*Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues]
*Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/]
*Our Extras Github: [https://github.com/maemo-leste-extras/ https://github.com/maemo-leste-extras/]
*Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] and https://phoenix.maemo.org/view/Images/
*Our Jenkins build server: [https://phoenix.maemo.org/ https://phoenix.maemo.org/]
*Our IRC history: [http://maedevu.maemo.org/irc.txt http://maedevu.maemo.org/irc.txt] and https://freenode.irclog.whitequark.org/maemo-leste/
*Our YouTube channel: [https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w] (via [https://www.invidio.us/channel/UCgAWiHvWSuJAg5hjk7JYn1w Invidious] )
*Our Package index: [https://maedevu.maemo.org/pkgweb/ https://maedevu.maemo.org/pkgweb/] which runs [https://github.com/maemo-leste/mpi https://github.com/maemo-leste/mpi]
*Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
*RSS feed: [https://maemo-leste.github.io/feeds/all.atom.xml https://maemo-leste.github.io/feeds/all.atom.xml]
*[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)]
</div>
49a154243b0e7d670ac37be24d67ba4d1090c426
1017
997
2021-05-22T09:00:44Z
Parazyd
1
/* Description */
wikitext
text/x-wiki
= Description =
Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more.
You can find us on '''irc.libera.chat''', channel '''#maemo-leste'''.
For an overview of the current status, you might want to check out: [[Status]]
Maemo Leste is based on Devuan Beowulf (Debian Buster) and all the "supported" devices ship with recent Linux (mainline-based) kernels.
The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers.
For some devices, we have development images available, such as the N900. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software.
If you have not used Maemo before, you might want to check out some of the tips on the [[HowTo]] page.
== Getting Started ==
See [[Getting_Started|Getting Started]]
== Frequently Asked Questions ==
See [[Leste_FAQ|FAQ]]
== Supported Devices ==
See [[:Category:Device]]
== Latest Images ==
https://phoenix.maemo.org/view/Images/
== Development ==
See [[Development]]
== Roadmap ==
=== Project milestones ===
https://github.com/maemo-leste/bugtracker/milestones
=== Wishlist ===
You have an application you want to see in Leste? Please let us know [[Wishlist|here]].
== Talks ==
See [[Talks]]
== Links ==
<div>
The central point of meeting and talking is IRC (irc.freenode.net in #maemo-leste) and this thread: https://talk.maemo.org/showthread.php?t=100192.
*Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io]
*Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues]
*Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/]
*Our Extras Github: [https://github.com/maemo-leste-extras/ https://github.com/maemo-leste-extras/]
*Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] and https://phoenix.maemo.org/view/Images/
*Our Jenkins build server: [https://phoenix.maemo.org/ https://phoenix.maemo.org/]
*Our IRC history: [http://maedevu.maemo.org/irc.txt http://maedevu.maemo.org/irc.txt] and https://freenode.irclog.whitequark.org/maemo-leste/
*Our YouTube channel: [https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w] (via [https://www.invidio.us/channel/UCgAWiHvWSuJAg5hjk7JYn1w Invidious] )
*Our Package index: [https://maedevu.maemo.org/pkgweb/ https://maedevu.maemo.org/pkgweb/] which runs [https://github.com/maemo-leste/mpi https://github.com/maemo-leste/mpi]
*Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
*RSS feed: [https://maemo-leste.github.io/feeds/all.atom.xml https://maemo-leste.github.io/feeds/all.atom.xml]
*[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)]
</div>
aaf6670e828a65dae7fe463bf91c3bdcb4b866a7
1018
1017
2021-05-22T09:53:22Z
Parazyd
1
/* Description */
wikitext
text/x-wiki
= Description =
Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more.
You can find us on '''irc.libera.chat''', channel '''#maemo-leste'''.
For an overview of the current status, you might want to check out: [[Status]]
Maemo Leste is based on Devuan Beowulf (Debian Buster) and all the "supported" devices ship with recent Linux (mainline-based) kernels.
The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers.
For some devices, we have development images available, such as the N900. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software.
If you have not used Maemo before, you might want to check out some of the tips on the [[HowTo]] page.
== Getting Started ==
See [[Getting_Started|Getting Started]]
== Frequently Asked Questions ==
See [[Leste_FAQ|FAQ]]
== Supported Devices ==
See [[:Category:Device]]
== Latest Images ==
https://phoenix.maemo.org/view/Images/
== Development ==
See [[Development]]
== Roadmap ==
=== Project milestones ===
https://github.com/maemo-leste/bugtracker/milestones
=== Wishlist ===
You have an application you want to see in Leste? Please let us know [[Wishlist|here]].
== Talks ==
See [[Talks]]
== Links ==
<div>
The central point of meeting and talking is IRC (irc.libera.chat in #maemo-leste) and this thread: https://talk.maemo.org/showthread.php?t=100192.
*Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io]
*Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues]
*Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/]
*Our Extras Github: [https://github.com/maemo-leste-extras/ https://github.com/maemo-leste-extras/]
*Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] and https://phoenix.maemo.org/view/Images/
*Our Jenkins build server: [https://phoenix.maemo.org/ https://phoenix.maemo.org/]
*Our IRC history: [http://maedevu.maemo.org/irc.txt http://maedevu.maemo.org/irc.txt] and https://freenode.irclog.whitequark.org/maemo-leste/
*Our YouTube channel: [https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w] (via [https://www.invidio.us/channel/UCgAWiHvWSuJAg5hjk7JYn1w Invidious] )
*Our Package index: [https://maedevu.maemo.org/pkgweb/ https://maedevu.maemo.org/pkgweb/] which runs [https://github.com/maemo-leste/mpi https://github.com/maemo-leste/mpi]
*Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
*RSS feed: [https://maemo-leste.github.io/feeds/all.atom.xml https://maemo-leste.github.io/feeds/all.atom.xml]
*[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)]
</div>
229c12222875e544abbe37567eb072dab5322e8e
Localization
0
129
1001
2021-05-07T06:17:34Z
Parazyd
1
Created page with "Maemo Leste localization is done with existing packages from Fremantle. The sources are located in one of our GitHub organizations: https://github.com/maemo-leste-translation..."
wikitext
text/x-wiki
Maemo Leste localization is done with existing packages from Fremantle.
The sources are located in one of our GitHub organizations: https://github.com/maemo-leste-translations
We also have infrastructure integration with Weblate: https://hosted.weblate.org/projects/maemo-leste/ .
On Weblate people can contribute translation improvements, or even new languages, and pull requests should
automagically be made against our repositories, so maintainers can simply merge it.
cb26e73be7f65756506c2232beed04f931767d14
1003
1001
2021-05-07T09:52:21Z
Wizzup
4
wikitext
text/x-wiki
Maemo Leste localization is inherited from the localization work by done Nokia. Many of our current translations therefore come from converting the existing packages from Maemo Fremantle into packages.
The source packages for our translations are located in our GitHub translation organizations: https://github.com/maemo-leste-translations
There is no documentation on how to contribute a new language yet, but we hope to write that soon. Also, some of the translations are not yet used, as our own software is not complete yet, so when contributed an initial new language it might make sense to focus on the strings that are actively in use.
We boost our localisation efforts with Weblate: https://hosted.weblate.org/projects/maemo-leste/
On Weblate people can contribute translation improvements, or even new languages, and pull requests should
automatically be made against our repositories, so maintainers can simply merge it.
5ecf36aa94e7bf0e1442252616d78adaab93534c
Development
0
61
1002
902
2021-05-07T06:19:22Z
Parazyd
1
wikitext
text/x-wiki
Maemo Leste development is split up in a few different places.
== Communication and organising ==
* Our https://maemo-leste.github.io website is where we post (news) updates, as well as on talk.maemo.org (see this subforum https://talk.maemo.org/forumdisplay.php?f=66 and this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192)
* There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker
* The day-to-day development and user chatter mostly takes place in the [[IRC channel]]
* We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
* This wiki: for documenting the status of various long-running projects, status per device, etc.
== Task Summary ==
For current (semi) impactful tasks, see
[[Development/Tasks]]
== Codename ==
* Maemo Leste is currently based on Devuan Beowulf, which is based on Debian Buster.
== Guides ==
* [[Development/Porting Packages]]
* [[Development/Building Packages]]
* [[Development/Modified Software]]
* [[Development/Device Bringup]]
* https://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide
== Technical ==
All our git repositories can be found here: https://github.com/maemo-leste
=== Jenkins ===
To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/
=== Developing on a device ===
Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM)
The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]].
=== Building a Maemo Leste image ===
See https://leste.maemo.org/Image_Builder
=== List of Programs/Daemon specific to Maemo ===
https://leste.maemo.org/Development/Daemons
=== Crossbuilding ===
Multiarch is an ability present on modern Debian systems that allows you to build native packages for different architectures. This is nice because you can build packages for an ARM based phone using the full power of your x86 based PC/Mac/Notebook or a server.
Here we show how you can easily setup a multiarch environment and build a native package for Maemo Leste running on Nokia N900. We are going to make a container (chroot) for this job. It's because we don't want to pollute our main system.
# Make a container for our development system
DIR=/var/lib/container/stretch
sudo apt-get install qemu-user-static debootstrap systemd-container &&
sudo debootstrap --arch=armhf stretch $DIR http://deb.debian.org/debian &&
echo "strech_cross" | sudo tee $DIR/etc/debian_chroot &&
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR
# Setup build environment inside the container
cat >> ~/.bashrc << EOF &&
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
export CC=arm-linux-gnueabihf-gcc
export JOBS=$(grep processor /proc/cpuinfo | wc -l)
EOF
dpkg --add-architecture armhf &&
apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates &&
cat >> /etc/apt/sources.list << "EOF" &&
deb http://maedevu.maemo.org/leste ascii main contrib non-free n900
deb http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900
deb-src http://deb.debian.org/debian stretch main
deb-src http://maedevu.maemo.org/leste ascii main contrib non-free n900
deb-src http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900
EOF
wget --no-check-certificate https://maedevu.maemo.org/testing-key.asc &&
apt-key add testing-key.asc &&
rm -f testing-key.asc &&
rm -f /var/cache/apt/archives/*.deb &&
apt-get update &&
exec bash
# Build Xorg for Nokia N900
apt-get source xserver-xorg-core &&
cd xorg-server-1.19.2 &&
wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch &&
mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches &&
echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series &&
apt-get -y build-dep -a armhf . &&
time dpkg-buildpackage -aarmhf -j$JOBS -b &&
echo OK || echo FAIL
To login the container later:
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch
To remove the container:
sudo rm -fr /var/lib/container/stretch
=== Cross-distro solution for development inside an ARM/ARM64 chroot on a PC ===
It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices.
1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]:
$ sudo apt-get install qemu-user-static binfmt-support
The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''':
$ sudo update-binfmts --display qemu-arm
qemu-arm (enabled):
package = qemu-user-static
type = magic
offset = 0
magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00
mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff
interpreter = /usr/bin/qemu-arm-static
detector =
2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it:
$ mkdir leste-arm64
$ cd leste-arm64
$ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf -
3. From the same directory, configure the chroot with a few resources from your host system:
$ sudo mount -t proc proc proc
$ sudo mount -o bind /dev dev
$ sudo mount -o bind /dev/pts dev/pts
4. From the same directory, create a symlink for the mount table:
$ sudo ln -s /proc/mounts etc/mtab
5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user:
$ sudo LC_ALL=C chroot . /bin/su - user
You'll now be ready to use your Maemo Leste ARM64 development environment:
$ uname -m
aarch64
Once you have finished with it, you can exit and unmount the resources you previously mounted:
$ exit
$ sudo umount dev/pts dev proc
=== Localization ===
See [[Localization]]
=== TODO ===
* Discuss where people look to pick up issues (clear answer is the bugtracker, but still)
* How people can make changes and how to send them in
e394cec6227cc23ee82763fbc1ef5be5b36f3ec1
Getting Started
0
105
1004
984
2021-05-10T09:18:28Z
Parazyd
1
/* Expand the root partition to fill SD card */
wikitext
text/x-wiki
= Installation to SD Card =
After updating device firmware with included script (eg. flash-droid-4-fw.sh):
Download an image appropriate for your device from [http://maedevu.maemo.org/images/]
Insert a microsd card into your computer and find the device with cat /proc/partitions
Decompress and write the image to your microsd card device:
xzcat maemo-leste-VERSION.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
= Expand the root partition to fill SD card =
A helpful script is included to expand the root partition to fill the microSD card.
After booting and logging in to root, execute: /etc/expandcard.sh
This will expand the root partition to fill the microSD card using resize2fs.
= (SSH) Login =
User credentials are: '''user:user'''
Root credentials are: '''root:toor'''
You should prefer logging in as user and then escalating to root with sudo as necessary.
In images newer than 17 January 2021, root SSH is disabled by default.
= Useful Bits =
* Default lockcode is "12345"
* Lockcode can only be changed if your hardware has CAL. QEMU does not have CAL. Droid 4 also not.
= More RAM =
You can install '''zram-tools''' from the repo, and edit '''/etc/default/zramswap''' as necessary. It's probably convenient to set allocation to 1024.
hildon-base (and it's hildon-env-setup initscript) are aware if zramswap in installed and will activate zram.
If you have an image older than 17 January 2021, you should remove the existing zram initscript and install zram-tools to utilize this functionality.
Remove it with:
rc-update del zram
rm /etc/init.d/zram
= Tweaking =
See [[Tweaking]]
790a507813f1e9ad65a4ea85195682bfeabaf261
File:Os-addicts.jpg
6
130
1005
2021-05-11T14:00:57Z
Parazyd
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Dont-slave.jpg
6
131
1006
2021-05-11T14:01:13Z
Parazyd
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Great-war.jpg
6
132
1007
2021-05-11T14:01:23Z
Parazyd
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Join-leste.jpg
6
133
1008
2021-05-11T14:01:34Z
Parazyd
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Privacy-and-more.png
6
134
1009
2021-05-11T14:01:51Z
Parazyd
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Refuse-duopoly.jpg
6
135
1010
2021-05-11T14:02:08Z
Parazyd
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Propaganda
0
136
1011
2021-05-11T14:04:39Z
Parazyd
1
Created page with "[[File:Os-addicts.jpg|200px]] [[File:Dont-slave.jpg|200px]] [[File:Great-war.jpg|200px]] [[File:Join-leste.jpg|200px]] [[File:Privacy-and-more.png|200px]] File:Refuse-duopo..."
wikitext
text/x-wiki
[[File:Os-addicts.jpg|200px]]
[[File:Dont-slave.jpg|200px]]
[[File:Great-war.jpg|200px]]
[[File:Join-leste.jpg|200px]]
[[File:Privacy-and-more.png|200px]]
[[File:Refuse-duopoly.jpg|200px]]
c1c058835f1922ae60c1901ee54d790b7ccfea71
Talks
0
99
1012
994
2021-05-17T07:06:30Z
Gomezgleonardob
47
Add Flisol Ecuador Talk
wikitext
text/x-wiki
== Flisol Ecuador - 8 May 2021 ==
''' Maemo Leste /PostMarketOS''' - ''Leonardo Gomez''
[https://openlab.ec/actividad/flisol-ecuador-2021 Event info]
Video [https://www.youtube.com/watch?v=rRJYv7PzRaM YouTube] (via [https://yewtu.be/watch?v=rRJYv7PzRaM invidious])
Slides [https://maemoleste.netlify.app/#/]
== installfest.cz - 3rd March 2021 ==
''' Rok Linuxového telefonu''' - ''Pavel Machek''
[https://installfest.cz/if21/ Event info]
Video [https://www.youtube.com/watch?v=KYmn9-0Tzz8&list=PLub6xBWO8gV-DFBwRbs4xJq4sTGcvEcN0&index=2 YouTube] (via [https://yewtu.be/watch?v=KYmn9-0Tzz8 invidious])
== Bitreichcon 2020 - 2nd May 2020 ==
'''The state of Maemo Leste''' - ''Ivan Jelincic (parazyd)''
[gopher://bitreich.org/1/con/2020 Event info (gopher)]
Slides: [gopher://bitreich.org/0/con/2020/rec/state-of-maemo-leste.md markdown]
Audio: [gopher://bitreich.org/9/con/2020/rec/brcon2020-state-of-maemo-leste.ogg OGG]
== FOSDEM 2020 - Freedom Main Track - 2nd February 2020 ==
'''Regaining control of your smartphone with postmarketOS and Maemo Leste - Status of Linux on the smartphone''' - ''Merlijn Wajer (Wizzup), Bart Ribbers (PureTryOut)''
[https://fosdem.org/2020/schedule/event/smartphones/ Event info]
Video: [https://video.fosdem.org/2020/Janson/smartphones.webm WebM/VP9], [https://video.fosdem.org/2020/Janson/smartphones.mp4 MP4]
== OpenFest 2019 - 2nd November 2019==
'''GNU/Linux: coming to a phone near you''' - ''Merlijn Wajer (Wizzup)''
[https://www.openfest.org/2019/en/full-schedule/#lecture-471 Event info]
Video: [https://www.youtube.com/watch?v=heQmjP5tQn0 YouTube] (via [https://invidio.us/watch?v=heQmjP5tQn0 Invidious])
== OpenAlt 2019 - 2nd November 2019 ==
'''Debian v kapse''' - ''Pavel Machek''
[https://openalt.cz/2019/program_detail.php#event_32 Event info]
== Devuan Conference #1: “THE POWER OF CHOICE” - 7th April 2019 ==
'''Maemo Leste: Mobile Hacker OS''' - ''Ivan Jelincic (parazyd)''
Video: [https://www.youtube.com/watch?v=_ULy7jBnXdo&t=12304 YouTube] (via [https://invidio.us/watch?v=_ULy7jBnXdo&t=12304 Invidious])
== FOSDEM 2019 - Lightning Talk - 2nd February 2019 ==
'''Maemo Leste - A Debian/Devuan based mobile hacker OS''' - ''Merlijn Wajer (Wizzup)''
[https://archive.fosdem.org/2019/schedule/event/maemo_leste_mobile Event info]
Video: [https://video.fosdem.org/2019/H.2215/maemo_leste_mobile.webm WebM/VP9], [https://video.fosdem.org/2019/H.2215/maemo_leste_mobile.mp4 MP4]
[https://maedevu.maemo.org/media/fosdem-2019-maemo-leste.pdf Slides]
== OpenFest 2018 - 4th November 2018 ==
'''Maemo Leste''' - ''Merlijn Wajer (Wizzup), Ivan Jelincic (parazyd)''
[https://www.openfest.org/2018/en/full-schedule/#lecture-360 Event info]
Video: [https://maedevu.maemo.org/media/openfest-2018-maemo-leste-wizzup-parazyd.webm WebM]
[https://maedevu.maemo.org/media/openfest-2018-maemo-leste.pdf Slides]
== OpenAlt 2018 - 3rd November 2018 ==
'''Maemo Leste - Debian do kapsy''' - ''Pavel Machek''
[https://openalt.cz/2018/program_detail.php#event_14 Event info]
Video: [https://www.youtube.com/watch?v=9C0j4M_AQ2I YouTube] (via [https://invidio.us/watch?v=9C0j4M_AQ2I Invidious])
[https://openalt.cz/2018/avatars/d96c9c95348879e4e6e2c27f665ca2b3-nokia_n900.pdf Slides]
72d19ff621b70a008066b150d2419e92c6b1d71c
Development/Tasks
0
92
1013
917
2021-05-20T12:06:48Z
Wizzup
4
wikitext
text/x-wiki
== Applications ==
This page lists some of the more important open issues for Maemo Leste. We have a complete list here, on github, but it's a bit hard to navigate: https://github.com/maemo-leste/bugtracker/issues
{| class="wikitable"
! Task
! Description
! Task Status
! User(s) working on task
! GH Bug
! URLs
! Notes
|-
| Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. <b>Funding is available for this task</b> || WIP || || https://github.com/maemo-leste/bugtracker/issues/261 || || Parayzd is working on this
|-
| Qt5 of theme and hildon widgets || Significant task || MOSTLY || [[User:freemangordon]] made a start, [[User:Wizzup]] picked up some of the work || || https://github.com/maemo-leste/qtstyleplugins/ + https://github.com/maemo-leste/qt-platform-maemo/tree/qmenu || Mainly usable already!
|-
| libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || WIP || || || ||
|-
| Extend ofono droid4 modem support || There is some ofono support in a branch, but it lacks a sim manager and some other interfaces required for maemo userspace || WIP || Tony, Pavel and [[User:Wizzup]] are working on this || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 ||
|-
| Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || https://github.com/maemo-leste/bugtracker/issues/256 || https://github.com/maemo-leste/connui-cellular ||
|-
| Test phone calls on the N900 || Figure out cmtspeechdata magic || WIP? || [[User:Wizzup]], [[User:Sicelo]], Pavel || || ||
|-
| Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || WIP || ? || || ||
|-
|"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || WIP || [[User:Parazyd]] || || ||
|-
| Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || WIP || [[User:Wizzup]], tmlind || || || Actually works quite well on the droid4. Let's do the same for Droid4. :)
|-
| osso-abook || We need osso-abook in place for all applications that need contacts (phone ui, sms ui, email ui, more) || WIP || [[User:freemangordon]] || ||https://github.com/maemo-leste/osso-abook || Making good progress
|-
| Port all packages for maemo-leste to debhelper 9 or higher || Requires for us to migrate to a newer Debian (Buster) / Devuan (Beowulf) || DONE || [[User:Parazyd]], [[User:Wizzup]], [[User:meridion]], [[User:Spinal84]] || https://github.com/maemo-leste/bugtracker/issues/234 || ||
|-
| Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || DONE || [[User:ThomasAH]], Spinal84 || https://github.com/maemo-leste/ke-recv/pull/2 ; https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || ke-recv part for slide monitoring is in place, we just need live keyboard-attached monitoring now. https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda). mer-core (sailfish/nemomobile) has keyboard monitoring integrated into mce, so we could also look at (using) that
|-
| Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 ? || *MAYBE* Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || DONE (by staying at clutter 0.8) || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches ||
|-
| Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || DONE || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ ||
|-
| hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || DONE || [[User:minicom]], [[User:Wizzup]], [[User:Parazyd]] || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc.
|-
| Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || DONE || || || ||
|-
| Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || DONE || [[User:freemangordon]] || || ||
|-
| Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || DONE || [[User:Wizzup]], [[User:Sicelo]] || || ||
|-
|}
9e89c5c75f481c35714de2044d2138e8dd17dfcc
Status/Audio
0
108
1014
923
2021-05-20T12:58:55Z
Wizzup
4
wikitext
text/x-wiki
== Current status ==
* We have yet to figure out device policies: what to do on jack unplug, what to do on jack plug while listening to music, what to do on jack unplug when you're on a phone call, etc.
== Development notes ==
For each device, we'll need to create usable Alsa UCM files. And we'll need to learn a bunch about pulseaudio's routing and policy management, how to act on certain plug events, etc.
Unsorted (useful) links:
* https://www.systutorials.com/docs/linux/man/1-alsaucm/
* https://github.com/alsa-project/alsa-ucm-conf
* https://wiki.postmarketos.org/wiki/Alsa_UCM
* https://wiki.archlinux.org/index.php/PulseAudio/Examples
* https://unix.stackexchange.com/questions/115302/disable-headphone-jack-detection-in-pulseaudio
* https://wiki.merproject.org/wiki/Nemo/Audio
* (Fremantle/N900-specific) http://wiki.maemo.org/Porting/Audio/Q_and_A_RE-PA
* (Fremantle/N900-specific) https://blog.linuxplumbersconf.org/2009/slides/Jyri-Sarha-audio_miniconf_slides.pdf
Some more, not deduplicated with above list:
* https://github.com/werman/noise-suppression-for-voice
* https://fossies.org/linux/pulseaudio/src/modules/echo-cancel/webrtc.cc
* https://lists.freedesktop.org/archives/pulseaudio-discuss/2017-May/028188.html
* https://wiki.archlinux.org/title/PulseAudio/Troubleshooting#Audio_quality
* https://www.reddit.com/r/linux/comments/2yqfqp/just_found_that_pulseaudio_have_noise/
* https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/issues/196
* https://github.com/werman/noise-suppression-for-voice
* https://www.linuxuprising.com/2020/09/how-to-enable-echo-noise-cancellation.html
* https://github.com/baresip/baresip/wiki/Using-PulseAudio:-module-echo-cancel
* https://blog.linuxplumbersconf.org/2009/slides/Jyri-Sarha-audio_miniconf_slides.pdf
* https://git.sailfishos.org/mer-core/pulseaudio-modules-nemo/tree/master/src/music
* https://git.sailfishos.org/mer-core/pulseaudio-policy-enforcement
* https://github.com/nemomobile/policy-settings-basic
* https://github.com/nemomobile/pulseaudio-settings-n900
* https://github.com/nemomobile/pulseaudio-module-cmtspeech-n9xx/commits/master
* https://wiki.merproject.org/wiki/Nemo/Audio
* http://wiki.maemo.org/Porting/Audio/Q_and_A_RE-PA
* https://github.com/baresip/baresip/wiki/Using-PulseAudio:-module-echo-cancel
6f79b1e7e10c591feec210e1ce7a8d585074b61b
Wishlist
0
89
1015
963
2021-05-20T21:24:47Z
Wizzup
4
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
{| class="wikitable"http://maemo.org/packages/view/orecchiette/
! Package name
! Done
! Reason
! User
! URL
! Notes
|-
| osso-notes || Yes (quicknote) || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Quicknote currently packaged. Usage notes - http://wiki.maemo.org/Quicknote
|-
| pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation.
|-
| scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please
|-
| [[Games/Brainparty|brainparty]] || Yes || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ ||
|-
| Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || http://maemo.org/packages/view/orecchiette/(has also Psycho Pinball installable)
|-
| Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||http://maemo.org/packages/view/orecchiette/
|-
| Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend
|-
| PDF reader || Yes || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || libhildonfm has bugs regarding file opening dialogs that need to be fixed
|-
| Calendar app || Yes || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port.
|-
| Alarm clock || Yes || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI
|-
| Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/
|-
| Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel
|-
|Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0
|-
| Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ ||
|-
| Image viewer/editor || Yes || || [[User:Maemish]] || https://github.com/maemo-leste-extras/mihphoto ||
|-
| Mail with imap support || No || || [[User:Maemish]] || ||
|-
| RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || ||
|-
| Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ ||
|-
| OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer ||
|-
| SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net ||
|-
| Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ ||
|-
| D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ ||
|-
| Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ ||
|-
| MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms ||
|-
| Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ ||
|-
| Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed.
|-
| Firewall || No || || [[User:Maemish]] || || Something with easy configuration.
|-
| Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ ||
|-
|bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ ||
|-
| cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ ||
|-
| gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ ||
|-|-
| hamsterfiler || WIP [https://github.com/maemo-leste/bugtracker/issues/499] || utilities/files || [[User:ric9k]] || http://maemo.org/packages/view/hamsterfiler/ ||
|-|-
| alarmed (or cron?) || No || utilities || [[User:ric9k]] || http://maemo.org/packages/view/alarmed/ ||
|-|-
| user friendly tracker || No || utilities? || [[User:ric9k]] || n/a :-) ||
|-|-
| Maps (offline) || Yes || Navigation || [[User:Sicelo]] || || (maep, modrana, cloudgps are all packaged). Ideally something like https://f-droid.org/en/packages/com.github.axet.maps/ from Android, but Modrana, https://github.com/M4rtinK/modrana may be easier as a start. [FoxtrotGPS https://www.foxtrotgps.org] might be the easiest to adapt, it is already packaged in Devuan.
|-
| Orecchiette || No || calls recording || [[User:capitannemo]] || http://maemo.org/packages/view/orecchiette/ ||
|-
| Panucci || No || audiobook || [[User:capitannemo]] || http://maemo.org/packages/view/panucci/ ||
|-
| gPodder || No || podcast || [[User:capitannemo]] || http://maemo.org/packages/view/gpodder/ ||
|-
| Symfonie || No || directory-based audioplayer || [[User:capitannemo]] || http://maemo.org/packages/view/symfonie/ ||
|-
| osso-clock || Yes (clock-ui) || clock and alarms application || pavel || ||
|-
| freecell4maemo || No || freecell game || pavel || ||
|-
| [http://festvox.org/index.html CMU Flite] || ? || Accessibility (TTS) || [[User:Buffer|Buffer]] ([[User talk:Buffer|talk]]) 21:48, 2 March 2020 (UTC) || https://github.com/festvox/flite ||
|-
| Cooktimer || No || feature-rich timers || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cooktimer/0.0.4-24/ || latest from extras-devel
|-
| OpenSSH Status Widget || No || openSSH monitor and config. || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/openssh-status-widget/2.2-12/ || Installing this package is the only step required on a fresh n900 to have openssh working
|-
| Recaller || No || record with one tap || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/recaller/2.1.0-5/ ||
|-
| NecroPlayer2 || No || directory-based audioplayer, easy playlist edit, multiple directories, very useful with recaller widget || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/necroplayer2/0.2.3/ ||
|-
| Simpler Brightness Applet || Yes || simple brightness applet with single tap for backlight and long tap for settings || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/simpler-brightness-applet/1.0/ ||
|)
|-
| telepathy-signal || No || The best open source alternative to WhatsApp should be ready for use with Maemo Leste || [[User:Derby]] || https://github.com/signalapp/Signal-Desktop ; https://github.com/AsamK/signal-cli || This is a suggestion to create a Telepathy connection manager for Signal. Although the Signal [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=842943 Desktop] and [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=926807 CLI] can be installed, they are not yet available in Debian. In any case, it would be great to have a Telepathy connection manager for Signal to provide seamless integration with Maemo.
369b66b1e6b5f69be0ed50afb2854f1731c06db8
IRC channel
0
54
1016
967
2021-05-22T09:00:23Z
Parazyd
1
wikitext
text/x-wiki
We are on '''irc.libera.chat''' ; channel '''#maemo-leste'''
We want everyone to feel free in our channel, but also remain productive. Therefore, while we do not 'police' the channel, it is also good etiquette to remain on-topic as far as possible.
If you use Matrix, then you can connect to the IRC channel via Libera's bridge. Simply join the room '''#libera_#maemo-leste:matrix.org'''. However, please note the following caveats when using the bridge:
* Matrix allows a message to have multiple lines (i.e. include returns). This does not look good on IRC clients. Therefore, please refrain from sending multi-line messages
* Matrix allows sending media and files within the chat, while IRC does not. On IRC, this will appear as an URL. Please do not send any media or files directly into an IRC room. Use a pastebin, and paste the URL to the item, and include a brief explanation about the link. Otherwise no one might be willing to open it
78df14ef9cb99cf64c5394e60103396e93154d6f
Extras/ScummVM
0
137
1019
2021-05-23T09:05:06Z
Wizzup
4
Created page with "ScummVM is a program which allows you to run certain classic graphical adventure and role-playing games, provided you already have their data files. The clever part about this..."
wikitext
text/x-wiki
ScummVM is a program which allows you to run certain classic graphical adventure and role-playing games, provided you already have their data files. The clever part about this: ScummVM just replaces the executables shipped with the games, allowing you to play them on systems for which they were never designed! ScummVM is a complete rewrite of these games' executables and is not an emulator. (From ScummVM website)
The maemo extras repository is here:
https://github.com/maemo-leste-extras/scummvm
Also see this page for more info: https://wiki.scummvm.org/index.php/Maemo
=== Status ===
* Games seems to be playable, with sound and input
==== Tested games ====
* The Neverhood (works)
=== TODO ===
* Support more engines
* Implement sane default keys for the devices (there is rudimentary detection for the N900, but we support more devices)
* Use libsdl2 build, didn't compile when [[User:Wizzup]] tried.
[[Category:Extras]]
[[Category:Games]]
f7e9d8d2ce4f5a8b49afd5840d76970900fe4674
1020
1019
2021-05-23T09:07:15Z
Wizzup
4
wikitext
text/x-wiki
ScummVM is a program which allows you to run certain classic graphical adventure and role-playing games, provided you already have their data files. The clever part about this: ScummVM just replaces the executables shipped with the games, allowing you to play them on systems for which they were never designed! ScummVM is a complete rewrite of these games' executables and is not an emulator. (From ScummVM website)
The maemo extras repository is here:
https://github.com/maemo-leste-extras/scummvm
Relevant issue: https://github.com/maemo-leste/bugtracker/issues/269
Also see this page for more info: https://wiki.scummvm.org/index.php/Maemo
=== Status ===
* Games seems to be playable, with sound and input
==== Tested games ====
* The Neverhood (works)
=== TODO ===
* Support more engines
* Implement sane default keys for the devices (there is rudimentary detection for the N900, but we support more devices)
* Use libsdl2 build, didn't compile when [[User:Wizzup]] tried.
[[Category:Extras]]
[[Category:Games]]
38170765b8ea8c913a01093ab87241534d61993b
1022
1020
2021-05-23T09:08:22Z
Wizzup
4
wikitext
text/x-wiki
ScummVM is a program which allows you to run certain classic graphical adventure and role-playing games, provided you already have their data files. The clever part about this: ScummVM just replaces the executables shipped with the games, allowing you to play them on systems for which they were never designed! ScummVM is a complete rewrite of these games' executables and is not an emulator. (From ScummVM website)
The maemo extras repository is here:
https://github.com/maemo-leste-extras/scummvm
Relevant issue: https://github.com/maemo-leste/bugtracker/issues/269
Also see this page for more info: https://wiki.scummvm.org/index.php/Maemo
=== Status ===
* Games seems to be playable, with sound and input
==== Tested games ====
* The Neverhood (works)
=== TODO ===
* Support more engines
* Implement sane default keys for the devices (there is rudimentary detection for the N900, but we support more devices)
* Use libsdl2 build, didn't compile when [[User:Wizzup]] tried.
[[Category:Extras]]
[[Category:Games]]
764178881d789f83367000c654b3234308f67e69
1025
1022
2021-05-23T09:15:51Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Package
|status=working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]
|date_in_repo=2021-05-21
|website=https://www.scummvm.org/
|maemo_leste_repo=https://github.com/maemo-leste-extras/scummvm
}}
ScummVM is a program which allows you to run certain classic graphical adventure and role-playing games, provided you already have their data files. The clever part about this: ScummVM just replaces the executables shipped with the games, allowing you to play them on systems for which they were never designed! ScummVM is a complete rewrite of these games' executables and is not an emulator. (From ScummVM website)
Relevant issue: https://github.com/maemo-leste/bugtracker/issues/269
Also see this page for more info: https://wiki.scummvm.org/index.php/Maemo
=== Status ===
* Games seems to be playable, with sound and input
==== Tested games ====
* The Neverhood (works)
=== TODO ===
* Support more engines
* Implement sane default keys for the devices (there is rudimentary detection for the N900, but we support more devices)
* Use libsdl2 build, didn't compile when [[User:Wizzup]] tried.
[[Category:Extras]]
[[Category:Games]]
ec677c30a62a624eee04058eca41529d6770c452
1027
1025
2021-05-23T09:18:34Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Package
|image=[[File:ScummVM_Logo.png|250px]]
|status=working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]
|date_in_repo=2021-05-21
|website=https://www.scummvm.org/
|maemo_leste_repo=https://github.com/maemo-leste-extras/scummvm
}}
ScummVM is a program which allows you to run certain classic graphical adventure and role-playing games, provided you already have their data files. The clever part about this: ScummVM just replaces the executables shipped with the games, allowing you to play them on systems for which they were never designed! ScummVM is a complete rewrite of these games' executables and is not an emulator. (From ScummVM website)
Relevant issue: https://github.com/maemo-leste/bugtracker/issues/269
Also see this page for more info: https://wiki.scummvm.org/index.php/Maemo
=== Status ===
* Games seems to be playable, with sound and input
==== Tested games ====
* The Neverhood (works)
=== TODO ===
* Support more engines
* Implement sane default keys for the devices (there is rudimentary detection for the N900, but we support more devices)
* Use libsdl2 build, didn't compile when [[User:Wizzup]] tried.
[[Category:Extras]]
[[Category:Games]]
df29b93fa3544e5bb66752656f971640ced2b525
Category:Extras
14
138
1021
2021-05-23T09:07:53Z
Wizzup
4
Created page with "This page contains a list of packages in Maemo Leste Extras with wiki pages"
wikitext
text/x-wiki
This page contains a list of packages in Maemo Leste Extras with wiki pages
93a6b6d379109ec791066848f64564faa7285bf0
Template:Infobox Package
10
139
1023
2021-05-23T09:13:32Z
Wizzup
4
Created page with "{{Infobox | abovestyle = background: #dedede; | headerstyle = background: #dedede; | above = {{{name|<includeonly>{{PAGENAME}}</includeonly>}}} | image = {{{image|}}} | c..."
wikitext
text/x-wiki
{{Infobox
| abovestyle = background: #dedede;
| headerstyle = background: #dedede;
| above = {{{name|<includeonly>{{PAGENAME}}</includeonly>}}}
| image = {{{image|}}}
| caption = {{{caption|}}}
| header2 =
| label2 = Status
| data2 = {{{status|}}}
| header3 =
| label3 = Devices
| data3 = {{{devices|}}}
| header4 =
| label4 = In Extras since
| data4 = {{{date_in_repo|}}}
| header5 =
| label5 = Website
| data5 = {{{website|}}}
| header6 =
| label6 = Maemo Leste repo
| data6 = {{{maemo_leste_repo|}}}
| header7 = TBD
| label7 =
| data7 =
| header8 =
| label8 = TBD
| data8 = {{{TBD|}}}
}}
ab58387f9f747689c56ac5597d4806b36376ece2
1024
1023
2021-05-23T09:15:45Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox
| abovestyle = background: #dedede;
| headerstyle = background: #dedede;
| above = {{{name|<includeonly>{{PAGENAME}}</includeonly>}}}
| image = {{{image|}}}
| caption = {{{caption|}}}
| header2 =
| label2 = Status
| data2 = {{{status|}}}
| header3 =
| label3 = Devices
| data3 = {{{devices|}}}
| header4 =
| label4 = Import date
| data4 = {{{date_in_repo|}}}
| header5 =
| label5 = Website
| data5 = {{{website|}}}
| header6 =
| label6 = Maemo Leste repo
| data6 = {{{maemo_leste_repo|}}}
| header7 = TBD
| label7 =
| data7 =
| header8 =
| label8 = TBD
| data8 = {{{TBD|}}}
}}
b570dd41124fbe851779d4bf29142c8d0d417bcf
File:ScummVM Logo.png
6
140
1026
2021-05-23T09:17:59Z
Wizzup
4
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Nokia N900
0
48
1028
957
2021-05-23T09:29:20Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || Yes || TX only (hardware limitation).
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode
|}
== Installation ==
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''.
To flash u-boot permanently, you can issue the following command
'''(BE CAREFUL THOUGH. THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL. ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION OR YOU KNOW HOW TO RECOVER FROM THIS CONDITION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Notes ==
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them
Also see: https://elinux.org/N900
== Power Management ==
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch
<pre>
$ cat idlest.py
"""
00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000
f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046
0000000d 48004a28 (f7aa95e6) cm_idlest3_core
"""
# 31 to 0
cm_idlest1_core_bits = [
'RESERVED',
'ST_MMC3',
'ST_ICR',
'RESERVED',
'RESERVED',
'RESERVED',
'ST_MMC2',
'ST_MMC1',
'RESERVED',
'ST_HDQ',
'ST_MCSPI4',
'ST_MCSPI3',
'ST_MCSPI2',
'ST_MCSPI1',
'ST_I2C3',
'ST_I2C2',
'ST_I2C1',
'ST_UART2',
'ST_UART1',
'ST_GPT11',
'ST_GPT10',
'ST_MCBSP5',
'ST_MCBSP1',
'RESERVED',
'ST_MAILBOXES',
'ST_OMAPCTRL',
'ST_HSOTGUSB_IDLE',
'ST_HSOTGUSB_STDBY',
'RESERVED',
'ST_SDMA',
'ST_SDRC',
'RESERVED',
]
cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits))
#inp = '0020c046'
inp = '00208042' # after rmmod hci_nokia and hci_uart
v = int(inp, 16)
#print(v)
b= "{0:b}".format(v)
print((32-len(b))*'0' + b)
for i in range(0, 32):
is_set = (v & (1 << i)) >> i
if is_set:
print(cm_idlest1_core_bits[i])
</pre>
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
[[Category:Device]]
c0db5a9236a444f52d2d39fd20addad0eca2c8e0
1031
1028
2021-05-23T09:37:17Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|status_usbnet=Y
|status_flashing=Y
|status=touch=Y
|status_screen=Y
|status_wifi=Y
|status_x11=Y
|status_mainline=Y
|status_battery=Y
|status_3d=Y
|status_accel=?
|status_audio=Y
|status_bluetooth=?
|status_camera=?
|status_gps=Y
|status_mobiledata=Y
|status_calls=?
|status_otg=?
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || Yes || TX only (hardware limitation).
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode
|}
== Installation ==
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''.
To flash u-boot permanently, you can issue the following command
'''(BE CAREFUL THOUGH. THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL. ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION OR YOU KNOW HOW TO RECOVER FROM THIS CONDITION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Notes ==
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them
Also see: https://elinux.org/N900
== Power Management ==
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch
<pre>
$ cat idlest.py
"""
00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000
f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046
0000000d 48004a28 (f7aa95e6) cm_idlest3_core
"""
# 31 to 0
cm_idlest1_core_bits = [
'RESERVED',
'ST_MMC3',
'ST_ICR',
'RESERVED',
'RESERVED',
'RESERVED',
'ST_MMC2',
'ST_MMC1',
'RESERVED',
'ST_HDQ',
'ST_MCSPI4',
'ST_MCSPI3',
'ST_MCSPI2',
'ST_MCSPI1',
'ST_I2C3',
'ST_I2C2',
'ST_I2C1',
'ST_UART2',
'ST_UART1',
'ST_GPT11',
'ST_GPT10',
'ST_MCBSP5',
'ST_MCBSP1',
'RESERVED',
'ST_MAILBOXES',
'ST_OMAPCTRL',
'ST_HSOTGUSB_IDLE',
'ST_HSOTGUSB_STDBY',
'RESERVED',
'ST_SDMA',
'ST_SDRC',
'RESERVED',
]
cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits))
#inp = '0020c046'
inp = '00208042' # after rmmod hci_nokia and hci_uart
v = int(inp, 16)
#print(v)
b= "{0:b}".format(v)
print((32-len(b))*'0' + b)
for i in range(0, 32):
is_set = (v & (1 << i)) >> i
if is_set:
print(cm_idlest1_core_bits[i])
</pre>
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
[[Category:Device]]
ade040ace2405cce8b51d77881770db6afb3d993
1032
1031
2021-05-23T09:38:31Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|status_usbnet=Y
|status_flashing=Y
|status_touch=Y
|status_screen=Y
|status_wifi=Y
|status_x11=Y
|status_mainline=Y
|status_battery=Y
|status_3d=Y
|status_accel=?
|status_audio=Y
|status_bluetooth=?
|status_camera=?
|status_gps=Y
|status_mobiledata=Y
|status_calls=?
|status_otg=?
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || Yes || TX only (hardware limitation).
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode
|}
== Installation ==
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''.
To flash u-boot permanently, you can issue the following command
'''(BE CAREFUL THOUGH. THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL. ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION OR YOU KNOW HOW TO RECOVER FROM THIS CONDITION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Notes ==
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them
Also see: https://elinux.org/N900
== Power Management ==
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch
<pre>
$ cat idlest.py
"""
00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000
f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046
0000000d 48004a28 (f7aa95e6) cm_idlest3_core
"""
# 31 to 0
cm_idlest1_core_bits = [
'RESERVED',
'ST_MMC3',
'ST_ICR',
'RESERVED',
'RESERVED',
'RESERVED',
'ST_MMC2',
'ST_MMC1',
'RESERVED',
'ST_HDQ',
'ST_MCSPI4',
'ST_MCSPI3',
'ST_MCSPI2',
'ST_MCSPI1',
'ST_I2C3',
'ST_I2C2',
'ST_I2C1',
'ST_UART2',
'ST_UART1',
'ST_GPT11',
'ST_GPT10',
'ST_MCBSP5',
'ST_MCBSP1',
'RESERVED',
'ST_MAILBOXES',
'ST_OMAPCTRL',
'ST_HSOTGUSB_IDLE',
'ST_HSOTGUSB_STDBY',
'RESERVED',
'ST_SDMA',
'ST_SDRC',
'RESERVED',
]
cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits))
#inp = '0020c046'
inp = '00208042' # after rmmod hci_nokia and hci_uart
v = int(inp, 16)
#print(v)
b= "{0:b}".format(v)
print((32-len(b))*'0' + b)
for i in range(0, 32):
is_set = (v & (1 << i)) >> i
if is_set:
print(cm_idlest1_core_bits[i])
</pre>
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
[[Category:Device]]
d2caacb2d727ea75110525e5207547d75641988a
1037
1032
2021-05-23T09:47:55Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Main
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|status_usbnet=Y
|status_flashing=Y
|status_touch=Y
|status_screen=Y
|status_wifi=Y
|status_x11=Y
|status_mainline=Y
|status_battery=Y
|status_3d=Y
|status_accel=?
|status_audio=Y
|status_bluetooth=?
|status_camera=?
|status_gps=Y
|status_mobiledata=Y
|status_calls=?
|status_otg=?
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || Yes || TX only (hardware limitation).
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode
|}
== Installation ==
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''.
To flash u-boot permanently, you can issue the following command
'''(BE CAREFUL THOUGH. THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL. ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION OR YOU KNOW HOW TO RECOVER FROM THIS CONDITION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Notes ==
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them
Also see: https://elinux.org/N900
== Power Management ==
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch
<pre>
$ cat idlest.py
"""
00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000
f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046
0000000d 48004a28 (f7aa95e6) cm_idlest3_core
"""
# 31 to 0
cm_idlest1_core_bits = [
'RESERVED',
'ST_MMC3',
'ST_ICR',
'RESERVED',
'RESERVED',
'RESERVED',
'ST_MMC2',
'ST_MMC1',
'RESERVED',
'ST_HDQ',
'ST_MCSPI4',
'ST_MCSPI3',
'ST_MCSPI2',
'ST_MCSPI1',
'ST_I2C3',
'ST_I2C2',
'ST_I2C1',
'ST_UART2',
'ST_UART1',
'ST_GPT11',
'ST_GPT10',
'ST_MCBSP5',
'ST_MCBSP1',
'RESERVED',
'ST_MAILBOXES',
'ST_OMAPCTRL',
'ST_HSOTGUSB_IDLE',
'ST_HSOTGUSB_STDBY',
'RESERVED',
'ST_SDMA',
'ST_SDRC',
'RESERVED',
]
cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits))
#inp = '0020c046'
inp = '00208042' # after rmmod hci_nokia and hci_uart
v = int(inp, 16)
#print(v)
b= "{0:b}".format(v)
print((32-len(b))*'0' + b)
for i in range(0, 32):
is_set = (v & (1 << i)) >> i
if is_set:
print(cm_idlest1_core_bits[i])
</pre>
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
[[Category:Device]]
3c9bc35cfec51526cbe5544c945948746e3eca9f
1042
1037
2021-05-23T09:52:04Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|status_usbnet=Y
|status_flashing=Y
|status_touch=Y
|status_screen=Y
|status_wifi=Y
|status_x11=Y
|status_mainline=Y
|status_battery=Y
|status_3d=Y
|status_accel=?
|status_audio=Y
|status_bluetooth=?
|status_camera=?
|status_gps=Y
|status_mobiledata=Y
|status_calls=?
|status_otg=?
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || Yes || TX only (hardware limitation).
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode
|}
== Installation ==
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''.
To flash u-boot permanently, you can issue the following command
'''(BE CAREFUL THOUGH. THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL. ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION OR YOU KNOW HOW TO RECOVER FROM THIS CONDITION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Notes ==
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them
Also see: https://elinux.org/N900
== Power Management ==
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch
<pre>
$ cat idlest.py
"""
00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000
f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046
0000000d 48004a28 (f7aa95e6) cm_idlest3_core
"""
# 31 to 0
cm_idlest1_core_bits = [
'RESERVED',
'ST_MMC3',
'ST_ICR',
'RESERVED',
'RESERVED',
'RESERVED',
'ST_MMC2',
'ST_MMC1',
'RESERVED',
'ST_HDQ',
'ST_MCSPI4',
'ST_MCSPI3',
'ST_MCSPI2',
'ST_MCSPI1',
'ST_I2C3',
'ST_I2C2',
'ST_I2C1',
'ST_UART2',
'ST_UART1',
'ST_GPT11',
'ST_GPT10',
'ST_MCBSP5',
'ST_MCBSP1',
'RESERVED',
'ST_MAILBOXES',
'ST_OMAPCTRL',
'ST_HSOTGUSB_IDLE',
'ST_HSOTGUSB_STDBY',
'RESERVED',
'ST_SDMA',
'ST_SDRC',
'RESERVED',
]
cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits))
#inp = '0020c046'
inp = '00208042' # after rmmod hci_nokia and hci_uart
v = int(inp, 16)
#print(v)
b= "{0:b}".format(v)
print((32-len(b))*'0' + b)
for i in range(0, 32):
is_set = (v & (1 << i)) >> i
if is_set:
print(cm_idlest1_core_bits[i])
</pre>
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
[[Category:Device]]
24eb4addb2b147d203aed7298fb14decc539e4cd
Template:Infobox Device
10
45
1029
106
2021-05-23T09:33:06Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox
| abovestyle = background: #dedede;
| headerstyle = background: #dedede;
| above = {{{name|<includeonly>{{PAGENAME}}</includeonly>}}}
| image = {{{image|}}}
| caption = {{{caption|}}}
| header2 =
| label2 = Manufacturer
| data2 = {{{manufacturer|}}}
| header3 =
| label3 = Codename
| data3 = {{{codename|}}}
| header4 =
| label4 = Dimensions
| data4 = {{{dimensions|}}}
| header5 =
| label5 = Release Date
| data5 = {{{release_date|}}}
| header6 =
| label6 = Website
| data6 = {{{website|}}}
| header7 = Specifications
| label7 =
| data7 =
| header8 =
| label8 = SoC
| data8 = {{{soc|}}}
| header9 =
| label9 = DRAM
| data9 = {{{dram|}}}
| header10 =
| label10 = NAND
| data10 = {{{nand|}}}
| header11 =
| label11 = Power
| data11 = {{{power|}}}
| header12 = Features
| label12 =
| data12 =
| header13 =
| label13 = LCD
| data13 = {{{lcd|}}}
| header14 =
| label14 = Input
| data14 = {{{input|}}}
| header15 =
| label15 = Video
| data15 = {{{video|}}}
| header16 =
| label16 = Audio
| data16 = {{{audio|}}}
| header17 =
| label17 = Network
| data17 = {{{network|}}}
| header18 =
| label18 = Storage
| data18 = {{{storage|}}}
| header19 =
| label19 = USB (<small>Host/OTG</small>)
| data19 = {{{usb|}}}
| header20 =
| label20 = Camera
| data20 = {{{camera|}}}
| header21 =
| label21 = Sensors
| data21 = {{{sensors|}}}
| header22 =
| label22 = Other
| data22 = {{{other|}}}
| header23 =
| label23 = External Headers
| data23 = {{{headers|}}}
}}
{{Infobox
| name=Features
| bodystyle=
| title = Features
| titlestyle =
|label1 = USB Networking
|data1 = {{Feature|{{{status_usbnet|}}}}}
|header2 =
|label2 = Flashing
|data2 = {{Feature|{{{status_flashing|}}}}}
|header3 =
|label3 = Touchscreen
|data3 = {{Feature|{{{status_touch|}}}}}
|header4 =
|label4 = Display
|data4 = {{Feature|{{{status_screen|}}}}}
|header5 =
|label5 = WiFi
|data5 = {{Feature|{{{status_wifi|}}}}}
|header6 =
|label6 = X11
|data6 = {{Feature|{{{status_x11|}}}}}
|header7 =
|label7 = FDE
|data7 = {{Feature|{{{status_fde|}}}}}
|header8 =
|label8 = Mainline
|data8 = {{Feature|{{{status_mainline|}}}}}
|header9 =
|label9 = Battery
|data9 = {{Feature|{{{status_battery|}}}}}
|header10 =
|label10 = 3D Acceleration
|data10 = {{Feature|{{{status_3d|}}}}}
|header11 =
|label11 = Accelerometer
|data11 = {{Feature|{{{status_accel|}}}}}
|header12 =
|label12 = Audio
|data12 = {{Feature|{{{status_audio|}}}}}
|header13 =
|label13 = Bluetooth
|data13 = {{Feature|{{{status_bluetooth|}}}}}
|header14 =
|label14 = Camera
|data14 = {{Feature|{{{status_camera|}}}}}
|header15 =
|label15 = GPS
|data15 = {{Feature|{{{status_gps|}}}}}
|header16 =
|label16 = Mobile data
|data16 = {{Feature|{{{status_mobiledata|}}}}}
|header17 =
|label17 = SMS
|data17 = {{Feature|{{{status_sms|}}}}}
|header18 =
|label18 = Calls
|data18 = {{Feature|{{{status_calls|}}}}}
|header19 =
|label19 = USB OTG
|data19 = {{Feature|{{{status_otg|}}}}}
|header20 =
|label20 = NFC
|data20 = {{Feature|{{{status_nfc|}}}}}
}}
39f170c0ce82dc5e7155632910e480c541757b09
1033
1029
2021-05-23T09:43:46Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox
| abovestyle = background: #dedede;
| headerstyle = background: #dedede;
| above = {{{name|<includeonly>{{PAGENAME}}</includeonly>}}}
| image = {{{image|}}}
| caption = {{{caption|}}}
| header2 =
| label2 = Manufacturer
| data2 = {{{manufacturer|}}}
| header3 =
| label3 = Codename
| data3 = {{{codename|}}}
| header4 =
| label4 = Dimensions
| data4 = {{{dimensions|}}}
| header5 =
| label5 = Release Date
| data5 = {{{release_date|}}}
| header6 =
| label6 = Website
| data6 = {{{website|}}}
| header7 =
| label7 = Category
| data7 = {{{category}}}
}}
{{Infobox
| name=Features
| bodystyle=
| title = Features
| titlestyle =
|label1 = USB Networking
|data1 = {{Feature|{{{status_usbnet|}}}}}
|header2 =
|label2 = Flashing
|data2 = {{Feature|{{{status_flashing|}}}}}
|header3 =
|label3 = Touchscreen
|data3 = {{Feature|{{{status_touch|}}}}}
|header4 =
|label4 = Display
|data4 = {{Feature|{{{status_screen|}}}}}
|header5 =
|label5 = WiFi
|data5 = {{Feature|{{{status_wifi|}}}}}
|header6 =
|label6 = X11
|data6 = {{Feature|{{{status_x11|}}}}}
|header7 =
|label7 = FDE
|data7 = {{Feature|{{{status_fde|}}}}}
|header8 =
|label8 = Mainline
|data8 = {{Feature|{{{status_mainline|}}}}}
|header9 =
|label9 = Battery
|data9 = {{Feature|{{{status_battery|}}}}}
|header10 =
|label10 = 3D Acceleration
|data10 = {{Feature|{{{status_3d|}}}}}
|header11 =
|label11 = Accelerometer
|data11 = {{Feature|{{{status_accel|}}}}}
|header12 =
|label12 = Audio
|data12 = {{Feature|{{{status_audio|}}}}}
|header13 =
|label13 = Bluetooth
|data13 = {{Feature|{{{status_bluetooth|}}}}}
|header14 =
|label14 = Camera
|data14 = {{Feature|{{{status_camera|}}}}}
|header15 =
|label15 = GPS
|data15 = {{Feature|{{{status_gps|}}}}}
|header16 =
|label16 = Mobile data
|data16 = {{Feature|{{{status_mobiledata|}}}}}
|header17 =
|label17 = SMS
|data17 = {{Feature|{{{status_sms|}}}}}
|header18 =
|label18 = Calls
|data18 = {{Feature|{{{status_calls|}}}}}
|header19 =
|label19 = USB OTG
|data19 = {{Feature|{{{status_otg|}}}}}
|header20 =
|label20 = NFC
|data20 = {{Feature|{{{status_nfc|}}}}}
}}
d8f156f7f1038f36672d6671f7e8a86dcfffdab7
1034
1033
2021-05-23T09:44:19Z
Wizzup
4
Reverted edits by [[Special:Contributions/Wizzup|Wizzup]] ([[User talk:Wizzup|talk]]) to last revision by [[User:Swabbles|Swabbles]]
wikitext
text/x-wiki
{{Infobox
| abovestyle = background: #dedede;
| headerstyle = background: #dedede;
| above = {{{name|<includeonly>{{PAGENAME}}</includeonly>}}}
| image = {{{image|}}}
| caption = {{{caption|}}}
| header2 =
| label2 = Manufacturer
| data2 = {{{manufacturer|}}}
| header3 =
| label3 = Codename
| data3 = {{{codename|}}}
| header4 =
| label4 = Dimensions
| data4 = {{{dimensions|}}}
| header5 =
| label5 = Release Date
| data5 = {{{release_date|}}}
| header6 =
| label6 = Website
| data6 = {{{website|}}}
| header7 = Specifications
| label7 =
| data7 =
| header8 =
| label8 = SoC
| data8 = {{{soc|}}}
| header9 =
| label9 = DRAM
| data9 = {{{dram|}}}
| header10 =
| label10 = NAND
| data10 = {{{nand|}}}
| header11 =
| label11 = Power
| data11 = {{{power|}}}
| header12 = Features
| label12 =
| data12 =
| header13 =
| label13 = LCD
| data13 = {{{lcd|}}}
| header14 =
| label14 = Input
| data14 = {{{input|}}}
| header15 =
| label15 = Video
| data15 = {{{video|}}}
| header16 =
| label16 = Audio
| data16 = {{{audio|}}}
| header17 =
| label17 = Network
| data17 = {{{network|}}}
| header18 =
| label18 = Storage
| data18 = {{{storage|}}}
| header19 =
| label19 = USB (<small>Host/OTG</small>)
| data19 = {{{usb|}}}
| header20 =
| label20 = Camera
| data20 = {{{camera|}}}
| header21 =
| label21 = Sensors
| data21 = {{{sensors|}}}
| header22 =
| label22 = Other
| data22 = {{{other|}}}
| header23 =
| label23 = External Headers
| data23 = {{{headers|}}}
}}
993003e5ee469a6119c5d643d599b7028809c79e
1035
1034
2021-05-23T09:47:01Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox
| abovestyle = background: #dedede;
| headerstyle = background: #dedede;
| above = {{{name|<includeonly>{{PAGENAME}}</includeonly>}}}
| image = {{{image|}}}
| caption = {{{caption|}}}
| header2 =
| label2 = Manufacturer
| data2 = {{{manufacturer|}}}
| header3 =
| label3 = Codename
| data3 = {{{codename|}}}
| header4 =
| label4 = Dimensions
| data4 = {{{dimensions|}}}
| header5 =
| label5 = Release Date
| data5 = {{{release_date|}}}
| header6 =
| label6 = Website
| data6 = {{{website|}}}
| header7 = Specifications
| label7 =
| data7 =
| header8 =
| label8 = SoC
| data8 = {{{soc|}}}
| header9 =
| label9 = DRAM
| data9 = {{{dram|}}}
| header10 =
| label10 = NAND
| data10 = {{{nand|}}}
| header11 =
| label11 = Power
| data11 = {{{power|}}}
| header12 = Hardware Features
| label12 =
| data12 =
| header13 =
| label13 = LCD
| data13 = {{{lcd|}}}
| header14 =
| label14 = Input
| data14 = {{{input|}}}
| header15 =
| label15 = Video
| data15 = {{{video|}}}
| header16 =
| label16 = Audio
| data16 = {{{audio|}}}
| header17 =
| label17 = Network
| data17 = {{{network|}}}
| header18 =
| label18 = Storage
| data18 = {{{storage|}}}
| header19 =
| label19 = USB (<small>Host/OTG</small>)
| data19 = {{{usb|}}}
| header20 =
| label20 = Camera
| data20 = {{{camera|}}}
| header21 =
| label21 = Sensors
| data21 = {{{sensors|}}}
| header22 =
| label22 = Other
| data22 = {{{other|}}}
| header23 =
| label23 = External Headers
| data23 = {{{headers|}}}
}}
{{Infobox
| name=Features
| bodystyle=
| title = Software Features
| titlestyle =
|label1 = USB Networking
|data1 = {{Feature|{{{status_usbnet|}}}}}
|header2 =
|label2 = Flashing
|data2 = {{Feature|{{{status_flashing|}}}}}
|header3 =
|label3 = Touchscreen
|data3 = {{Feature|{{{status_touch|}}}}}
|header4 =
|label4 = Display
|data4 = {{Feature|{{{status_screen|}}}}}
|header5 =
|label5 = WiFi
|data5 = {{Feature|{{{status_wifi|}}}}}
|header6 =
|label6 = X11
|data6 = {{Feature|{{{status_x11|}}}}}
|header7 =
|label7 = FDE
|data7 = {{Feature|{{{status_fde|}}}}}
|header8 =
|label8 = Mainline
|data8 = {{Feature|{{{status_mainline|}}}}}
|header9 =
|label9 = Battery
|data9 = {{Feature|{{{status_battery|}}}}}
|header10 =
|label10 = 3D Acceleration
|data10 = {{Feature|{{{status_3d|}}}}}
|header11 =
|label11 = Accelerometer
|data11 = {{Feature|{{{status_accel|}}}}}
|header12 =
|label12 = Audio
|data12 = {{Feature|{{{status_audio|}}}}}
|header13 =
|label13 = Bluetooth
|data13 = {{Feature|{{{status_bluetooth|}}}}}
|header14 =
|label14 = Camera
|data14 = {{Feature|{{{status_camera|}}}}}
|header15 =
|label15 = GPS
|data15 = {{Feature|{{{status_gps|}}}}}
|header16 =
|label16 = Mobile data
|data16 = {{Feature|{{{status_mobiledata|}}}}}
|header17 =
|label17 = SMS
|data17 = {{Feature|{{{status_sms|}}}}}
|header18 =
|label18 = Calls
|data18 = {{Feature|{{{status_calls|}}}}}
|header19 =
|label19 = USB OTG
|data19 = {{Feature|{{{status_otg|}}}}}
|header20 =
|label20 = NFC
|data20 = {{Feature|{{{status_nfc|}}}}}
}}
df4ae0a993794da5dc3a6249aa4326a3d8c29ed8
1036
1035
2021-05-23T09:47:52Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox
| abovestyle = background: #dedede;
| headerstyle = background: #dedede;
| above = {{{name|<includeonly>{{PAGENAME}}</includeonly>}}}
| image = {{{image|}}}
| caption = {{{caption|}}}
| header2 =
| label2 = Manufacturer
| data2 = {{{manufacturer|}}}
| header3 =
| label3 = Codename
| data3 = {{{codename|}}}
| header4 =
| label4 = Dimensions
| data4 = {{{dimensions|}}}
| header5 =
| label5 = Release Date
| data5 = {{{release_date|}}}
| header6 =
| label6 = Website
| data6 = {{{website|}}}
| header_category =
| label_category = Website
| data_category = {{{category|}}}
| header7 = Specifications
| label7 =
| data7 =
| header8 =
| label8 = SoC
| data8 = {{{soc|}}}
| header9 =
| label9 = DRAM
| data9 = {{{dram|}}}
| header10 =
| label10 = NAND
| data10 = {{{nand|}}}
| header11 =
| label11 = Power
| data11 = {{{power|}}}
| header12 = Hardware Features
| label12 =
| data12 =
| header13 =
| label13 = LCD
| data13 = {{{lcd|}}}
| header14 =
| label14 = Input
| data14 = {{{input|}}}
| header15 =
| label15 = Video
| data15 = {{{video|}}}
| header16 =
| label16 = Audio
| data16 = {{{audio|}}}
| header17 =
| label17 = Network
| data17 = {{{network|}}}
| header18 =
| label18 = Storage
| data18 = {{{storage|}}}
| header19 =
| label19 = USB (<small>Host/OTG</small>)
| data19 = {{{usb|}}}
| header20 =
| label20 = Camera
| data20 = {{{camera|}}}
| header21 =
| label21 = Sensors
| data21 = {{{sensors|}}}
| header22 =
| label22 = Other
| data22 = {{{other|}}}
| header23 =
| label23 = External Headers
| data23 = {{{headers|}}}
}}
{{Infobox
| name=Features
| bodystyle=
| title = Software Features
| titlestyle =
|label1 = USB Networking
|data1 = {{Feature|{{{status_usbnet|}}}}}
|header2 =
|label2 = Flashing
|data2 = {{Feature|{{{status_flashing|}}}}}
|header3 =
|label3 = Touchscreen
|data3 = {{Feature|{{{status_touch|}}}}}
|header4 =
|label4 = Display
|data4 = {{Feature|{{{status_screen|}}}}}
|header5 =
|label5 = WiFi
|data5 = {{Feature|{{{status_wifi|}}}}}
|header6 =
|label6 = X11
|data6 = {{Feature|{{{status_x11|}}}}}
|header7 =
|label7 = FDE
|data7 = {{Feature|{{{status_fde|}}}}}
|header8 =
|label8 = Mainline
|data8 = {{Feature|{{{status_mainline|}}}}}
|header9 =
|label9 = Battery
|data9 = {{Feature|{{{status_battery|}}}}}
|header10 =
|label10 = 3D Acceleration
|data10 = {{Feature|{{{status_3d|}}}}}
|header11 =
|label11 = Accelerometer
|data11 = {{Feature|{{{status_accel|}}}}}
|header12 =
|label12 = Audio
|data12 = {{Feature|{{{status_audio|}}}}}
|header13 =
|label13 = Bluetooth
|data13 = {{Feature|{{{status_bluetooth|}}}}}
|header14 =
|label14 = Camera
|data14 = {{Feature|{{{status_camera|}}}}}
|header15 =
|label15 = GPS
|data15 = {{Feature|{{{status_gps|}}}}}
|header16 =
|label16 = Mobile data
|data16 = {{Feature|{{{status_mobiledata|}}}}}
|header17 =
|label17 = SMS
|data17 = {{Feature|{{{status_sms|}}}}}
|header18 =
|label18 = Calls
|data18 = {{Feature|{{{status_calls|}}}}}
|header19 =
|label19 = USB OTG
|data19 = {{Feature|{{{status_otg|}}}}}
|header20 =
|label20 = NFC
|data20 = {{Feature|{{{status_nfc|}}}}}
}}
410b816e2d72fcf041a445d53edbd141dbb72364
1038
1036
2021-05-23T09:48:37Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox
| abovestyle = background: #dedede;
| headerstyle = background: #dedede;
| above = {{{name|<includeonly>{{PAGENAME}}</includeonly>}}}
| image = {{{image|}}}
| caption = {{{caption|}}}
| header2 =
| label2 = Manufacturer
| data2 = {{{manufacturer|}}}
| header3 =
| label3 = Codename
| data3 = {{{codename|}}}
| header4 =
| label4 = Dimensions
| data4 = {{{dimensions|}}}
| header5 =
| label5 = Release Date
| data5 = {{{release_date|}}}
| header6 =
| label6 = Website
| data6 = {{{website|}}}
| header_category =
| label_category = Category
| data_category = {{{category|}}}
| header7 = Specifications
| label7 =
| data7 =
| header8 =
| label8 = SoC
| data8 = {{{soc|}}}
| header9 =
| label9 = DRAM
| data9 = {{{dram|}}}
| header10 =
| label10 = NAND
| data10 = {{{nand|}}}
| header11 =
| label11 = Power
| data11 = {{{power|}}}
| header12 = Hardware Features
| label12 =
| data12 =
| header13 =
| label13 = LCD
| data13 = {{{lcd|}}}
| header14 =
| label14 = Input
| data14 = {{{input|}}}
| header15 =
| label15 = Video
| data15 = {{{video|}}}
| header16 =
| label16 = Audio
| data16 = {{{audio|}}}
| header17 =
| label17 = Network
| data17 = {{{network|}}}
| header18 =
| label18 = Storage
| data18 = {{{storage|}}}
| header19 =
| label19 = USB (<small>Host/OTG</small>)
| data19 = {{{usb|}}}
| header20 =
| label20 = Camera
| data20 = {{{camera|}}}
| header21 =
| label21 = Sensors
| data21 = {{{sensors|}}}
| header22 =
| label22 = Other
| data22 = {{{other|}}}
| header23 =
| label23 = External Headers
| data23 = {{{headers|}}}
}}
{{Infobox
| name=Features
| bodystyle=
| title = Software Features
| titlestyle =
|label1 = USB Networking
|data1 = {{Feature|{{{status_usbnet|}}}}}
|header2 =
|label2 = Flashing
|data2 = {{Feature|{{{status_flashing|}}}}}
|header3 =
|label3 = Touchscreen
|data3 = {{Feature|{{{status_touch|}}}}}
|header4 =
|label4 = Display
|data4 = {{Feature|{{{status_screen|}}}}}
|header5 =
|label5 = WiFi
|data5 = {{Feature|{{{status_wifi|}}}}}
|header6 =
|label6 = X11
|data6 = {{Feature|{{{status_x11|}}}}}
|header7 =
|label7 = FDE
|data7 = {{Feature|{{{status_fde|}}}}}
|header8 =
|label8 = Mainline
|data8 = {{Feature|{{{status_mainline|}}}}}
|header9 =
|label9 = Battery
|data9 = {{Feature|{{{status_battery|}}}}}
|header10 =
|label10 = 3D Acceleration
|data10 = {{Feature|{{{status_3d|}}}}}
|header11 =
|label11 = Accelerometer
|data11 = {{Feature|{{{status_accel|}}}}}
|header12 =
|label12 = Audio
|data12 = {{Feature|{{{status_audio|}}}}}
|header13 =
|label13 = Bluetooth
|data13 = {{Feature|{{{status_bluetooth|}}}}}
|header14 =
|label14 = Camera
|data14 = {{Feature|{{{status_camera|}}}}}
|header15 =
|label15 = GPS
|data15 = {{Feature|{{{status_gps|}}}}}
|header16 =
|label16 = Mobile data
|data16 = {{Feature|{{{status_mobiledata|}}}}}
|header17 =
|label17 = SMS
|data17 = {{Feature|{{{status_sms|}}}}}
|header18 =
|label18 = Calls
|data18 = {{Feature|{{{status_calls|}}}}}
|header19 =
|label19 = USB OTG
|data19 = {{Feature|{{{status_otg|}}}}}
|header20 =
|label20 = NFC
|data20 = {{Feature|{{{status_nfc|}}}}}
}}
3cd3ea876967ed48c0e31850e74d75fca7f1f598
1039
1038
2021-05-23T09:49:09Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox
| abovestyle = background: #dedede;
| headerstyle = background: #dedede;
| above = {{{name|<includeonly>{{PAGENAME}}</includeonly>}}}
| image = {{{image|}}}
| caption = {{{caption|}}}
| header2 =
| label2 = Manufacturer
| data2 = {{{manufacturer|}}}
| header3 =
| label3 = Codename
| data3 = {{{codename|}}}
| header4 =
| label4 = Dimensions
| data4 = {{{dimensions|}}}
| header5 =
| label5 = Release Date
| data5 = {{{release_date|}}}
| header6 =
| label6 = Website
| data6 = {{{website|}}}
| heade24 =
| label24 = Category
| dat24 = {{{category|}}}
| header7 = Specifications
| label7 =
| data7 =
| header8 =
| label8 = SoC
| data8 = {{{soc|}}}
| header9 =
| label9 = DRAM
| data9 = {{{dram|}}}
| header10 =
| label10 = NAND
| data10 = {{{nand|}}}
| header11 =
| label11 = Power
| data11 = {{{power|}}}
| header12 = Hardware Features
| label12 =
| data12 =
| header13 =
| label13 = LCD
| data13 = {{{lcd|}}}
| header14 =
| label14 = Input
| data14 = {{{input|}}}
| header15 =
| label15 = Video
| data15 = {{{video|}}}
| header16 =
| label16 = Audio
| data16 = {{{audio|}}}
| header17 =
| label17 = Network
| data17 = {{{network|}}}
| header18 =
| label18 = Storage
| data18 = {{{storage|}}}
| header19 =
| label19 = USB (<small>Host/OTG</small>)
| data19 = {{{usb|}}}
| header20 =
| label20 = Camera
| data20 = {{{camera|}}}
| header21 =
| label21 = Sensors
| data21 = {{{sensors|}}}
| header22 =
| label22 = Other
| data22 = {{{other|}}}
| header23 =
| label23 = External Headers
| data23 = {{{headers|}}}
}}
{{Infobox
| name=Features
| bodystyle=
| title = Software Features
| titlestyle =
|label1 = USB Networking
|data1 = {{Feature|{{{status_usbnet|}}}}}
|header2 =
|label2 = Flashing
|data2 = {{Feature|{{{status_flashing|}}}}}
|header3 =
|label3 = Touchscreen
|data3 = {{Feature|{{{status_touch|}}}}}
|header4 =
|label4 = Display
|data4 = {{Feature|{{{status_screen|}}}}}
|header5 =
|label5 = WiFi
|data5 = {{Feature|{{{status_wifi|}}}}}
|header6 =
|label6 = X11
|data6 = {{Feature|{{{status_x11|}}}}}
|header7 =
|label7 = FDE
|data7 = {{Feature|{{{status_fde|}}}}}
|header8 =
|label8 = Mainline
|data8 = {{Feature|{{{status_mainline|}}}}}
|header9 =
|label9 = Battery
|data9 = {{Feature|{{{status_battery|}}}}}
|header10 =
|label10 = 3D Acceleration
|data10 = {{Feature|{{{status_3d|}}}}}
|header11 =
|label11 = Accelerometer
|data11 = {{Feature|{{{status_accel|}}}}}
|header12 =
|label12 = Audio
|data12 = {{Feature|{{{status_audio|}}}}}
|header13 =
|label13 = Bluetooth
|data13 = {{Feature|{{{status_bluetooth|}}}}}
|header14 =
|label14 = Camera
|data14 = {{Feature|{{{status_camera|}}}}}
|header15 =
|label15 = GPS
|data15 = {{Feature|{{{status_gps|}}}}}
|header16 =
|label16 = Mobile data
|data16 = {{Feature|{{{status_mobiledata|}}}}}
|header17 =
|label17 = SMS
|data17 = {{Feature|{{{status_sms|}}}}}
|header18 =
|label18 = Calls
|data18 = {{Feature|{{{status_calls|}}}}}
|header19 =
|label19 = USB OTG
|data19 = {{Feature|{{{status_otg|}}}}}
|header20 =
|label20 = NFC
|data20 = {{Feature|{{{status_nfc|}}}}}
}}
d95b31b0df30441b8f856c3bc32567bf85362851
1040
1039
2021-05-23T09:50:03Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox
| abovestyle = background: #dedede;
| headerstyle = background: #dedede;
| above = {{{name|<includeonly>{{PAGENAME}}</includeonly>}}}
| image = {{{image|}}}
| caption = {{{caption|}}}
| header2 =
| label2 = Manufacturer
| data2 = {{{manufacturer|}}}
| header3 =
| label3 = Codename
| data3 = {{{codename|}}}
| header4 =
| label4 = Dimensions
| data4 = {{{dimensions|}}}
| header5 =
| label5 = Release Date
| data5 = {{{release_date|}}}
| header6 =
| label6 = Website
| data6 = {{{website|}}}
| heade24 =
| label24 = Category
| data24 = {{{category|}}}
| header7 = Specifications
| label7 =
| data7 =
| header8 =
| label8 = SoC
| data8 = {{{soc|}}}
| header9 =
| label9 = DRAM
| data9 = {{{dram|}}}
| header10 =
| label10 = NAND
| data10 = {{{nand|}}}
| header11 =
| label11 = Power
| data11 = {{{power|}}}
| header12 = Hardware Features
| label12 =
| data12 =
| header13 =
| label13 = LCD
| data13 = {{{lcd|}}}
| header14 =
| label14 = Input
| data14 = {{{input|}}}
| header15 =
| label15 = Video
| data15 = {{{video|}}}
| header16 =
| label16 = Audio
| data16 = {{{audio|}}}
| header17 =
| label17 = Network
| data17 = {{{network|}}}
| header18 =
| label18 = Storage
| data18 = {{{storage|}}}
| header19 =
| label19 = USB (<small>Host/OTG</small>)
| data19 = {{{usb|}}}
| header20 =
| label20 = Camera
| data20 = {{{camera|}}}
| header21 =
| label21 = Sensors
| data21 = {{{sensors|}}}
| header22 =
| label22 = Other
| data22 = {{{other|}}}
| header23 =
| label23 = External Headers
| data23 = {{{headers|}}}
}}
{{Infobox
| name=Features
| bodystyle=
| title = Software Features
| titlestyle =
|label1 = USB Networking
|data1 = {{Feature|{{{status_usbnet|}}}}}
|header2 =
|label2 = Flashing
|data2 = {{Feature|{{{status_flashing|}}}}}
|header3 =
|label3 = Touchscreen
|data3 = {{Feature|{{{status_touch|}}}}}
|header4 =
|label4 = Display
|data4 = {{Feature|{{{status_screen|}}}}}
|header5 =
|label5 = WiFi
|data5 = {{Feature|{{{status_wifi|}}}}}
|header6 =
|label6 = X11
|data6 = {{Feature|{{{status_x11|}}}}}
|header7 =
|label7 = FDE
|data7 = {{Feature|{{{status_fde|}}}}}
|header8 =
|label8 = Mainline
|data8 = {{Feature|{{{status_mainline|}}}}}
|header9 =
|label9 = Battery
|data9 = {{Feature|{{{status_battery|}}}}}
|header10 =
|label10 = 3D Acceleration
|data10 = {{Feature|{{{status_3d|}}}}}
|header11 =
|label11 = Accelerometer
|data11 = {{Feature|{{{status_accel|}}}}}
|header12 =
|label12 = Audio
|data12 = {{Feature|{{{status_audio|}}}}}
|header13 =
|label13 = Bluetooth
|data13 = {{Feature|{{{status_bluetooth|}}}}}
|header14 =
|label14 = Camera
|data14 = {{Feature|{{{status_camera|}}}}}
|header15 =
|label15 = GPS
|data15 = {{Feature|{{{status_gps|}}}}}
|header16 =
|label16 = Mobile data
|data16 = {{Feature|{{{status_mobiledata|}}}}}
|header17 =
|label17 = SMS
|data17 = {{Feature|{{{status_sms|}}}}}
|header18 =
|label18 = Calls
|data18 = {{Feature|{{{status_calls|}}}}}
|header19 =
|label19 = USB OTG
|data19 = {{Feature|{{{status_otg|}}}}}
|header20 =
|label20 = NFC
|data20 = {{Feature|{{{status_nfc|}}}}}
}}
e21833c2135e1f9e2ac674cbd0a1c3db5318c671
1041
1040
2021-05-23T09:51:28Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox
| abovestyle = background: #dedede;
| headerstyle = background: #dedede;
| above = {{{name|<includeonly>{{PAGENAME}}</includeonly>}}}
| image = {{{image|}}}
| caption = {{{caption|}}}
| header2 =
| label2 = Manufacturer
| data2 = {{{manufacturer|}}}
| header3 =
| label3 = Codename
| data3 = {{{codename|}}}
| header4 =
| label4 = Dimensions
| data4 = {{{dimensions|}}}
| header5 =
| label5 = Release Date
| data5 = {{{release_date|}}}
| header6 =
| label6 = Website
| data6 = {{{website|}}}
| header7 =
| label7 = Category
| data7 = {{{category|}}}
| header8 = Specifications
| label8 =
| data8 =
| header9 =
| label9 = SoC
| data9 = {{{soc|}}}
| header10 =
| label10 = DRAM
| data10 = {{{dram|}}}
| header11 =
| label11 = NAND
| data11 = {{{nand|}}}
| header12 =
| label12 = Power
| data12 = {{{power|}}}
| header13 = Hardware Features
| label13 =
| data13 =
| header14 =
| label14 = LCD
| data14 = {{{lcd|}}}
| header15 =
| label15 = Input
| data15 = {{{input|}}}
| header16 =
| label16 = Video
| data16 = {{{video|}}}
| header17 =
| label17 = Audio
| data17 = {{{audio|}}}
| header18 =
| label18 = Network
| data18 = {{{network|}}}
| header19 =
| label19 = Storage
| data19 = {{{storage|}}}
| header20 =
| label20 = USB (<small>Host/OTG</small>)
| data20 = {{{usb|}}}
| header21 =
| label21 = Camera
| data21 = {{{camera|}}}
| header22 =
| label22 = Sensors
| data22 = {{{sensors|}}}
| header23 =
| label23 = Other
| data23 = {{{other|}}}
| header24 =
| label24 = External Headers
| data24 = {{{headers|}}}
}}
{{Infobox
| name=Features
| bodystyle=
| title = Software Features
| titlestyle =
|label1 = USB Networking
|data1 = {{Feature|{{{status_usbnet|}}}}}
|header2 =
|label2 = Flashing
|data2 = {{Feature|{{{status_flashing|}}}}}
|header3 =
|label3 = Touchscreen
|data3 = {{Feature|{{{status_touch|}}}}}
|header4 =
|label4 = Display
|data4 = {{Feature|{{{status_screen|}}}}}
|header5 =
|label5 = WiFi
|data5 = {{Feature|{{{status_wifi|}}}}}
|header6 =
|label6 = X11
|data6 = {{Feature|{{{status_x11|}}}}}
|header7 =
|label7 = FDE
|data7 = {{Feature|{{{status_fde|}}}}}
|header8 =
|label8 = Mainline
|data8 = {{Feature|{{{status_mainline|}}}}}
|header9 =
|label9 = Battery
|data9 = {{Feature|{{{status_battery|}}}}}
|header10 =
|label10 = 3D Acceleration
|data10 = {{Feature|{{{status_3d|}}}}}
|header11 =
|label11 = Accelerometer
|data11 = {{Feature|{{{status_accel|}}}}}
|header12 =
|label12 = Audio
|data12 = {{Feature|{{{status_audio|}}}}}
|header13 =
|label13 = Bluetooth
|data13 = {{Feature|{{{status_bluetooth|}}}}}
|header14 =
|label14 = Camera
|data14 = {{Feature|{{{status_camera|}}}}}
|header15 =
|label15 = GPS
|data15 = {{Feature|{{{status_gps|}}}}}
|header16 =
|label16 = Mobile data
|data16 = {{Feature|{{{status_mobiledata|}}}}}
|header17 =
|label17 = SMS
|data17 = {{Feature|{{{status_sms|}}}}}
|header18 =
|label18 = Calls
|data18 = {{Feature|{{{status_calls|}}}}}
|header19 =
|label19 = USB OTG
|data19 = {{Feature|{{{status_otg|}}}}}
|header20 =
|label20 = NFC
|data20 = {{Feature|{{{status_nfc|}}}}}
}}
19b07419d646aa0076909de99a4727d9179b5e86
1045
1041
2021-05-23T11:04:15Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox
| abovestyle = background: #dedede;
| headerstyle = background: #dedede;
| above = {{{name|<includeonly>{{PAGENAME}}</includeonly>}}}
| image = {{{image|}}}
| caption = {{{caption|}}}
| header2 =
| label2 = Manufacturer
| data2 = {{{manufacturer|}}}
| header3 =
| label3 = Codename
| data3 = {{{codename|}}}
| header4 =
| label4 = Dimensions
| data4 = {{{dimensions|}}}
| header5 =
| label5 = Release Date
| data5 = {{{release_date|}}}
| header6 =
| label6 = Website
| data6 = {{{website|}}}
| header7 =
| label7 = Category
| data7 = {{{category|}}}
| header8 = Specifications
| label8 =
| data8 =
| header9 =
| label9 = SoC
| data9 = {{{soc|}}}
| header10 =
| label10 = DRAM
| data10 = {{{dram|}}}
| header11 =
| label11 = NAND
| data11 = {{{nand|}}}
| header12 =
| label12 = Power
| data12 = {{{power|}}}
| header13 = Hardware Features
| label13 =
| data13 =
| header14 =
| label14 = LCD
| data14 = {{{lcd|}}}
| header15 =
| label15 = Input
| data15 = {{{input|}}}
| header16 =
| label16 = Video
| data16 = {{{video|}}}
| header17 =
| label17 = Audio
| data17 = {{{audio|}}}
| header18 =
| label18 = Network
| data18 = {{{network|}}}
| header19 =
| label19 = Storage
| data19 = {{{storage|}}}
| header20 =
| label20 = USB (<small>Host/OTG</small>)
| data20 = {{{usb|}}}
| header21 =
| label21 = Camera
| data21 = {{{camera|}}}
| header22 =
| label22 = Sensors
| data22 = {{{sensors|}}}
| header23 =
| label23 = Other
| data23 = {{{other|}}}
| header24 =
| label24 = External Headers
| data24 = {{{headers|}}}
| header25 = Software Features
| label25 =
| data25 =
| header26 =
| label26 = Kernel
| data26 = {{{kernel|}}}
}}
{{Infobox
| name=Features
| bodystyle=
| title = Software Features
| titlestyle =
|label1 = USB Networking
|data1 = {{Feature|{{{status_usbnet|}}}}}
|header2 =
|label2 = Flashing
|data2 = {{Feature|{{{status_flashing|}}}}}
|header3 =
|label3 = Touchscreen
|data3 = {{Feature|{{{status_touch|}}}}}
|header4 =
|label4 = Display
|data4 = {{Feature|{{{status_screen|}}}}}
|header5 =
|label5 = WiFi
|data5 = {{Feature|{{{status_wifi|}}}}}
|header6 =
|label6 = X11
|data6 = {{Feature|{{{status_x11|}}}}}
|header7 =
|label7 = FDE
|data7 = {{Feature|{{{status_fde|}}}}}
|header8 =
|label8 = Mainline
|data8 = {{Feature|{{{status_mainline|}}}}}
|header9 =
|label9 = Battery
|data9 = {{Feature|{{{status_battery|}}}}}
|header10 =
|label10 = 3D Acceleration
|data10 = {{Feature|{{{status_3d|}}}}}
|header11 =
|label11 = Accelerometer
|data11 = {{Feature|{{{status_accel|}}}}}
|header12 =
|label12 = Audio
|data12 = {{Feature|{{{status_audio|}}}}}
|header13 =
|label13 = Bluetooth
|data13 = {{Feature|{{{status_bluetooth|}}}}}
|header14 =
|label14 = Camera
|data14 = {{Feature|{{{status_camera|}}}}}
|header15 =
|label15 = GPS
|data15 = {{Feature|{{{status_gps|}}}}}
|header16 =
|label16 = Mobile data
|data16 = {{Feature|{{{status_mobiledata|}}}}}
|header17 =
|label17 = SMS
|data17 = {{Feature|{{{status_sms|}}}}}
|header18 =
|label18 = Calls
|data18 = {{Feature|{{{status_calls|}}}}}
|header19 =
|label19 = USB OTG
|data19 = {{Feature|{{{status_otg|}}}}}
|header20 =
|label20 = NFC
|data20 = {{Feature|{{{status_nfc|}}}}}
}}
4d54b4fcd3f4820394b00abef87534bd33dce743
Template:Feature
10
141
1030
2021-05-23T09:33:39Z
Wizzup
4
Created page with "{{#ifeq:{{{1|}}}|P| <div class="feature feature-partial">Partial</div> | {{#ifeq:{{{1|}}}|Y| <div class="feature feature-yes">Works</div> | {{#ifeq:{{{1|}}}|N| <div class="fea..."
wikitext
text/x-wiki
{{#ifeq:{{{1|}}}|P| <div class="feature feature-partial">Partial</div> | {{#ifeq:{{{1|}}}|Y| <div class="feature feature-yes">Works</div> | {{#ifeq:{{{1|}}}|N| <div class="feature feature-no">Broken</div> | {{#ifeq:{{{1|}}}|-| <div class="feature feature-unavailable">Unavailable</div> | <div></div> }} }} }} }}
414f94d635ddc207447e5c0eeef0daa1e0ae9c78
Motorola Droid Bionic
0
111
1043
992
2021-05-23T10:03:00Z
Uvos
39
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Bionic.jpg|250px]]
|manufacturer=Motorola
|codename=Targa
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4.3"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, Kionix KXTf9 accelerometer, St L3GD20H Gyro, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.10.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Touchscreen || Yes || Capacitive
|-
| Keyboard || N/A ||
|-
| Screen || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Vibration Motor || Yes ||
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| Phone calls || WIP || Untested
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Wifi || Yes ||
|-
| Ethernet || N/A ||
|-
| IrDA || N/A || Missing in hardware
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration)
|-
| Gyro || No || needs kernel work
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| AGPS || No ||
|-
| Front Camera || No ||
|-
| Back Camera(s) || No ||
|-
| Idle power consumption || ~70mW || Needs sim inserted
|}
== Installation ==
Hardware requirements:
* Droid Bionic with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux system
* Android Tools: fastboot adb
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
# Latest maemo-leste-1.0-armhf-bionic-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# droid4-kexecboot.img
Download or clone https://github.com/IMbackK/bionic-clown-boot
Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
Wait for sync to complete and insert MicroSD card into The Bionic. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normaly you can just apt update && apt dist-upgrade to update to the latest version. I for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab latest image from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 and Bionic both expose a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Bionic, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
== Unlocking the modem for usage in Europe ==
Tony suggested these values, Wizzup confirmed it to work on his Bionic in Europe/Amsterdam.
<pre>
apt install build-essential
git clone https://github.com/tmlind/tcmdrw
cd tcmdrw
make
./tcmdrw 1877=8703E80400000200
./tcmdrw 6850=05
</pre>
Tony also writes:
<pre>
22:34 < tmlind> hmm so i had to do this for 3g gain: tcmdrw 1143=aaff0000, got that value from xt910 firmware i think, otherwise 3g signal was weak
22:43 < tmlind> Wizzup: great, the 1143 setting is for 1900 frequency only to get decent signal on t-mo in the us
</pre>
== Stuff to try ==
==== Wifi ====
The WL1271 Wifi chip in the Bionic has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
[[Category:Device]]
3219970376ceaa310a89c84b30e51b2bb5c39e1f
1044
1043
2021-05-23T10:10:32Z
Uvos
39
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Bionic.jpg|250px]]
|manufacturer=Motorola
|codename=Targa
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4.3"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, Kionix KXTf9 accelerometer, St L3GD20H Gyro, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.10.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Touchscreen || Yes || Capacitive
|-
| Keyboard || N/A ||
|-
| Screen || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Vibration Motor || Yes ||
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| Phone calls || WIP || Untested
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Wifi || Yes ||
|-
| Ethernet || N/A ||
|-
| IrDA || N/A || Missing in hardware
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration)
|-
| Gyro || No || needs kernel work
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| AGPS || No ||
|-
| Front Camera || No ||
|-
| Back Camera(s) || No ||
|-
| Idle power consumption || ~70 mW || Needs sim inserted
|-
| Idle Battery life on new battery || 91.8 h || With HW4X
|}
== Installation ==
Hardware requirements:
* Droid Bionic with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux system
* Android Tools: fastboot adb
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
# Latest maemo-leste-1.0-armhf-bionic-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# droid4-kexecboot.img
Download or clone https://github.com/IMbackK/bionic-clown-boot
Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
Wait for sync to complete and insert MicroSD card into The Bionic. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normaly you can just apt update && apt dist-upgrade to update to the latest version. I for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab latest image from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 and Bionic both expose a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Bionic, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
== Unlocking the modem for usage in Europe ==
Tony suggested these values, Wizzup confirmed it to work on his Bionic in Europe/Amsterdam.
<pre>
apt install build-essential
git clone https://github.com/tmlind/tcmdrw
cd tcmdrw
make
./tcmdrw 1877=8703E80400000200
./tcmdrw 6850=05
</pre>
Tony also writes:
<pre>
22:34 < tmlind> hmm so i had to do this for 3g gain: tcmdrw 1143=aaff0000, got that value from xt910 firmware i think, otherwise 3g signal was weak
22:43 < tmlind> Wizzup: great, the 1143 setting is for 1900 frequency only to get decent signal on t-mo in the us
</pre>
== Stuff to try ==
==== Wifi ====
The WL1271 Wifi chip in the Bionic has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
[[Category:Device]]
9c895caeb7c217642005155a636159cd07912e09
Motorola Droid Bionic
0
111
1046
1044
2021-05-23T11:10:01Z
Uvos
39
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Bionic.jpg|250px]]
|manufacturer=Motorola
|codename=Targa
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4.3"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, Kionix KXTf9 accelerometer, St L3GD20H Gyro, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.10.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| USB slave || Yes || OTG and USB network
|-
| USB host (OTG) || No ||
|-
| Touchscreen || Yes || Capacitive
|-
| Keyboard || N/A ||
|-
| Screen || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Vibration Motor || Yes ||
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| Phone calls || WIP || Untested
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Wifi || Yes ||
|-
| Ethernet || N/A ||
|-
| IrDA || N/A || Missing in hardware
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || No ||
|-
| Nfc || No || no hardware
|-
| Accelerometer || Yes ||
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration)
|-
| Gyro || No || needs kernel work
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| AGPS || No ||
|-
| Front Camera || No ||
|-
| Back Camera(s) || No ||
|-
| Idle power consumption || ~70 mW || Needs sim inserted
|-
| Idle Battery life on new battery || 91.8 h || With HW4X
|}
== Installation ==
Hardware requirements:
* Droid Bionic with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux system
* Android Tools: fastboot adb
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
# Latest maemo-leste-1.0-armhf-bionic-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# droid4-kexecboot.img
Download or clone https://github.com/IMbackK/bionic-clown-boot
Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
Wait for sync to complete and insert MicroSD card into The Bionic. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normaly you can just apt update && apt dist-upgrade to update to the latest version. I for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab latest image from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 and Bionic both expose a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Bionic, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
== Unlocking the modem for usage in Europe ==
Tony suggested these values, Wizzup confirmed it to work on his Bionic in Europe/Amsterdam.
<pre>
apt install build-essential
git clone https://github.com/tmlind/tcmdrw
cd tcmdrw
make
./tcmdrw 1877=8703E80400000200
./tcmdrw 6850=05
</pre>
Tony also writes:
<pre>
22:34 < tmlind> hmm so i had to do this for 3g gain: tcmdrw 1143=aaff0000, got that value from xt910 firmware i think, otherwise 3g signal was weak
22:43 < tmlind> Wizzup: great, the 1143 setting is for 1900 frequency only to get decent signal on t-mo in the us
</pre>
== Stuff to try ==
==== Wifi ====
The WL1271 Wifi chip in the Bionic has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
[[Category:Device]]
1d5cd923664a96391fb3816160404e4bea66f052
1048
1046
2021-05-23T11:10:30Z
Uvos
39
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Bionic.jpg|250px]]
|manufacturer=Motorola
|codename=Targa
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4.3"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, Kionix KXTf9 accelerometer, St L3GD20H Gyro, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.10.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| USB slave || Yes ||
|-
| USB host (OTG) || No ||
|-
| Touchscreen || Yes || Capacitive
|-
| Keyboard || N/A ||
|-
| Screen || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Vibration Motor || Yes ||
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| Phone calls || WIP || Untested
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Wifi || Yes ||
|-
| Ethernet || N/A ||
|-
| IrDA || N/A || Missing in hardware
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || No ||
|-
| Nfc || No || no hardware
|-
| Accelerometer || Yes ||
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration)
|-
| Gyro || No || needs kernel work
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| AGPS || No ||
|-
| Front Camera || No ||
|-
| Back Camera(s) || No ||
|-
| Idle power consumption || ~70 mW || Needs sim inserted
|-
| Idle Battery life on new battery || 91.8 h || With HW4X
|}
== Installation ==
Hardware requirements:
* Droid Bionic with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux system
* Android Tools: fastboot adb
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
# Latest maemo-leste-1.0-armhf-bionic-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# droid4-kexecboot.img
Download or clone https://github.com/IMbackK/bionic-clown-boot
Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
Wait for sync to complete and insert MicroSD card into The Bionic. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normaly you can just apt update && apt dist-upgrade to update to the latest version. I for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab latest image from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 and Bionic both expose a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Bionic, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
== Unlocking the modem for usage in Europe ==
Tony suggested these values, Wizzup confirmed it to work on his Bionic in Europe/Amsterdam.
<pre>
apt install build-essential
git clone https://github.com/tmlind/tcmdrw
cd tcmdrw
make
./tcmdrw 1877=8703E80400000200
./tcmdrw 6850=05
</pre>
Tony also writes:
<pre>
22:34 < tmlind> hmm so i had to do this for 3g gain: tcmdrw 1143=aaff0000, got that value from xt910 firmware i think, otherwise 3g signal was weak
22:43 < tmlind> Wizzup: great, the 1143 setting is for 1900 frequency only to get decent signal on t-mo in the us
</pre>
== Stuff to try ==
==== Wifi ====
The WL1271 Wifi chip in the Bionic has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
[[Category:Device]]
98ebe54576ea308bed9f04c8339f7c736b10693f
1073
1048
2021-05-23T11:59:59Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Bionic.jpg|250px]]
|manufacturer=Motorola
|codename=Targa
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4.3"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, Kionix KXTf9 accelerometer, St L3GD20H Gyro, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
|sw_kernel=5.10.4
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=No
|sw_touchscreen=Yes
|sw_keyboard=
|sw_screen=Yes
|sw_hdmi=Yes
|sw_tv=
|sw_3daccel=Yes, [[https://github.com/maemo-leste/pvr-omap4/|SGX540, closed driver|]]
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=untested
|sw_sms=Yes, no UI
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=Yes
|sw_4g=No
|sw_bluetooth=Yes, [[#Bluetooth|see notes]]
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes (load ak8975 module), no integration
|sw_gyro=No, needs kernel work
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No, needs kernel/userspace work
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=70mW, needs sim inserted
|sw_standbytime=91.8h (with HW4X)
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.10.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| USB slave || Yes ||
|-
| USB host (OTG) || No ||
|-
| Touchscreen || Yes || Capacitive
|-
| Keyboard || N/A ||
|-
| Screen || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Vibration Motor || Yes ||
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| Phone calls || WIP || Untested
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Wifi || Yes ||
|-
| Ethernet || N/A ||
|-
| IrDA || N/A || Missing in hardware
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || No ||
|-
| Nfc || No || no hardware
|-
| Accelerometer || Yes ||
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration)
|-
| Gyro || No || needs kernel work
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| AGPS || No ||
|-
| Front Camera || No ||
|-
| Back Camera(s) || No ||
|-
| Idle power consumption || ~70 mW || Needs sim inserted
|-
| Idle Battery life on new battery || 91.8 h || With HW4X
|}
== Installation ==
Hardware requirements:
* Droid Bionic with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux system
* Android Tools: fastboot adb
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
# Latest maemo-leste-1.0-armhf-bionic-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# droid4-kexecboot.img
Download or clone https://github.com/IMbackK/bionic-clown-boot
Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
Wait for sync to complete and insert MicroSD card into The Bionic. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normaly you can just apt update && apt dist-upgrade to update to the latest version. I for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab latest image from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 and Bionic both expose a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Bionic, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
== Bluetooth ==
Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
== Unlocking the modem for usage in Europe ==
Tony suggested these values, Wizzup confirmed it to work on his Bionic in Europe/Amsterdam.
<pre>
apt install build-essential
git clone https://github.com/tmlind/tcmdrw
cd tcmdrw
make
./tcmdrw 1877=8703E80400000200
./tcmdrw 6850=05
</pre>
Tony also writes:
<pre>
22:34 < tmlind> hmm so i had to do this for 3g gain: tcmdrw 1143=aaff0000, got that value from xt910 firmware i think, otherwise 3g signal was weak
22:43 < tmlind> Wizzup: great, the 1143 setting is for 1900 frequency only to get decent signal on t-mo in the us
</pre>
== Stuff to try ==
==== Wifi ====
The WL1271 Wifi chip in the Bionic has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
[[Category:Device]]
f5043262bf3d237399d12a97f99ec77043a4027e
1074
1073
2021-05-23T12:00:46Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Bionic.jpg|250px]]
|manufacturer=Motorola
|codename=Targa
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4.3"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, Kionix KXTf9 accelerometer, St L3GD20H Gyro, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
|sw_kernel=5.10.4
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=No
|sw_touchscreen=Yes
|sw_keyboard=
|sw_screen=Yes
|sw_hdmi=Yes
|sw_tv=
|sw_3daccel=Yes, [[https://github.com/maemo-leste/pvr-omap4/|SGX540, closed driver|]]
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=untested
|sw_sms=Yes, no UI
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=Yes
|sw_4g=No
|sw_bluetooth=Yes, [[#Bluetooth|see notes]]
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes (load ak8975 module), no integration
|sw_gyro=No, needs kernel work
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No, needs kernel/userspace work
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=70mW, needs sim inserted
|sw_standbytime=91.8h (with HW4X)
}}
== Installation ==
Hardware requirements:
* Droid Bionic with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux system
* Android Tools: fastboot adb
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
# Latest maemo-leste-1.0-armhf-bionic-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# droid4-kexecboot.img
Download or clone https://github.com/IMbackK/bionic-clown-boot
Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
Wait for sync to complete and insert MicroSD card into The Bionic. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normaly you can just apt update && apt dist-upgrade to update to the latest version. I for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab latest image from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 and Bionic both expose a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Bionic, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
== Bluetooth ==
Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
== Unlocking the modem for usage in Europe ==
Tony suggested these values, Wizzup confirmed it to work on his Bionic in Europe/Amsterdam.
<pre>
apt install build-essential
git clone https://github.com/tmlind/tcmdrw
cd tcmdrw
make
./tcmdrw 1877=8703E80400000200
./tcmdrw 6850=05
</pre>
Tony also writes:
<pre>
22:34 < tmlind> hmm so i had to do this for 3g gain: tcmdrw 1143=aaff0000, got that value from xt910 firmware i think, otherwise 3g signal was weak
22:43 < tmlind> Wizzup: great, the 1143 setting is for 1900 frequency only to get decent signal on t-mo in the us
</pre>
== Stuff to try ==
==== Wifi ====
The WL1271 Wifi chip in the Bionic has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
== Old status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.10.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| USB slave || Yes ||
|-
| USB host (OTG) || No ||
|-
| Touchscreen || Yes || Capacitive
|-
| Keyboard || N/A ||
|-
| Screen || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Vibration Motor || Yes ||
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| Phone calls || WIP || Untested
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Wifi || Yes ||
|-
| Ethernet || N/A ||
|-
| IrDA || N/A || Missing in hardware
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || No ||
|-
| Nfc || No || no hardware
|-
| Accelerometer || Yes ||
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration)
|-
| Gyro || No || needs kernel work
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| AGPS || No ||
|-
| Front Camera || No ||
|-
| Back Camera(s) || No ||
|-
| Idle power consumption || ~70 mW || Needs sim inserted
|-
| Idle Battery life on new battery || 91.8 h || With HW4X
|}
[[Category:Device]]
10b933b33a88e5d837d7e0d468fd52aef5adffd2
1075
1074
2021-05-23T12:07:06Z
Uvos
39
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Bionic.jpg|250px]]
|manufacturer=Motorola
|codename=Targa
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4.3"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, Kionix KXTf9 accelerometer, St L3GD20H Gyro, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
|sw_kernel=5.10.4
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=No
|sw_touchscreen=Yes
|sw_keyboard=
|sw_screen=Yes
|sw_hdmi=Yes
|sw_tv=
|sw_3daccel=Yes, [[https://github.com/maemo-leste/pvr-omap4/|SGX540, closed driver|]]
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=untested
|sw_sms=Yes, no UI
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=Yes
|sw_4g=No
|sw_bluetooth=Yes, [[#Bluetooth|see notes]]
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=No, needs kernel work
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No, needs kernel/userspace work
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=70mW, needs sim inserted
|sw_standbytime=91.8h (with HW4X)
}}
== Installation ==
Hardware requirements:
* Droid Bionic with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux system
* Android Tools: fastboot adb
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
# Latest maemo-leste-1.0-armhf-bionic-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# droid4-kexecboot.img
Download or clone https://github.com/IMbackK/bionic-clown-boot
Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
Wait for sync to complete and insert MicroSD card into The Bionic. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normaly you can just apt update && apt dist-upgrade to update to the latest version. I for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab latest image from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 and Bionic both expose a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Bionic, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
== Bluetooth ==
Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
== Unlocking the modem for usage in Europe ==
Tony suggested these values, Wizzup confirmed it to work on his Bionic in Europe/Amsterdam.
<pre>
apt install build-essential
git clone https://github.com/tmlind/tcmdrw
cd tcmdrw
make
./tcmdrw 1877=8703E80400000200
./tcmdrw 6850=05
</pre>
Tony also writes:
<pre>
22:34 < tmlind> hmm so i had to do this for 3g gain: tcmdrw 1143=aaff0000, got that value from xt910 firmware i think, otherwise 3g signal was weak
22:43 < tmlind> Wizzup: great, the 1143 setting is for 1900 frequency only to get decent signal on t-mo in the us
</pre>
== Stuff to try ==
==== Wifi ====
The WL1271 Wifi chip in the Bionic has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
== Old status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.10.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| USB slave || Yes ||
|-
| USB host (OTG) || No ||
|-
| Touchscreen || Yes || Capacitive
|-
| Keyboard || N/A ||
|-
| Screen || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Vibration Motor || Yes ||
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| Phone calls || WIP || Untested
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Wifi || Yes ||
|-
| Ethernet || N/A ||
|-
| IrDA || N/A || Missing in hardware
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || No ||
|-
| Nfc || No || no hardware
|-
| Accelerometer || Yes ||
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration)
|-
| Gyro || No || needs kernel work
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| AGPS || No ||
|-
| Front Camera || No ||
|-
| Back Camera(s) || No ||
|-
| Idle power consumption || ~70 mW || Needs sim inserted
|-
| Idle Battery life on new battery || 91.8 h || With HW4X
|}
[[Category:Device]]
5187320f14e489aa3cf6f83524a7c8e6af52339c
Template:Infobox Device
10
45
1047
1045
2021-05-23T11:10:20Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox
| abovestyle = background: #dedede;
| headerstyle = background: #dedede;
| above = {{{name|<includeonly>{{PAGENAME}}</includeonly>}}}
| image = {{{image|}}}
| caption = {{{caption|}}}
| header2 =
| label2 = Manufacturer
| data2 = {{{manufacturer|}}}
| header3 =
| label3 = Codename
| data3 = {{{codename|}}}
| header4 =
| label4 = Dimensions
| data4 = {{{dimensions|}}}
| header5 =
| label5 = Release Date
| data5 = {{{release_date|}}}
| header6 =
| label6 = Website
| data6 = {{{website|}}}
| header7 =
| label7 = Category
| data7 = {{{category|}}}
| header8 = Specifications
| label8 =
| data8 =
| header9 =
| label9 = SoC
| data9 = {{{soc|}}}
| header10 =
| label10 = DRAM
| data10 = {{{dram|}}}
| header11 =
| label11 = NAND
| data11 = {{{nand|}}}
| header12 =
| label12 = Power
| data12 = {{{power|}}}
| header13 = Hardware Features
| label13 =
| data13 =
| header14 =
| label14 = LCD
| data14 = {{{lcd|}}}
| header15 =
| label15 = Input
| data15 = {{{input|}}}
| header16 =
| label16 = Video
| data16 = {{{video|}}}
| header17 =
| label17 = Audio
| data17 = {{{audio|}}}
| header18 =
| label18 = Network
| data18 = {{{network|}}}
| header19 =
| label19 = Storage
| data19 = {{{storage|}}}
| header20 =
| label20 = USB (<small>Host/OTG</small>)
| data20 = {{{usb|}}}
| header21 =
| label21 = Camera
| data21 = {{{camera|}}}
| header22 =
| label22 = Sensors
| data22 = {{{sensors|}}}
| header23 =
| label23 = Other
| data23 = {{{other|}}}
| header24 =
| label24 = External Headers
| data24 = {{{headers|}}}
| header25 =
| label25 = Battery Capacity
| data25 = {{{battery|}}}
| header25 = Software Features
| label25 =
| data25 =
| header26 =
| label26 = Kernel
| data26 = {{{sw_kernel|}}}
| header27 =
| label27 = Serial
| data27 = {{{sw_serial|}}}
| header27 =
| label27 = Charging
| data27 = {{{sw_charging|}}}
| header28 =
| label28 = USB
| data28 = {{{sw_usb|}}}
| header29 =
| label29 = Touchscreen
| data29 = {{{sw_touchscreen|}}}
}}
[[Category:Devices]]
688581e7df0d9eb64da3f415c16972697122663e
1051
1047
2021-05-23T11:17:02Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox
| abovestyle = background: #dedede;
| headerstyle = background: #dedede;
| above = {{{name|<includeonly>{{PAGENAME}}</includeonly>}}}
| image = {{{image|}}}
| caption = {{{caption|}}}
| header2 =
| label2 = Manufacturer
| data2 = {{{manufacturer|}}}
| header3 =
| label3 = Codename
| data3 = {{{codename|}}}
| header4 =
| label4 = Dimensions
| data4 = {{{dimensions|}}}
| header5 =
| label5 = Release Date
| data5 = {{{release_date|}}}
| header6 =
| label6 = Website
| data6 = {{{website|}}}
| header7 =
| label7 = Category
| data7 = {{{category|}}}
| header8 = Specifications
| label8 =
| data8 =
| header9 =
| label9 = SoC
| data9 = {{{soc|}}}
| header10 =
| label10 = DRAM
| data10 = {{{dram|}}}
| header11 =
| label11 = NAND
| data11 = {{{nand|}}}
| header12 =
| label12 = Power
| data12 = {{{power|}}}
| header13 = Hardware Features
| label13 =
| data13 =
| header14 =
| label14 = LCD
| data14 = {{{lcd|}}}
| header15 =
| label15 = Input
| data15 = {{{input|}}}
| header16 =
| label16 = Video
| data16 = {{{video|}}}
| header17 =
| label17 = Audio
| data17 = {{{audio|}}}
| header18 =
| label18 = Network
| data18 = {{{network|}}}
| header19 =
| label19 = Storage
| data19 = {{{storage|}}}
| header20 =
| label20 = USB (<small>Host/OTG</small>)
| data20 = {{{usb|}}}
| header21 =
| label21 = Camera
| data21 = {{{camera|}}}
| header22 =
| label22 = Sensors
| data22 = {{{sensors|}}}
| header23 =
| label23 = Other
| data23 = {{{other|}}}
| header24 =
| label24 = External Headers
| data24 = {{{headers|}}}
| header25 =
| label25 = Battery Capacity
| data25 = {{{battery|}}}
| header25 = Software Features
| label25 =
| data25 =
| header26 =
| label26 = Kernel
| data26 = {{{sw_kernel|}}}
| header27 =
| label27 = Serial
| data27 = {{{sw_serial|}}}
| header27 =
| label27 = Charging
| data27 = {{{sw_charging|}}}
| header28 =
| label28 = USB Slave
| data28 = {{{sw_usb_slave|}}}
| header29 =
| label29 = USB Host
| data29 = {{{sw_usb_host|}}}
| header30 =
| label30 = Touchscreen
| data30 = {{{sw_touchscreen|}}}
| header31 =
| label31 = Keyboard
| data31 = {{{sw_keyboard|}}}
| header32 =
| label32 = Screen
| data32 = {{{sw_screen|}}}
| header33 =
| label33 = HDMI-out
| data33 = {{{sw_hdmi|}}}
}}
[[Category:Devices]]
9e000c87030ae7699523788e66f9ecd426bb87c9
1052
1051
2021-05-23T11:18:57Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox
| abovestyle = background: #dedede;
| headerstyle = background: #dedede;
| above = {{{name|<includeonly>{{PAGENAME}}</includeonly>}}}
| image = {{{image|}}}
| caption = {{{caption|}}}
| header2 =
| label2 = Manufacturer
| data2 = {{{manufacturer|}}}
| header3 =
| label3 = Codename
| data3 = {{{codename|}}}
| header4 =
| label4 = Dimensions
| data4 = {{{dimensions|}}}
| header5 =
| label5 = Release Date
| data5 = {{{release_date|}}}
| header6 =
| label6 = Website
| data6 = {{{website|}}}
| header7 =
| label7 = Category
| data7 = {{{category|}}}
| header8 = Specifications
| label8 =
| data8 =
| header9 =
| label9 = SoC
| data9 = {{{soc|}}}
| header10 =
| label10 = DRAM
| data10 = {{{dram|}}}
| header11 =
| label11 = NAND
| data11 = {{{nand|}}}
| header12 =
| label12 = Power
| data12 = {{{power|}}}
| header13 = Hardware Features
| label13 =
| data13 =
| header14 =
| label14 = LCD
| data14 = {{{lcd|}}}
| header15 =
| label15 = Input
| data15 = {{{input|}}}
| header16 =
| label16 = Video
| data16 = {{{video|}}}
| header17 =
| label17 = Audio
| data17 = {{{audio|}}}
| header18 =
| label18 = Network
| data18 = {{{network|}}}
| header19 =
| label19 = Storage
| data19 = {{{storage|}}}
| header20 =
| label20 = USB (<small>Host/OTG</small>)
| data20 = {{{usb|}}}
| header21 =
| label21 = Camera
| data21 = {{{camera|}}}
| header22 =
| label22 = Sensors
| data22 = {{{sensors|}}}
| header23 =
| label23 = Other
| data23 = {{{other|}}}
| header24 =
| label24 = External Headers
| data24 = {{{headers|}}}
| header25 =
| label25 = Battery Capacity
| data25 = {{{battery|}}}
| header25 = Software Features
| label25 =
| data25 =
| header26 =
| label26 = Kernel
| data26 = {{{sw_kernel|}}}
| header27 =
| label27 = Serial
| data27 = {{{sw_serial|}}}
| header27 =
| label27 = Charging
| data27 = {{{sw_charging|}}}
| header28 =
| label28 = USB Slave
| data28 = {{{sw_usb_slave|}}}
| header29 =
| label29 = USB Host
| data29 = {{{sw_usb_host|}}}
| header30 =
| label30 = Touchscreen
| data30 = {{{sw_touchscreen|}}}
| header31 =
| label31 = Keyboard
| data31 = {{{sw_keyboard|}}}
| header32 =
| label32 = Screen
| data32 = {{{sw_screen|}}}
| header33 =
| label33 = HDMI-out
| data33 = {{{sw_hdmi|}}}
| header34 =
| label34 = TV-out
| data34 = {{{sw_tv|}}}
| header35 =
| label35 = 3D acceleration
| data35 = {{{sw_3daccel|}}}
}}
[[Category:Devices]]
201555de9b57eb834725d8d59eb729d8970ea2cd
1055
1052
2021-05-23T11:21:04Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox
| abovestyle = background: #dedede;
| headerstyle = background: #dedede;
| above = {{{name|<includeonly>{{PAGENAME}}</includeonly>}}}
| image = {{{image|}}}
| caption = {{{caption|}}}
| header2 =
| label2 = Manufacturer
| data2 = {{{manufacturer|}}}
| header3 =
| label3 = Codename
| data3 = {{{codename|}}}
| header4 =
| label4 = Dimensions
| data4 = {{{dimensions|}}}
| header5 =
| label5 = Release Date
| data5 = {{{release_date|}}}
| header6 =
| label6 = Website
| data6 = {{{website|}}}
| header7 =
| label7 = Category
| data7 = {{{category|}}}
| header8 = Specifications
| label8 =
| data8 =
| header9 =
| label9 = SoC
| data9 = {{{soc|}}}
| header10 =
| label10 = DRAM
| data10 = {{{dram|}}}
| header11 =
| label11 = NAND
| data11 = {{{nand|}}}
| header12 =
| label12 = Power
| data12 = {{{power|}}}
| header13 = Hardware Features
| label13 =
| data13 =
| header14 =
| label14 = LCD
| data14 = {{{lcd|}}}
| header15 =
| label15 = Input
| data15 = {{{input|}}}
| header16 =
| label16 = Video
| data16 = {{{video|}}}
| header17 =
| label17 = Audio
| data17 = {{{audio|}}}
| header18 =
| label18 = Network
| data18 = {{{network|}}}
| header19 =
| label19 = Storage
| data19 = {{{storage|}}}
| header20 =
| label20 = USB (<small>Host/OTG</small>)
| data20 = {{{usb|}}}
| header21 =
| label21 = Camera
| data21 = {{{camera|}}}
| header22 =
| label22 = Sensors
| data22 = {{{sensors|}}}
| header23 =
| label23 = Other
| data23 = {{{other|}}}
| header24 =
| label24 = External Headers
| data24 = {{{headers|}}}
| header25 =
| label25 = Battery Capacity
| data25 = {{{battery|}}}
| header25 = Software Features
| label25 =
| data25 =
| header26 =
| label26 = Kernel
| data26 = {{{sw_kernel|}}}
| header27 =
| label27 = Serial
| data27 = {{{sw_serial|}}}
| header27 =
| label27 = Charging
| data27 = {{{sw_charging|}}}
| header28 =
| label28 = USB Slave
| data28 = {{{sw_usb_slave|}}}
| header29 =
| label29 = USB Host
| data29 = {{{sw_usb_host|}}}
| header30 =
| label30 = Touchscreen
| data30 = {{{sw_touchscreen|}}}
| header31 =
| label31 = Keyboard
| data31 = {{{sw_keyboard|}}}
| header32 =
| label32 = Screen
| data32 = {{{sw_screen|}}}
| header33 =
| label33 = HDMI-out
| data33 = {{{sw_hdmi|}}}
| header34 =
| label34 = TV-out
| data34 = {{{sw_tv|}}}
| header35 =
| label35 = 3D acceleration
| data35 = {{{sw_3daccel|}}}
| header36 =
| label36 = Vibration motor
| data36 = {{{sw_vibration|}}}
| header37 =
| label37 = Audio
| data37 = {{{sw_audio|}}}
| header38 =
| label38 = Phone calls
| data38 = {{{sw_calls|}}}
| header39 =
| label39 = SMS
| data39 = {{{sw_sms|}}}
| header40 =
| label40 = Wifi
| data40 = {{{sw_wifi|}}}
}}
[[Category:Devices]]
699388e49b19e09f213881e9ca3e45d10c4b1229
1057
1055
2021-05-23T11:26:28Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox
| abovestyle = background: #dedede;
| headerstyle = background: #dedede;
| above = {{{name|<includeonly>{{PAGENAME}}</includeonly>}}}
| image = {{{image|}}}
| caption = {{{caption|}}}
| header2 =
| label2 = Manufacturer
| data2 = {{{manufacturer|}}}
| header3 =
| label3 = Codename
| data3 = {{{codename|}}}
| header4 =
| label4 = Dimensions
| data4 = {{{dimensions|}}}
| header5 =
| label5 = Release Date
| data5 = {{{release_date|}}}
| header6 =
| label6 = Website
| data6 = {{{website|}}}
| header7 =
| label7 = Category
| data7 = {{{category|}}}
| header8 = Specifications
| label8 =
| data8 =
| header9 =
| label9 = SoC
| data9 = {{{soc|}}}
| header10 =
| label10 = DRAM
| data10 = {{{dram|}}}
| header11 =
| label11 = NAND
| data11 = {{{nand|}}}
| header12 =
| label12 = Power
| data12 = {{{power|}}}
| header13 = Hardware Features
| label13 =
| data13 =
| header14 =
| label14 = LCD
| data14 = {{{lcd|}}}
| header15 =
| label15 = Input
| data15 = {{{input|}}}
| header16 =
| label16 = Video
| data16 = {{{video|}}}
| header17 =
| label17 = Audio
| data17 = {{{audio|}}}
| header18 =
| label18 = Network
| data18 = {{{network|}}}
| header19 =
| label19 = Storage
| data19 = {{{storage|}}}
| header20 =
| label20 = USB (<small>Host/OTG</small>)
| data20 = {{{usb|}}}
| header21 =
| label21 = Camera
| data21 = {{{camera|}}}
| header22 =
| label22 = Sensors
| data22 = {{{sensors|}}}
| header23 =
| label23 = Other
| data23 = {{{other|}}}
| header24 =
| label24 = External Headers
| data24 = {{{headers|}}}
| header25 =
| label25 = Battery Capacity
| data25 = {{{battery|}}}
| header25 = Software Features
| label25 =
| data25 =
| header26 =
| label26 = Kernel
| data26 = {{{sw_kernel|}}}
| header27 =
| label27 = Serial
| data27 = {{{sw_serial|}}}
| header27 =
| label27 = Charging
| data27 = {{{sw_charging|}}}
| header28 =
| label28 = USB Slave
| data28 = {{{sw_usb_slave|}}}
| header29 =
| label29 = USB Host
| data29 = {{{sw_usb_host|}}}
| header30 =
| label30 = Touchscreen
| data30 = {{{sw_touchscreen|}}}
| header31 =
| label31 = Keyboard
| data31 = {{{sw_keyboard|}}}
| header32 =
| label32 = Screen
| data32 = {{{sw_screen|}}}
| header33 =
| label33 = HDMI-out
| data33 = {{{sw_hdmi|}}}
| header34 =
| label34 = TV-out
| data34 = {{{sw_tv|}}}
| header35 =
| label35 = 3D acceleration
| data35 = {{{sw_3daccel|}}}
| header36 =
| label36 = Vibration motor
| data36 = {{{sw_vibration|}}}
| header37 =
| label37 = Audio
| data37 = {{{sw_audio|}}}
| header38 =
| label38 = Phone calls
| data38 = {{{sw_calls|}}}
| header39 =
| label39 = SMS
| data39 = {{{sw_sms|}}}
| header40 =
| label40 = Wifi
| data40 = {{{sw_wifi|}}}
| header41 =
| label41 = Ethernet
| data41 = {{{sw_ethernet|}}}
| header42 =
| label42 = IrDA
| data42 = {{{sw_irda|}}}
| header43 =
| label43 = 2G/3G data
| data43 = {{{sw_2g3gdata|}}}
| header44 =
| label44 = 4G data
| data44 = {{{sw_4gdata|}}}
| header45 =
| label45 = Bluetooth
| data45 = {{{sw_bluetooth|}}}
| header46 =
| label46 = FM transmitter
| data46 = {{{sw_fmtx|}}}
| header47 =
| label47 = FM receiver
| data47 = {{{sw_fmrx|}}}
| header48 =
| label48 = NFC
| data48 = {{{sw_nfc|}}}
| header49 =
| label49 = Accelerometer
| data49 = {{{sw_accelerometer|}}}
}}
[[Category:Devices]]
cc4d168ccdd90a9e56f6cf28a5083f82a2a53404
1059
1057
2021-05-23T11:32:09Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox
| abovestyle = background: #dedede;
| headerstyle = background: #dedede;
| above = {{{name|<includeonly>{{PAGENAME}}</includeonly>}}}
| image = {{{image|}}}
| caption = {{{caption|}}}
| header2 =
| label2 = Manufacturer
| data2 = {{{manufacturer|}}}
| header3 =
| label3 = Codename
| data3 = {{{codename|}}}
| header4 =
| label4 = Dimensions
| data4 = {{{dimensions|}}}
| header5 =
| label5 = Release Date
| data5 = {{{release_date|}}}
| header6 =
| label6 = Website
| data6 = {{{website|}}}
| header7 =
| label7 = Category
| data7 = {{{category|}}}
| header8 = Specifications
| label8 =
| data8 =
| header9 =
| label9 = SoC
| data9 = {{{soc|}}}
| header10 =
| label10 = DRAM
| data10 = {{{dram|}}}
| header11 =
| label11 = NAND
| data11 = {{{nand|}}}
| header12 =
| label12 = Power
| data12 = {{{power|}}}
| header13 = Hardware Features
| label13 =
| data13 =
| header14 =
| label14 = LCD
| data14 = {{{lcd|}}}
| header15 =
| label15 = Input
| data15 = {{{input|}}}
| header16 =
| label16 = Video
| data16 = {{{video|}}}
| header17 =
| label17 = Audio
| data17 = {{{audio|}}}
| header18 =
| label18 = Network
| data18 = {{{network|}}}
| header19 =
| label19 = Storage
| data19 = {{{storage|}}}
| header20 =
| label20 = USB (<small>Host/OTG</small>)
| data20 = {{{usb|}}}
| header21 =
| label21 = Camera
| data21 = {{{camera|}}}
| header22 =
| label22 = Sensors
| data22 = {{{sensors|}}}
| header23 =
| label23 = Other
| data23 = {{{other|}}}
| header24 =
| label24 = External Headers
| data24 = {{{headers|}}}
| header25 =
| label25 = Battery Capacity
| data25 = {{{battery|}}}
| header25 = Software Features
| label25 =
| data25 =
| header26 =
| label26 = Kernel
| data26 = {{{sw_kernel|}}}
| header27 =
| label27 = Serial
| data27 = {{{sw_serial|}}}
| header27 =
| label27 = Charging
| data27 = {{{sw_charging|}}}
| header28 =
| label28 = USB Slave
| data28 = {{{sw_usb_slave|}}}
| header29 =
| label29 = USB Host
| data29 = {{{sw_usb_host|}}}
| header30 =
| label30 = Touchscreen
| data30 = {{{sw_touchscreen|}}}
| header31 =
| label31 = Keyboard
| data31 = {{{sw_keyboard|}}}
| header32 =
| label32 = Screen
| data32 = {{{sw_screen|}}}
| header33 =
| label33 = HDMI-out
| data33 = {{{sw_hdmi|}}}
| header34 =
| label34 = TV-out
| data34 = {{{sw_tv|}}}
| header35 =
| label35 = 3D acceleration
| data35 = {{{sw_3daccel|}}}
| header36 =
| label36 = Vibration motor
| data36 = {{{sw_vibration|}}}
| header37 =
| label37 = Audio
| data37 = {{{sw_audio|}}}
| header38 =
| label38 = Phone calls
| data38 = {{{sw_calls|}}}
| header39 =
| label39 = SMS
| data39 = {{{sw_sms|}}}
| header40 =
| label40 = Wifi
| data40 = {{{sw_wifi|}}}
| header41 =
| label41 = Ethernet
| data41 = {{{sw_ethernet|}}}
| header42 =
| label42 = IrDA
| data42 = {{{sw_irda|}}}
| header43 =
| label43 = 2G/3G data
| data43 = {{{sw_2g3gdata|}}}
| header44 =
| label44 = 4G data
| data44 = {{{sw_4gdata|}}}
| header45 =
| label45 = Bluetooth
| data45 = {{{sw_bluetooth|}}}
| header46 =
| label46 = FM transmitter
| data46 = {{{sw_fmtx|}}}
| header47 =
| label47 = FM receiver
| data47 = {{{sw_fmrx|}}}
| header48 =
| label48 = NFC
| data48 = {{{sw_nfc|}}}
| header49 =
| label49 = Accelerometer
| data49 = {{{sw_accelerometer|}}}
| header50 =
| label50 = Compass
| data50 = {{{sw_compass|}}}
| header51 =
| label51 = Gryo
| data51 = {{{sw_gyro|}}}
| header52 =
| label52 = Proximity Sensor
| data52 = {{{sw_proximity|}}}
| header53 =
| label53 = Ambient Light Sensor
| data53 = {{{sw_als|}}}
| header54 =
| label54 = GPS
| data54 = {{{sw_gps|}}}
| header55 =
| label55 = A-GPS
| data55 = {{{sw_agps|}}}
| header56 =
| label56 = Front Camera
| data56 = {{{sw_frontcam|}}}
| header57 =
| label57 = Back Camera(s)
| data57 = {{{sw_backcam|}}}
| header58 =
| label58 = Idle Power Consumption
| data58 = {{{sw_idlepower|}}}
| header59 =
| label59 = Stand by time
| data59 = {{{sw_standbytime|}}}
}}
[[Category:Devices]]
3ca72492a467c274f7eb56e0eb68c62094252d33
1063
1059
2021-05-23T11:37:49Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox
| abovestyle = background: #dedede;
| headerstyle = background: #dedede;
| above = {{{name|<includeonly>{{PAGENAME}}</includeonly>}}}
| image = {{{image|}}}
| caption = {{{caption|}}}
| header2 =
| label2 = Manufacturer
| data2 = {{{manufacturer|}}}
| header3 =
| label3 = Codename
| data3 = {{{codename|}}}
| header4 =
| label4 = Dimensions
| data4 = {{{dimensions|}}}
| header5 =
| label5 = Release Date
| data5 = {{{release_date|}}}
| header6 =
| label6 = Website
| data6 = {{{website|}}}
| header7 =
| label7 = Category
| data7 = {{{category|}}}
| header8 = Specifications
| label8 =
| data8 =
| header9 =
| label9 = SoC
| data9 = {{{soc|}}}
| header10 =
| label10 = DRAM
| data10 = {{{dram|}}}
| header11 =
| label11 = NAND
| data11 = {{{nand|}}}
| header12 =
| label12 = Power
| data12 = {{{power|}}}
| header13 = Hardware Features
| label13 =
| data13 =
| header14 =
| label14 = LCD
| data14 = {{{lcd|}}}
| header15 =
| label15 = Input
| data15 = {{{input|}}}
| header16 =
| label16 = Video
| data16 = {{{video|}}}
| header17 =
| label17 = Audio
| data17 = {{{audio|}}}
| header18 =
| label18 = Network
| data18 = {{{network|}}}
| header19 =
| label19 = Storage
| data19 = {{{storage|}}}
| header20 =
| label20 = USB (<small>Host/OTG</small>)
| data20 = {{{usb|}}}
| header21 =
| label21 = Camera
| data21 = {{{camera|}}}
| header22 =
| label22 = Sensors
| data22 = {{{sensors|}}}
| header23 =
| label23 = External Headers
| data23 = {{{headers|}}}
| header24 =
| label24 = Battery Capacity
| data24 = {{{battery|}}}
| header25 = Software Features
| label25 =
| data25 =
| header26 =
| label26 = Kernel
| data26 = {{{sw_kernel|}}}
| header27 =
| label27 = Serial
| data27 = {{{sw_serial|}}}
| header27 =
| label27 = Charging
| data27 = {{{sw_charging|}}}
| header28 =
| label28 = USB Slave
| data28 = {{{sw_usb_slave|}}}
| header29 =
| label29 = USB Host
| data29 = {{{sw_usb_host|}}}
| header30 =
| label30 = Touchscreen
| data30 = {{{sw_touchscreen|}}}
| header31 =
| label31 = Keyboard
| data31 = {{{sw_keyboard|}}}
| header32 =
| label32 = Screen
| data32 = {{{sw_screen|}}}
| header33 =
| label33 = HDMI-out
| data33 = {{{sw_hdmi|}}}
| header34 =
| label34 = TV-out
| data34 = {{{sw_tv|}}}
| header35 =
| label35 = 3D acceleration
| data35 = {{{sw_3daccel|}}}
| header36 =
| label36 = Vibration motor
| data36 = {{{sw_vibration|}}}
| header37 =
| label37 = Audio
| data37 = {{{sw_audio|}}}
| header38 =
| label38 = Phone calls
| data38 = {{{sw_calls|}}}
| header39 =
| label39 = SMS
| data39 = {{{sw_sms|}}}
| header40 =
| label40 = Wifi
| data40 = {{{sw_wifi|}}}
| header41 =
| label41 = Ethernet
| data41 = {{{sw_ethernet|}}}
| header42 =
| label42 = IrDA
| data42 = {{{sw_irda|}}}
| header43 =
| label43 = 2G/3G data
| data43 = {{{sw_2g3gdata|}}}
| header44 =
| label44 = 4G data
| data44 = {{{sw_4gdata|}}}
| header45 =
| label45 = Bluetooth
| data45 = {{{sw_bluetooth|}}}
| header46 =
| label46 = FM transmitter
| data46 = {{{sw_fmtx|}}}
| header47 =
| label47 = FM receiver
| data47 = {{{sw_fmrx|}}}
| header48 =
| label48 = NFC
| data48 = {{{sw_nfc|}}}
| header49 =
| label49 = Accelerometer
| data49 = {{{sw_accelerometer|}}}
| header50 =
| label50 = Compass
| data50 = {{{sw_compass|}}}
| header51 =
| label51 = Gryo
| data51 = {{{sw_gyro|}}}
| header52 =
| label52 = Proximity Sensor
| data52 = {{{sw_proximity|}}}
| header53 =
| label53 = Ambient Light Sensor
| data53 = {{{sw_als|}}}
| header54 =
| label54 = GPS
| data54 = {{{sw_gps|}}}
| header55 =
| label55 = A-GPS
| data55 = {{{sw_agps|}}}
| header56 =
| label56 = Front Camera
| data56 = {{{sw_frontcam|}}}
| header57 =
| label57 = Back Camera(s)
| data57 = {{{sw_backcam|}}}
| header58 =
| label58 = Idle Power Consumption
| data58 = {{{sw_idlepower|}}}
| header59 =
| label59 = Stand by time
| data59 = {{{sw_standbytime|}}}
}}
[[Category:Devices]]
a863b217e8968f225001bfbe00c4ea6de0fce65c
1064
1063
2021-05-23T11:39:03Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox
| abovestyle = background: #dedede;
| headerstyle = background: #dedede;
| above = {{{name|<includeonly>{{PAGENAME}}</includeonly>}}}
| image = {{{image|}}}
| caption = {{{caption|}}}
| header2 =
| label2 = Manufacturer
| data2 = {{{manufacturer|}}}
| header3 =
| label3 = Codename
| data3 = {{{codename|}}}
| header4 =
| label4 = Dimensions
| data4 = {{{dimensions|}}}
| header5 =
| label5 = Release Date
| data5 = {{{release_date|}}}
| header6 =
| label6 = Website
| data6 = {{{website|}}}
| header7 =
| label7 = Category
| data7 = {{{category|}}}
| header8 = Specifications
| label8 =
| data8 =
| header9 =
| label9 = SoC
| data9 = {{{soc|}}}
| header10 =
| label10 = DRAM
| data10 = {{{dram|}}}
| header11 =
| label11 = NAND
| data11 = {{{nand|}}}
| header12 =
| label12 = Power
| data12 = {{{power|}}}
| header13 = Hardware Features
| label13 =
| data13 =
| header14 =
| label14 = LCD
| data14 = {{{lcd|}}}
| header15 =
| label15 = Input
| data15 = {{{input|}}}
| header16 =
| label16 = Video
| data16 = {{{video|}}}
| header17 =
| label17 = Audio
| data17 = {{{audio|}}}
| header18 =
| label18 = Network
| data18 = {{{network|}}}
| header19 =
| label19 = Storage
| data19 = {{{storage|}}}
| header20 =
| label20 = USB (<small>Host/OTG</small>)
| data20 = {{{usb|}}}
| header21 =
| label21 = Camera
| data21 = {{{camera|}}}
| header22 =
| label22 = Sensors
| data22 = {{{sensors|}}}
| header23 =
| label23 = External Headers
| data23 = {{{headers|}}}
| header24 =
| label24 = Battery Capacity
| data24 = {{{battery|}}}
| header25 = Software Features
| label25 =
| data25 =
| header26 =
| label26 = Kernel
| data26 = {{{sw_kernel|}}}
| header27 =
| label27 = Serial
| data27 = {{{sw_serial|}}}
| header28 =
| label28 = Charging
| data28 = {{{sw_charging|}}}
| header29 =
| label29 = USB Slave
| data29 = {{{sw_usb_slave|}}}
| header30 =
| label30 = USB Host
| data30 = {{{sw_usb_host|}}}
| header31 =
| label31 = Touchscreen
| data31 = {{{sw_touchscreen|}}}
| header32 =
| label32 = Keyboard
| data32 = {{{sw_keyboard|}}}
| header33 =
| label33 = Screen
| data33 = {{{sw_screen|}}}
| header34 =
| label34 = HDMI-out
| data34 = {{{sw_hdmi|}}}
| header35 =
| label35 = TV-out
| data35 = {{{sw_tv|}}}
| header36 =
| label36 = 3D acceleration
| data36 = {{{sw_3daccel|}}}
| header37 =
| label37 = Vibration motor
| data37 = {{{sw_vibration|}}}
| header38 =
| label38 = Audio
| data38 = {{{sw_audio|}}}
| header39 =
| label39 = Phone calls
| data39 = {{{sw_calls|}}}
| header40 =
| label40 = SMS
| data40 = {{{sw_sms|}}}
| header41 =
| label41 = Wifi
| data41 = {{{sw_wifi|}}}
| header42 =
| label42 = Ethernet
| data42 = {{{sw_ethernet|}}}
| header43 =
| label43 = IrDA
| data43 = {{{sw_irda|}}}
| header44 =
| label44 = 2G/3G data
| data44 = {{{sw_2g3gdata|}}}
| header45 =
| label45 = 4G data
| data45 = {{{sw_4gdata|}}}
| header46 =
| label46 = Bluetooth
| data46 = {{{sw_bluetooth|}}}
| header47 =
| label47 = FM transmitter
| data47 = {{{sw_fmtx|}}}
| header48 =
| label48 = FM receiver
| data48 = {{{sw_fmrx|}}}
| header49 =
| label49 = NFC
| data49 = {{{sw_nfc|}}}
| header50 =
| label50 = Accelerometer
| data50 = {{{sw_accelerometer|}}}
| header51 =
| label51 = Compass
| data51 = {{{sw_compass|}}}
| header52 =
| label52 = Gryo
| data52 = {{{sw_gyro|}}}
| header53 =
| label53 = Proximity Sensor
| data53 = {{{sw_proximity|}}}
| header54 =
| label54 = Ambient Light Sensor
| data54 = {{{sw_als|}}}
| header55 =
| label55 = GPS
| data55 = {{{sw_gps|}}}
| header56 =
| label56 = A-GPS
| data56 = {{{sw_agps|}}}
| header57 =
| label57 = Front Camera
| data57 = {{{sw_frontcam|}}}
| header58 =
| label58 = Back Camera(s)
| data58 = {{{sw_backcam|}}}
| header59 =
| label59 = Idle Power Consumption
| data59 = {{{sw_idlepower|}}}
| header60 =
| label60 = Stand by time
| data60 = {{{sw_standbytime|}}}
}}
[[Category:Devices]]
2c9fa64f2a8e2746ca4f1f8c84394a9f2741a4d0
Nokia N900
0
48
1049
1042
2021-05-23T11:11:57Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=
|sw_kernel=5.1
|sw_serial=Yes,special hardware
|sw_charging=Yes
|sw_usb=gadgets only
|sw_touchscreen=yes
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || Yes || TX only (hardware limitation).
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode
|}
== Installation ==
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''.
To flash u-boot permanently, you can issue the following command
'''(BE CAREFUL THOUGH. THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL. ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION OR YOU KNOW HOW TO RECOVER FROM THIS CONDITION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Notes ==
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them
Also see: https://elinux.org/N900
== Power Management ==
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch
<pre>
$ cat idlest.py
"""
00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000
f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046
0000000d 48004a28 (f7aa95e6) cm_idlest3_core
"""
# 31 to 0
cm_idlest1_core_bits = [
'RESERVED',
'ST_MMC3',
'ST_ICR',
'RESERVED',
'RESERVED',
'RESERVED',
'ST_MMC2',
'ST_MMC1',
'RESERVED',
'ST_HDQ',
'ST_MCSPI4',
'ST_MCSPI3',
'ST_MCSPI2',
'ST_MCSPI1',
'ST_I2C3',
'ST_I2C2',
'ST_I2C1',
'ST_UART2',
'ST_UART1',
'ST_GPT11',
'ST_GPT10',
'ST_MCBSP5',
'ST_MCBSP1',
'RESERVED',
'ST_MAILBOXES',
'ST_OMAPCTRL',
'ST_HSOTGUSB_IDLE',
'ST_HSOTGUSB_STDBY',
'RESERVED',
'ST_SDMA',
'ST_SDRC',
'RESERVED',
]
cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits))
#inp = '0020c046'
inp = '00208042' # after rmmod hci_nokia and hci_uart
v = int(inp, 16)
#print(v)
b= "{0:b}".format(v)
print((32-len(b))*'0' + b)
for i in range(0, 32):
is_set = (v & (1 << i)) >> i
if is_set:
print(cm_idlest1_core_bits[i])
</pre>
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
[[Category:Device]]
1a4a5206d3fb0ff73baeabcbac0a37f7cc144946
1050
1049
2021-05-23T11:12:47Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=
|sw_kernel=5.1
|sw_serial=Yes,special hardware
|sw_charging=Yes
|sw_usb=gadgets only
|sw_touchscreen=Yes
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || Yes || TX only (hardware limitation).
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode
|}
== Installation ==
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''.
To flash u-boot permanently, you can issue the following command
'''(BE CAREFUL THOUGH. THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL. ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION OR YOU KNOW HOW TO RECOVER FROM THIS CONDITION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Notes ==
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them
Also see: https://elinux.org/N900
== Power Management ==
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch
<pre>
$ cat idlest.py
"""
00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000
f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046
0000000d 48004a28 (f7aa95e6) cm_idlest3_core
"""
# 31 to 0
cm_idlest1_core_bits = [
'RESERVED',
'ST_MMC3',
'ST_ICR',
'RESERVED',
'RESERVED',
'RESERVED',
'ST_MMC2',
'ST_MMC1',
'RESERVED',
'ST_HDQ',
'ST_MCSPI4',
'ST_MCSPI3',
'ST_MCSPI2',
'ST_MCSPI1',
'ST_I2C3',
'ST_I2C2',
'ST_I2C1',
'ST_UART2',
'ST_UART1',
'ST_GPT11',
'ST_GPT10',
'ST_MCBSP5',
'ST_MCBSP1',
'RESERVED',
'ST_MAILBOXES',
'ST_OMAPCTRL',
'ST_HSOTGUSB_IDLE',
'ST_HSOTGUSB_STDBY',
'RESERVED',
'ST_SDMA',
'ST_SDRC',
'RESERVED',
]
cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits))
#inp = '0020c046'
inp = '00208042' # after rmmod hci_nokia and hci_uart
v = int(inp, 16)
#print(v)
b= "{0:b}".format(v)
print((32-len(b))*'0' + b)
for i in range(0, 32):
is_set = (v & (1 << i)) >> i
if is_set:
print(cm_idlest1_core_bits[i])
</pre>
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
[[Category:Device]]
efb4ccd27d0cc0b024502e3972e625c4e73c4980
1053
1050
2021-05-23T11:19:04Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=
|sw_kernel=5.1
|sw_serial=Yes,special hardware
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_tv=Yes
|sw_3daccel=Yes
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || Yes || TX only (hardware limitation).
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode
|}
== Installation ==
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''.
To flash u-boot permanently, you can issue the following command
'''(BE CAREFUL THOUGH. THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL. ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION OR YOU KNOW HOW TO RECOVER FROM THIS CONDITION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Notes ==
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them
Also see: https://elinux.org/N900
== Power Management ==
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch
<pre>
$ cat idlest.py
"""
00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000
f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046
0000000d 48004a28 (f7aa95e6) cm_idlest3_core
"""
# 31 to 0
cm_idlest1_core_bits = [
'RESERVED',
'ST_MMC3',
'ST_ICR',
'RESERVED',
'RESERVED',
'RESERVED',
'ST_MMC2',
'ST_MMC1',
'RESERVED',
'ST_HDQ',
'ST_MCSPI4',
'ST_MCSPI3',
'ST_MCSPI2',
'ST_MCSPI1',
'ST_I2C3',
'ST_I2C2',
'ST_I2C1',
'ST_UART2',
'ST_UART1',
'ST_GPT11',
'ST_GPT10',
'ST_MCBSP5',
'ST_MCBSP1',
'RESERVED',
'ST_MAILBOXES',
'ST_OMAPCTRL',
'ST_HSOTGUSB_IDLE',
'ST_HSOTGUSB_STDBY',
'RESERVED',
'ST_SDMA',
'ST_SDRC',
'RESERVED',
]
cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits))
#inp = '0020c046'
inp = '00208042' # after rmmod hci_nokia and hci_uart
v = int(inp, 16)
#print(v)
b= "{0:b}".format(v)
print((32-len(b))*'0' + b)
for i in range(0, 32):
is_set = (v & (1 << i)) >> i
if is_set:
print(cm_idlest1_core_bits[i])
</pre>
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
[[Category:Device]]
bab82ce2be95761a812693df31924caf3ac4d35f
1054
1053
2021-05-23T11:19:18Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=
|sw_kernel=5.1
|sw_serial=Yes,special hardware
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || Yes || TX only (hardware limitation).
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode
|}
== Installation ==
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''.
To flash u-boot permanently, you can issue the following command
'''(BE CAREFUL THOUGH. THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL. ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION OR YOU KNOW HOW TO RECOVER FROM THIS CONDITION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Notes ==
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them
Also see: https://elinux.org/N900
== Power Management ==
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch
<pre>
$ cat idlest.py
"""
00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000
f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046
0000000d 48004a28 (f7aa95e6) cm_idlest3_core
"""
# 31 to 0
cm_idlest1_core_bits = [
'RESERVED',
'ST_MMC3',
'ST_ICR',
'RESERVED',
'RESERVED',
'RESERVED',
'ST_MMC2',
'ST_MMC1',
'RESERVED',
'ST_HDQ',
'ST_MCSPI4',
'ST_MCSPI3',
'ST_MCSPI2',
'ST_MCSPI1',
'ST_I2C3',
'ST_I2C2',
'ST_I2C1',
'ST_UART2',
'ST_UART1',
'ST_GPT11',
'ST_GPT10',
'ST_MCBSP5',
'ST_MCBSP1',
'RESERVED',
'ST_MAILBOXES',
'ST_OMAPCTRL',
'ST_HSOTGUSB_IDLE',
'ST_HSOTGUSB_STDBY',
'RESERVED',
'ST_SDMA',
'ST_SDRC',
'RESERVED',
]
cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits))
#inp = '0020c046'
inp = '00208042' # after rmmod hci_nokia and hci_uart
v = int(inp, 16)
#print(v)
b= "{0:b}".format(v)
print((32-len(b))*'0' + b)
for i in range(0, 32):
is_set = (v & (1 << i)) >> i
if is_set:
print(cm_idlest1_core_bits[i])
</pre>
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
[[Category:Device]]
aa57ee8604e6a845fe66899e19088ba42df2b877
1056
1054
2021-05-23T11:22:35Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=
|sw_kernel=5.1
|sw_serial=Yes,special hardware
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes, firmware required
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || Yes || TX only (hardware limitation).
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode
|}
== Installation ==
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''.
To flash u-boot permanently, you can issue the following command
'''(BE CAREFUL THOUGH. THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL. ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION OR YOU KNOW HOW TO RECOVER FROM THIS CONDITION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Notes ==
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them
Also see: https://elinux.org/N900
== Power Management ==
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch
<pre>
$ cat idlest.py
"""
00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000
f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046
0000000d 48004a28 (f7aa95e6) cm_idlest3_core
"""
# 31 to 0
cm_idlest1_core_bits = [
'RESERVED',
'ST_MMC3',
'ST_ICR',
'RESERVED',
'RESERVED',
'RESERVED',
'ST_MMC2',
'ST_MMC1',
'RESERVED',
'ST_HDQ',
'ST_MCSPI4',
'ST_MCSPI3',
'ST_MCSPI2',
'ST_MCSPI1',
'ST_I2C3',
'ST_I2C2',
'ST_I2C1',
'ST_UART2',
'ST_UART1',
'ST_GPT11',
'ST_GPT10',
'ST_MCBSP5',
'ST_MCBSP1',
'RESERVED',
'ST_MAILBOXES',
'ST_OMAPCTRL',
'ST_HSOTGUSB_IDLE',
'ST_HSOTGUSB_STDBY',
'RESERVED',
'ST_SDMA',
'ST_SDRC',
'RESERVED',
]
cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits))
#inp = '0020c046'
inp = '00208042' # after rmmod hci_nokia and hci_uart
v = int(inp, 16)
#print(v)
b= "{0:b}".format(v)
print((32-len(b))*'0' + b)
for i in range(0, 32):
is_set = (v & (1 << i)) >> i
if is_set:
print(cm_idlest1_core_bits[i])
</pre>
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
[[Category:Device]]
378dd598dc1a1357a9a3c63256419fd28437e5fa
1058
1056
2021-05-23T11:28:08Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=
|sw_kernel=5.1
|sw_serial=Yes,special hardware
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=TX only
|sw_2g3gdata=Yes
|sw_4g=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || Yes || TX only (hardware limitation).
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode
|}
== Installation ==
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''.
To flash u-boot permanently, you can issue the following command
'''(BE CAREFUL THOUGH. THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL. ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION OR YOU KNOW HOW TO RECOVER FROM THIS CONDITION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Notes ==
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them
Also see: https://elinux.org/N900
== Power Management ==
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch
<pre>
$ cat idlest.py
"""
00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000
f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046
0000000d 48004a28 (f7aa95e6) cm_idlest3_core
"""
# 31 to 0
cm_idlest1_core_bits = [
'RESERVED',
'ST_MMC3',
'ST_ICR',
'RESERVED',
'RESERVED',
'RESERVED',
'ST_MMC2',
'ST_MMC1',
'RESERVED',
'ST_HDQ',
'ST_MCSPI4',
'ST_MCSPI3',
'ST_MCSPI2',
'ST_MCSPI1',
'ST_I2C3',
'ST_I2C2',
'ST_I2C1',
'ST_UART2',
'ST_UART1',
'ST_GPT11',
'ST_GPT10',
'ST_MCBSP5',
'ST_MCBSP1',
'RESERVED',
'ST_MAILBOXES',
'ST_OMAPCTRL',
'ST_HSOTGUSB_IDLE',
'ST_HSOTGUSB_STDBY',
'RESERVED',
'ST_SDMA',
'ST_SDRC',
'RESERVED',
]
cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits))
#inp = '0020c046'
inp = '00208042' # after rmmod hci_nokia and hci_uart
v = int(inp, 16)
#print(v)
b= "{0:b}".format(v)
print((32-len(b))*'0' + b)
for i in range(0, 32):
is_set = (v & (1 << i)) >> i
if is_set:
print(cm_idlest1_core_bits[i])
</pre>
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
[[Category:Device]]
ad05b5e050ae6a0799a6ecb9172a0f8494102550
1060
1058
2021-05-23T11:34:25Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=
|sw_kernel=5.1
|sw_serial=Yes,special hardware
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=TX only
|sw_2g3gdata=Yes
|sw_4g=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=
|sw_standbytime=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || Yes || TX only (hardware limitation).
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode
|}
== Installation ==
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''.
To flash u-boot permanently, you can issue the following command
'''(BE CAREFUL THOUGH. THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL. ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION OR YOU KNOW HOW TO RECOVER FROM THIS CONDITION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Notes ==
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them
Also see: https://elinux.org/N900
== Power Management ==
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch
<pre>
$ cat idlest.py
"""
00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000
f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046
0000000d 48004a28 (f7aa95e6) cm_idlest3_core
"""
# 31 to 0
cm_idlest1_core_bits = [
'RESERVED',
'ST_MMC3',
'ST_ICR',
'RESERVED',
'RESERVED',
'RESERVED',
'ST_MMC2',
'ST_MMC1',
'RESERVED',
'ST_HDQ',
'ST_MCSPI4',
'ST_MCSPI3',
'ST_MCSPI2',
'ST_MCSPI1',
'ST_I2C3',
'ST_I2C2',
'ST_I2C1',
'ST_UART2',
'ST_UART1',
'ST_GPT11',
'ST_GPT10',
'ST_MCBSP5',
'ST_MCBSP1',
'RESERVED',
'ST_MAILBOXES',
'ST_OMAPCTRL',
'ST_HSOTGUSB_IDLE',
'ST_HSOTGUSB_STDBY',
'RESERVED',
'ST_SDMA',
'ST_SDRC',
'RESERVED',
]
cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits))
#inp = '0020c046'
inp = '00208042' # after rmmod hci_nokia and hci_uart
v = int(inp, 16)
#print(v)
b= "{0:b}".format(v)
print((32-len(b))*'0' + b)
for i in range(0, 32):
is_set = (v & (1 << i)) >> i
if is_set:
print(cm_idlest1_core_bits[i])
</pre>
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
[[Category:Device]]
4457f71d33c899635ca9c19b4c76604a7192efec
1061
1060
2021-05-23T11:35:48Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=
|sw_kernel=5.1
|sw_serial=Yes,special hardware
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=TX only
|sw_2g3gdata=Yes
|sw_4g=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=150mW (needs kernel work)
|sw_standbytime=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || Yes || TX only (hardware limitation).
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode
|}
== Installation ==
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''.
To flash u-boot permanently, you can issue the following command
'''(BE CAREFUL THOUGH. THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL. ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION OR YOU KNOW HOW TO RECOVER FROM THIS CONDITION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Notes ==
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them
Also see: https://elinux.org/N900
== Power Management ==
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch
<pre>
$ cat idlest.py
"""
00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000
f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046
0000000d 48004a28 (f7aa95e6) cm_idlest3_core
"""
# 31 to 0
cm_idlest1_core_bits = [
'RESERVED',
'ST_MMC3',
'ST_ICR',
'RESERVED',
'RESERVED',
'RESERVED',
'ST_MMC2',
'ST_MMC1',
'RESERVED',
'ST_HDQ',
'ST_MCSPI4',
'ST_MCSPI3',
'ST_MCSPI2',
'ST_MCSPI1',
'ST_I2C3',
'ST_I2C2',
'ST_I2C1',
'ST_UART2',
'ST_UART1',
'ST_GPT11',
'ST_GPT10',
'ST_MCBSP5',
'ST_MCBSP1',
'RESERVED',
'ST_MAILBOXES',
'ST_OMAPCTRL',
'ST_HSOTGUSB_IDLE',
'ST_HSOTGUSB_STDBY',
'RESERVED',
'ST_SDMA',
'ST_SDRC',
'RESERVED',
]
cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits))
#inp = '0020c046'
inp = '00208042' # after rmmod hci_nokia and hci_uart
v = int(inp, 16)
#print(v)
b= "{0:b}".format(v)
print((32-len(b))*'0' + b)
for i in range(0, 32):
is_set = (v & (1 << i)) >> i
if is_set:
print(cm_idlest1_core_bits[i])
</pre>
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
[[Category:Device]]
02f374f1443e7ced084284bb76cec02e9528748b
1062
1061
2021-05-23T11:36:07Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=
|sw_kernel=5.1
|sw_serial=Yes,special hardware
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=TX only
|sw_2g3gdata=Yes
|sw_4g=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=300mW (needs kernel work)
|sw_standbytime=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || Yes || TX only (hardware limitation).
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode
|}
== Installation ==
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''.
To flash u-boot permanently, you can issue the following command
'''(BE CAREFUL THOUGH. THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL. ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION OR YOU KNOW HOW TO RECOVER FROM THIS CONDITION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Notes ==
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them
Also see: https://elinux.org/N900
== Power Management ==
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch
<pre>
$ cat idlest.py
"""
00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000
f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046
0000000d 48004a28 (f7aa95e6) cm_idlest3_core
"""
# 31 to 0
cm_idlest1_core_bits = [
'RESERVED',
'ST_MMC3',
'ST_ICR',
'RESERVED',
'RESERVED',
'RESERVED',
'ST_MMC2',
'ST_MMC1',
'RESERVED',
'ST_HDQ',
'ST_MCSPI4',
'ST_MCSPI3',
'ST_MCSPI2',
'ST_MCSPI1',
'ST_I2C3',
'ST_I2C2',
'ST_I2C1',
'ST_UART2',
'ST_UART1',
'ST_GPT11',
'ST_GPT10',
'ST_MCBSP5',
'ST_MCBSP1',
'RESERVED',
'ST_MAILBOXES',
'ST_OMAPCTRL',
'ST_HSOTGUSB_IDLE',
'ST_HSOTGUSB_STDBY',
'RESERVED',
'ST_SDMA',
'ST_SDRC',
'RESERVED',
]
cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits))
#inp = '0020c046'
inp = '00208042' # after rmmod hci_nokia and hci_uart
v = int(inp, 16)
#print(v)
b= "{0:b}".format(v)
print((32-len(b))*'0' + b)
for i in range(0, 32):
is_set = (v & (1 << i)) >> i
if is_set:
print(cm_idlest1_core_bits[i])
</pre>
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
[[Category:Device]]
8813439cfa1b67bbcb72c378e83c349e49c90d49
1065
1062
2021-05-23T11:39:22Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=
|sw_kernel=5.1
|sw_serial=Yes,special hardware
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=TX only
|sw_2g3gdata=Yes
|sw_4g=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=300mW (needs kernel work)
|sw_standbytime=
}}
== Installation ==
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== U-Boot setup ===
==== If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly ====
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''.
To flash u-boot permanently, you can issue the following command
'''(BE CAREFUL THOUGH. THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL. ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION OR YOU KNOW HOW TO RECOVER FROM THIS CONDITION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing Fremantle ====
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Notes ==
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them
Also see: https://elinux.org/N900
== Power Management ==
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch
<pre>
$ cat idlest.py
"""
00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000
f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046
0000000d 48004a28 (f7aa95e6) cm_idlest3_core
"""
# 31 to 0
cm_idlest1_core_bits = [
'RESERVED',
'ST_MMC3',
'ST_ICR',
'RESERVED',
'RESERVED',
'RESERVED',
'ST_MMC2',
'ST_MMC1',
'RESERVED',
'ST_HDQ',
'ST_MCSPI4',
'ST_MCSPI3',
'ST_MCSPI2',
'ST_MCSPI1',
'ST_I2C3',
'ST_I2C2',
'ST_I2C1',
'ST_UART2',
'ST_UART1',
'ST_GPT11',
'ST_GPT10',
'ST_MCBSP5',
'ST_MCBSP1',
'RESERVED',
'ST_MAILBOXES',
'ST_OMAPCTRL',
'ST_HSOTGUSB_IDLE',
'ST_HSOTGUSB_STDBY',
'RESERVED',
'ST_SDMA',
'ST_SDRC',
'RESERVED',
]
cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits))
#inp = '0020c046'
inp = '00208042' # after rmmod hci_nokia and hci_uart
v = int(inp, 16)
#print(v)
b= "{0:b}".format(v)
print((32-len(b))*'0' + b)
for i in range(0, 32):
is_set = (v & (1 << i)) >> i
if is_set:
print(cm_idlest1_core_bits[i])
</pre>
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Old status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || Yes || TX only (hardware limitation).
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode
|}
[[Category:Device]]
18733f28848dc5993292aa40bac7601ad44f8707
1066
1065
2021-05-23T11:47:54Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=
|sw_kernel=5.1
|sw_serial=Yes,special hardware
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=TX only
|sw_2g3gdata=Yes
|sw_4g=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=300mW (needs kernel work)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''.
To flash u-boot permanently, you can issue the following command
'''(BE CAREFUL THOUGH. THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL. ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION OR YOU KNOW HOW TO RECOVER FROM THIS CONDITION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing fremantle ====
If you have an existing Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Notes ==
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them
Also see: https://elinux.org/N900
== Power Management ==
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch
<pre>
$ cat idlest.py
"""
00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000
f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046
0000000d 48004a28 (f7aa95e6) cm_idlest3_core
"""
# 31 to 0
cm_idlest1_core_bits = [
'RESERVED',
'ST_MMC3',
'ST_ICR',
'RESERVED',
'RESERVED',
'RESERVED',
'ST_MMC2',
'ST_MMC1',
'RESERVED',
'ST_HDQ',
'ST_MCSPI4',
'ST_MCSPI3',
'ST_MCSPI2',
'ST_MCSPI1',
'ST_I2C3',
'ST_I2C2',
'ST_I2C1',
'ST_UART2',
'ST_UART1',
'ST_GPT11',
'ST_GPT10',
'ST_MCBSP5',
'ST_MCBSP1',
'RESERVED',
'ST_MAILBOXES',
'ST_OMAPCTRL',
'ST_HSOTGUSB_IDLE',
'ST_HSOTGUSB_STDBY',
'RESERVED',
'ST_SDMA',
'ST_SDRC',
'RESERVED',
]
cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits))
#inp = '0020c046'
inp = '00208042' # after rmmod hci_nokia and hci_uart
v = int(inp, 16)
#print(v)
b= "{0:b}".format(v)
print((32-len(b))*'0' + b)
for i in range(0, 32):
is_set = (v & (1 << i)) >> i
if is_set:
print(cm_idlest1_core_bits[i])
</pre>
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Old status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || Yes || TX only (hardware limitation).
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode
|}
[[Category:Device]]
ce4735af0a3340c4595b2b1394bc8ad97134028d
1067
1066
2021-05-23T11:48:28Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=
|sw_kernel=5.1
|sw_serial=Yes,special hardware
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=TX only
|sw_2g3gdata=Yes
|sw_4g=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=300mW (needs kernel work)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''.
To flash u-boot permanently, you can issue the following command
'''(BE CAREFUL THOUGH. THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL. ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION OR YOU KNOW HOW TO RECOVER FROM THIS CONDITION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing fremantle ====
If you have an existing Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
== Device ==
=== Serial ===
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Notes ==
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them
Also see: https://elinux.org/N900
== Power Management ==
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch
<pre>
$ cat idlest.py
"""
00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000
f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046
0000000d 48004a28 (f7aa95e6) cm_idlest3_core
"""
# 31 to 0
cm_idlest1_core_bits = [
'RESERVED',
'ST_MMC3',
'ST_ICR',
'RESERVED',
'RESERVED',
'RESERVED',
'ST_MMC2',
'ST_MMC1',
'RESERVED',
'ST_HDQ',
'ST_MCSPI4',
'ST_MCSPI3',
'ST_MCSPI2',
'ST_MCSPI1',
'ST_I2C3',
'ST_I2C2',
'ST_I2C1',
'ST_UART2',
'ST_UART1',
'ST_GPT11',
'ST_GPT10',
'ST_MCBSP5',
'ST_MCBSP1',
'RESERVED',
'ST_MAILBOXES',
'ST_OMAPCTRL',
'ST_HSOTGUSB_IDLE',
'ST_HSOTGUSB_STDBY',
'RESERVED',
'ST_SDMA',
'ST_SDRC',
'RESERVED',
]
cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits))
#inp = '0020c046'
inp = '00208042' # after rmmod hci_nokia and hci_uart
v = int(inp, 16)
#print(v)
b= "{0:b}".format(v)
print((32-len(b))*'0' + b)
for i in range(0, 32):
is_set = (v & (1 << i)) >> i
if is_set:
print(cm_idlest1_core_bits[i])
</pre>
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Old status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || Yes || TX only (hardware limitation).
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode
|}
[[Category:Device]]
873aac20696070d3df37d584ef8bc0e51cb6d6db
1068
1067
2021-05-23T11:48:42Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=
|sw_kernel=5.1
|sw_serial=Yes,special hardware
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=TX only
|sw_2g3gdata=Yes
|sw_4g=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=300mW (needs kernel work)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''.
To flash u-boot permanently, you can issue the following command
'''(BE CAREFUL THOUGH. THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL. ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION OR YOU KNOW HOW TO RECOVER FROM THIS CONDITION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing fremantle ====
If you have an existing Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.
Perform the following steps on a Linux machine with none of the SD card's partitions mounted:
* assumption: /dev/sda2 is Leste root partition
* e2fsck -f /dev/sda2
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
* resize2fs -p /dev/sda2
* e2fsck -f /dev/sda2
The latest images have a script, <code>/etc/expandcard.sh</code> from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Notes ==
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them
Also see: https://elinux.org/N900
== Power Management ==
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch
<pre>
$ cat idlest.py
"""
00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000
f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046
0000000d 48004a28 (f7aa95e6) cm_idlest3_core
"""
# 31 to 0
cm_idlest1_core_bits = [
'RESERVED',
'ST_MMC3',
'ST_ICR',
'RESERVED',
'RESERVED',
'RESERVED',
'ST_MMC2',
'ST_MMC1',
'RESERVED',
'ST_HDQ',
'ST_MCSPI4',
'ST_MCSPI3',
'ST_MCSPI2',
'ST_MCSPI1',
'ST_I2C3',
'ST_I2C2',
'ST_I2C1',
'ST_UART2',
'ST_UART1',
'ST_GPT11',
'ST_GPT10',
'ST_MCBSP5',
'ST_MCBSP1',
'RESERVED',
'ST_MAILBOXES',
'ST_OMAPCTRL',
'ST_HSOTGUSB_IDLE',
'ST_HSOTGUSB_STDBY',
'RESERVED',
'ST_SDMA',
'ST_SDRC',
'RESERVED',
]
cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits))
#inp = '0020c046'
inp = '00208042' # after rmmod hci_nokia and hci_uart
v = int(inp, 16)
#print(v)
b= "{0:b}".format(v)
print((32-len(b))*'0' + b)
for i in range(0, 32):
is_set = (v & (1 << i)) >> i
if is_set:
print(cm_idlest1_core_bits[i])
</pre>
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Old status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || Yes || TX only (hardware limitation).
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode
|}
[[Category:Device]]
dd840a1f14a7e3ab9729ff28725b243afaee2729
1069
1068
2021-05-23T11:50:25Z
Wizzup
4
/* Increase filesystem size */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=
|sw_kernel=5.1
|sw_serial=Yes,special hardware
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=TX only
|sw_2g3gdata=Yes
|sw_4g=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=300mW (needs kernel work)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l'''
3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: '''./0xFFFF -b'''
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type '''run sdboot'''.
To flash u-boot permanently, you can issue the following command
'''(BE CAREFUL THOUGH. THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL. ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION OR YOU KNOW HOW TO RECOVER FROM THIS CONDITION)''':
'''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f'''
==== Existing fremantle ====
If you have an existing Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Notes ==
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them
Also see: https://elinux.org/N900
== Power Management ==
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch
<pre>
$ cat idlest.py
"""
00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000
f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046
0000000d 48004a28 (f7aa95e6) cm_idlest3_core
"""
# 31 to 0
cm_idlest1_core_bits = [
'RESERVED',
'ST_MMC3',
'ST_ICR',
'RESERVED',
'RESERVED',
'RESERVED',
'ST_MMC2',
'ST_MMC1',
'RESERVED',
'ST_HDQ',
'ST_MCSPI4',
'ST_MCSPI3',
'ST_MCSPI2',
'ST_MCSPI1',
'ST_I2C3',
'ST_I2C2',
'ST_I2C1',
'ST_UART2',
'ST_UART1',
'ST_GPT11',
'ST_GPT10',
'ST_MCBSP5',
'ST_MCBSP1',
'RESERVED',
'ST_MAILBOXES',
'ST_OMAPCTRL',
'ST_HSOTGUSB_IDLE',
'ST_HSOTGUSB_STDBY',
'RESERVED',
'ST_SDMA',
'ST_SDRC',
'RESERVED',
]
cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits))
#inp = '0020c046'
inp = '00208042' # after rmmod hci_nokia and hci_uart
v = int(inp, 16)
#print(v)
b= "{0:b}".format(v)
print((32-len(b))*'0' + b)
for i in range(0, 32):
is_set = (v & (1 << i)) >> i
if is_set:
print(cm_idlest1_core_bits[i])
</pre>
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Old status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || Yes || TX only (hardware limitation).
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode
|}
[[Category:Device]]
3633786ff4488fa08e21218183a8edd6e29ce21d
1070
1069
2021-05-23T11:52:47Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=
|sw_kernel=5.1
|sw_serial=Yes,special hardware
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=TX only
|sw_2g3gdata=Yes
|sw_4g=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=300mW (needs kernel work)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher] '''NB:''' Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing fremantle ====
If you have an existing Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Notes ==
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them
Also see: https://elinux.org/N900
== Power Management ==
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch
<pre>
$ cat idlest.py
"""
00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000
f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046
0000000d 48004a28 (f7aa95e6) cm_idlest3_core
"""
# 31 to 0
cm_idlest1_core_bits = [
'RESERVED',
'ST_MMC3',
'ST_ICR',
'RESERVED',
'RESERVED',
'RESERVED',
'ST_MMC2',
'ST_MMC1',
'RESERVED',
'ST_HDQ',
'ST_MCSPI4',
'ST_MCSPI3',
'ST_MCSPI2',
'ST_MCSPI1',
'ST_I2C3',
'ST_I2C2',
'ST_I2C1',
'ST_UART2',
'ST_UART1',
'ST_GPT11',
'ST_GPT10',
'ST_MCBSP5',
'ST_MCBSP1',
'RESERVED',
'ST_MAILBOXES',
'ST_OMAPCTRL',
'ST_HSOTGUSB_IDLE',
'ST_HSOTGUSB_STDBY',
'RESERVED',
'ST_SDMA',
'ST_SDRC',
'RESERVED',
]
cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits))
#inp = '0020c046'
inp = '00208042' # after rmmod hci_nokia and hci_uart
v = int(inp, 16)
#print(v)
b= "{0:b}".format(v)
print((32-len(b))*'0' + b)
for i in range(0, 32):
is_set = (v & (1 << i)) >> i
if is_set:
print(cm_idlest1_core_bits[i])
</pre>
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Old status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || Yes || TX only (hardware limitation).
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode
|}
[[Category:Device]]
901297791184fad841a813a791c7e45bf851a37f
1071
1070
2021-05-23T11:54:05Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=
|sw_kernel=5.1
|sw_serial=Yes,special hardware
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=TX only
|sw_2g3gdata=Yes
|sw_4g=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=300mW (needs kernel work)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing fremantle ====
If you have an existing Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Notes ==
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them
Also see: https://elinux.org/N900
== Power Management ==
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch
<pre>
$ cat idlest.py
"""
00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000
f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046
0000000d 48004a28 (f7aa95e6) cm_idlest3_core
"""
# 31 to 0
cm_idlest1_core_bits = [
'RESERVED',
'ST_MMC3',
'ST_ICR',
'RESERVED',
'RESERVED',
'RESERVED',
'ST_MMC2',
'ST_MMC1',
'RESERVED',
'ST_HDQ',
'ST_MCSPI4',
'ST_MCSPI3',
'ST_MCSPI2',
'ST_MCSPI1',
'ST_I2C3',
'ST_I2C2',
'ST_I2C1',
'ST_UART2',
'ST_UART1',
'ST_GPT11',
'ST_GPT10',
'ST_MCBSP5',
'ST_MCBSP1',
'RESERVED',
'ST_MAILBOXES',
'ST_OMAPCTRL',
'ST_HSOTGUSB_IDLE',
'ST_HSOTGUSB_STDBY',
'RESERVED',
'ST_SDMA',
'ST_SDRC',
'RESERVED',
]
cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits))
#inp = '0020c046'
inp = '00208042' # after rmmod hci_nokia and hci_uart
v = int(inp, 16)
#print(v)
b= "{0:b}".format(v)
print((32-len(b))*'0' + b)
for i in range(0, 32):
is_set = (v & (1 << i)) >> i
if is_set:
print(cm_idlest1_core_bits[i])
</pre>
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Old status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || Yes || TX only (hardware limitation).
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode
|}
[[Category:Device]]
a5f2013b20c031e1605f52d3a74b59ba26cb5ef4
1072
1071
2021-05-23T11:55:33Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=
|sw_kernel=5.1
|sw_serial=Yes,special hardware
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=TX only
|sw_2g3gdata=Yes
|sw_4g=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=300mW (needs kernel work)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing fremantle ====
If you have an existing Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Notes ==
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them
Also see: https://elinux.org/N900
== Power Management ==
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch
<pre>
$ cat idlest.py
"""
00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000
f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046
0000000d 48004a28 (f7aa95e6) cm_idlest3_core
"""
# 31 to 0
cm_idlest1_core_bits = [
'RESERVED',
'ST_MMC3',
'ST_ICR',
'RESERVED',
'RESERVED',
'RESERVED',
'ST_MMC2',
'ST_MMC1',
'RESERVED',
'ST_HDQ',
'ST_MCSPI4',
'ST_MCSPI3',
'ST_MCSPI2',
'ST_MCSPI1',
'ST_I2C3',
'ST_I2C2',
'ST_I2C1',
'ST_UART2',
'ST_UART1',
'ST_GPT11',
'ST_GPT10',
'ST_MCBSP5',
'ST_MCBSP1',
'RESERVED',
'ST_MAILBOXES',
'ST_OMAPCTRL',
'ST_HSOTGUSB_IDLE',
'ST_HSOTGUSB_STDBY',
'RESERVED',
'ST_SDMA',
'ST_SDRC',
'RESERVED',
]
cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits))
#inp = '0020c046'
inp = '00208042' # after rmmod hci_nokia and hci_uart
v = int(inp, 16)
#print(v)
b= "{0:b}".format(v)
print((32-len(b))*'0' + b)
for i in range(0, 32):
is_set = (v & (1 << i)) >> i
if is_set:
print(cm_idlest1_core_bits[i])
</pre>
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Old status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || Yes || TX only (hardware limitation).
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode
|}
[[Category:Device]]
0f047191d5f7c31560896d83d7c5e8b214f16d62
1076
1072
2021-05-23T12:08:38Z
Uvos
39
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=
|sw_kernel=5.1
|sw_serial=Yes,special hardware
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=TX only
|sw_2g3gdata=Yes
|sw_4g=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=No, needs kernel work
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=300mW (needs kernel work)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing fremantle ====
If you have an existing Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Notes ==
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them
Also see: https://elinux.org/N900
== Power Management ==
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch
<pre>
$ cat idlest.py
"""
00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000
f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046
0000000d 48004a28 (f7aa95e6) cm_idlest3_core
"""
# 31 to 0
cm_idlest1_core_bits = [
'RESERVED',
'ST_MMC3',
'ST_ICR',
'RESERVED',
'RESERVED',
'RESERVED',
'ST_MMC2',
'ST_MMC1',
'RESERVED',
'ST_HDQ',
'ST_MCSPI4',
'ST_MCSPI3',
'ST_MCSPI2',
'ST_MCSPI1',
'ST_I2C3',
'ST_I2C2',
'ST_I2C1',
'ST_UART2',
'ST_UART1',
'ST_GPT11',
'ST_GPT10',
'ST_MCBSP5',
'ST_MCBSP1',
'RESERVED',
'ST_MAILBOXES',
'ST_OMAPCTRL',
'ST_HSOTGUSB_IDLE',
'ST_HSOTGUSB_STDBY',
'RESERVED',
'ST_SDMA',
'ST_SDRC',
'RESERVED',
]
cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits))
#inp = '0020c046'
inp = '00208042' # after rmmod hci_nokia and hci_uart
v = int(inp, 16)
#print(v)
b= "{0:b}".format(v)
print((32-len(b))*'0' + b)
for i in range(0, 32):
is_set = (v & (1 << i)) >> i
if is_set:
print(cm_idlest1_core_bits[i])
</pre>
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Old status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || Yes || TX only (hardware limitation).
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode
|}
[[Category:Device]]
1f671857ce06f9dd443737539bea1f7713e6a277
1077
1076
2021-05-23T12:20:43Z
Uvos
39
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=
|sw_kernel=5.1
|sw_serial=Yes,special hardware
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=TX only
|sw_2g3gdata=Yes
|sw_4g=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=300mW (needs kernel work)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing fremantle ====
If you have an existing Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Notes ==
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them
Also see: https://elinux.org/N900
== Power Management ==
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch
<pre>
$ cat idlest.py
"""
00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000
f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046
0000000d 48004a28 (f7aa95e6) cm_idlest3_core
"""
# 31 to 0
cm_idlest1_core_bits = [
'RESERVED',
'ST_MMC3',
'ST_ICR',
'RESERVED',
'RESERVED',
'RESERVED',
'ST_MMC2',
'ST_MMC1',
'RESERVED',
'ST_HDQ',
'ST_MCSPI4',
'ST_MCSPI3',
'ST_MCSPI2',
'ST_MCSPI1',
'ST_I2C3',
'ST_I2C2',
'ST_I2C1',
'ST_UART2',
'ST_UART1',
'ST_GPT11',
'ST_GPT10',
'ST_MCBSP5',
'ST_MCBSP1',
'RESERVED',
'ST_MAILBOXES',
'ST_OMAPCTRL',
'ST_HSOTGUSB_IDLE',
'ST_HSOTGUSB_STDBY',
'RESERVED',
'ST_SDMA',
'ST_SDRC',
'RESERVED',
]
cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits))
#inp = '0020c046'
inp = '00208042' # after rmmod hci_nokia and hci_uart
v = int(inp, 16)
#print(v)
b= "{0:b}".format(v)
print((32-len(b))*'0' + b)
for i in range(0, 32):
is_set = (v & (1 << i)) >> i
if is_set:
print(cm_idlest1_core_bits[i])
</pre>
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Old status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || Yes || TX only (hardware limitation).
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode
|}
[[Category:Device]]
0f047191d5f7c31560896d83d7c5e8b214f16d62
1078
1077
2021-05-23T12:51:06Z
Sicelo
5
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=5.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=TX only
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=300mW (needs kernel work)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Notes ==
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them
Also see: https://elinux.org/N900
== Power Management ==
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch
<pre>
$ cat idlest.py
"""
00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000
f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046
0000000d 48004a28 (f7aa95e6) cm_idlest3_core
"""
# 31 to 0
cm_idlest1_core_bits = [
'RESERVED',
'ST_MMC3',
'ST_ICR',
'RESERVED',
'RESERVED',
'RESERVED',
'ST_MMC2',
'ST_MMC1',
'RESERVED',
'ST_HDQ',
'ST_MCSPI4',
'ST_MCSPI3',
'ST_MCSPI2',
'ST_MCSPI1',
'ST_I2C3',
'ST_I2C2',
'ST_I2C1',
'ST_UART2',
'ST_UART1',
'ST_GPT11',
'ST_GPT10',
'ST_MCBSP5',
'ST_MCBSP1',
'RESERVED',
'ST_MAILBOXES',
'ST_OMAPCTRL',
'ST_HSOTGUSB_IDLE',
'ST_HSOTGUSB_STDBY',
'RESERVED',
'ST_SDMA',
'ST_SDRC',
'RESERVED',
]
cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits))
#inp = '0020c046'
inp = '00208042' # after rmmod hci_nokia and hci_uart
v = int(inp, 16)
#print(v)
b= "{0:b}".format(v)
print((32-len(b))*'0' + b)
for i in range(0, 32):
is_set = (v & (1 << i)) >> i
if is_set:
print(cm_idlest1_core_bits[i])
</pre>
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Old status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || Yes || TX only (hardware limitation).
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode
|}
[[Category:Device]]
0f5fdfdf07e1cc7691f5b06368ad96ca99566ca9
1082
1078
2021-05-23T13:00:58Z
Sicelo
5
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=5.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=300mW (needs kernel work)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Notes ==
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them
Also see: https://elinux.org/N900
== Power Management ==
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch
<pre>
$ cat idlest.py
"""
00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000
f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046
0000000d 48004a28 (f7aa95e6) cm_idlest3_core
"""
# 31 to 0
cm_idlest1_core_bits = [
'RESERVED',
'ST_MMC3',
'ST_ICR',
'RESERVED',
'RESERVED',
'RESERVED',
'ST_MMC2',
'ST_MMC1',
'RESERVED',
'ST_HDQ',
'ST_MCSPI4',
'ST_MCSPI3',
'ST_MCSPI2',
'ST_MCSPI1',
'ST_I2C3',
'ST_I2C2',
'ST_I2C1',
'ST_UART2',
'ST_UART1',
'ST_GPT11',
'ST_GPT10',
'ST_MCBSP5',
'ST_MCBSP1',
'RESERVED',
'ST_MAILBOXES',
'ST_OMAPCTRL',
'ST_HSOTGUSB_IDLE',
'ST_HSOTGUSB_STDBY',
'RESERVED',
'ST_SDMA',
'ST_SDRC',
'RESERVED',
]
cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits))
#inp = '0020c046'
inp = '00208042' # after rmmod hci_nokia and hci_uart
v = int(inp, 16)
#print(v)
b= "{0:b}".format(v)
print((32-len(b))*'0' + b)
for i in range(0, 32):
is_set = (v & (1 << i)) >> i
if is_set:
print(cm_idlest1_core_bits[i])
</pre>
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Old status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || Yes || TX only (hardware limitation).
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode
|}
[[Category:Device]]
6b0379ecc1e0b03ce076a05babb6a176c5f324e1
File:ScummVMNeverhood.png
6
142
1079
2021-05-23T12:53:07Z
Wizzup
4
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Extras/ScummVM
0
137
1080
1027
2021-05-23T12:54:04Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Package
|image=[[File:ScummVM_Logo.png|250px]]
|status=working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]
|date_in_repo=2021-05-21
|website=https://www.scummvm.org/
|maemo_leste_repo=https://github.com/maemo-leste-extras/scummvm
}}
ScummVM is a program which allows you to run certain classic graphical adventure and role-playing games, provided you already have their data files. The clever part about this: ScummVM just replaces the executables shipped with the games, allowing you to play them on systems for which they were never designed! ScummVM is a complete rewrite of these games' executables and is not an emulator. (From ScummVM website)
Relevant issue: https://github.com/maemo-leste/bugtracker/issues/269
Also see this page for more info: https://wiki.scummvm.org/index.php/Maemo
== Status ==
* Games seems to be playable, with sound and input
=== Tested games ===
===== The Neverhood ====
Change keymap as appropriate, works well.
[[File:ScummVMNeverhood.png|500px]]
=== TODO ===
* Support more engines
* Implement sane default keys for the devices (there is rudimentary detection for the N900, but we support more devices)
* Use libsdl2 build, didn't compile when [[User:Wizzup]] tried.
[[Category:Extras]]
[[Category:Games]]
e9a6ee1198369a2a1de018d1e36c096309a3db93
1081
1080
2021-05-23T12:59:07Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Package
|image=[[File:ScummVM_Logo.png|250px]]
|status=working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]
|date_in_repo=2021-05-21
|website=https://www.scummvm.org/
|maemo_leste_repo=https://github.com/maemo-leste-extras/scummvm
}}
ScummVM is a program which allows you to run certain classic graphical adventure and role-playing games, provided you already have their data files. The clever part about this: ScummVM just replaces the executables shipped with the games, allowing you to play them on systems for which they were never designed! ScummVM is a complete rewrite of these games' executables and is not an emulator. (From ScummVM website)
Relevant issue: https://github.com/maemo-leste/bugtracker/issues/269
Also see this page for more info: https://wiki.scummvm.org/index.php/Maemo
== Status ==
* Games seems to be playable, with sound and input
=== Tested games ===
==== The Neverhood ====
Change keymap as appropriate, works well.
[[File:ScummVMNeverhood.png|500px]]
=== TODO ===
* Support more engines
* Implement sane default keys for the devices (there is rudimentary detection for the N900, but we support more devices)
* Use libsdl2 build, didn't compile when [[User:Wizzup]] tried.
[[Category:Extras]]
[[Category:Games]]
c172b6f406df1ead63f62d827df190454ee8f8fb
1083
1081
2021-05-23T13:09:41Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Package
|image=[[File:ScummVM_Logo.png|250px]]
|status=working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]
|date_in_repo=2021-05-21
|website=https://www.scummvm.org/
|maemo_leste_repo=https://github.com/maemo-leste-extras/scummvm
}}
ScummVM is a program which allows you to run certain classic graphical adventure and role-playing games, provided you already have their data files. The clever part about this: ScummVM just replaces the executables shipped with the games, allowing you to play them on systems for which they were never designed! ScummVM is a complete rewrite of these games' executables and is not an emulator. (From ScummVM website)
Relevant issue: https://github.com/maemo-leste/bugtracker/issues/269
Also see this page for more info: https://wiki.scummvm.org/index.php/Maemo
== Status ==
* Games seems to be playable, with sound and input
=== Tested games ===
==== The Neverhood ====
Change keymap as appropriate, works well.
[[File:ScummVMNeverhood.png|500px]]
=== TODO ===
* Implement sane default keys for the devices (there is rudimentary detection for the N900, but we support more devices)
* Use libsdl2 build, didn't compile when [[User:Wizzup]] tried.
[[Category:Extras]]
[[Category:Games]]
83a1634fe966882ff3f90583acbe21e159db489a
1084
1083
2021-05-23T13:09:54Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Package
|image=[[File:ScummVM_Logo.png|250px]]
|status=working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]
|date_in_repo=2021-05-21
|website=https://www.scummvm.org/
|maemo_leste_repo=https://github.com/maemo-leste-extras/scummvm
}}
ScummVM is a program which allows you to run certain classic graphical adventure and role-playing games, provided you already have their data files. The clever part about this: ScummVM just replaces the executables shipped with the games, allowing you to play them on systems for which they were never designed! ScummVM is a complete rewrite of these games' executables and is not an emulator. (From ScummVM website)
Relevant issue: https://github.com/maemo-leste/bugtracker/issues/269
Also see this page for more info: https://wiki.scummvm.org/index.php/Maemo
== Status ==
* Games seems to be playable, with sound and input
=== Tested games ===
==== The Neverhood ====
Change keymap as appropriate, works well.
[[File:ScummVMNeverhood.png|500px]]
== TODO ==
* Implement sane default keys for the devices (there is rudimentary detection for the N900, but we support more devices)
* Use libsdl2 build, didn't compile when [[User:Wizzup]] tried.
[[Category:Extras]]
[[Category:Games]]
a7f8ef0fb5cefa78d7befcf990eecb3198fd9d0d
1085
1084
2021-05-23T13:10:02Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Package
|image=[[File:ScummVM_Logo.png|250px]]
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]
|date_in_repo=2021-05-21
|website=https://www.scummvm.org/
|maemo_leste_repo=https://github.com/maemo-leste-extras/scummvm
}}
ScummVM is a program which allows you to run certain classic graphical adventure and role-playing games, provided you already have their data files. The clever part about this: ScummVM just replaces the executables shipped with the games, allowing you to play them on systems for which they were never designed! ScummVM is a complete rewrite of these games' executables and is not an emulator. (From ScummVM website)
Relevant issue: https://github.com/maemo-leste/bugtracker/issues/269
Also see this page for more info: https://wiki.scummvm.org/index.php/Maemo
== Status ==
* Games seems to be playable, with sound and input
=== Tested games ===
==== The Neverhood ====
Change keymap as appropriate, works well.
[[File:ScummVMNeverhood.png|500px]]
== TODO ==
* Implement sane default keys for the devices (there is rudimentary detection for the N900, but we support more devices)
* Use libsdl2 build, didn't compile when [[User:Wizzup]] tried.
[[Category:Extras]]
[[Category:Games]]
fac90d68f119f5d7799ec42e4831839ddac762ac
1092
1085
2021-05-23T13:40:57Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Package
|image=[[File:ScummVM_Logo.png|250px]]
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]
|date_in_repo=2021-05-21
|website=https://www.scummvm.org/
|maemo_leste_repo=https://github.com/maemo-leste-extras/scummvm
|packager=[[User:Wizzup]]
}}
ScummVM is a program which allows you to run certain classic graphical adventure and role-playing games, provided you already have their data files. The clever part about this: ScummVM just replaces the executables shipped with the games, allowing you to play them on systems for which they were never designed! ScummVM is a complete rewrite of these games' executables and is not an emulator. (From ScummVM website)
Relevant issue: https://github.com/maemo-leste/bugtracker/issues/269
Also see this page for more info: https://wiki.scummvm.org/index.php/Maemo
== Status ==
* Games seems to be playable, with sound and input
=== Tested games ===
==== The Neverhood ====
Change keymap as appropriate, works well.
[[File:ScummVMNeverhood.png|500px]]
== TODO ==
* Implement sane default keys for the devices (there is rudimentary detection for the N900, but we support more devices)
* Use libsdl2 build, didn't compile when [[User:Wizzup]] tried.
[[Category:Extras]]
[[Category:Games]]
a345c0c150cf6fca72da671109b48938b17fe362
1094
1092
2021-05-23T13:41:20Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Package
|image=[[File:ScummVM_Logo.png|250px]]
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]
|date_in_repo=2021-05-21
|website=https://www.scummvm.org/
|maemo_leste_repo=https://github.com/maemo-leste-extras/scummvm
|category=Games
|packager=[[User:Wizzup]]
}}
ScummVM is a program which allows you to run certain classic graphical adventure and role-playing games, provided you already have their data files. The clever part about this: ScummVM just replaces the executables shipped with the games, allowing you to play them on systems for which they were never designed! ScummVM is a complete rewrite of these games' executables and is not an emulator. (From ScummVM website)
Relevant issue: https://github.com/maemo-leste/bugtracker/issues/269
Also see this page for more info: https://wiki.scummvm.org/index.php/Maemo
== Status ==
* Games seems to be playable, with sound and input
=== Tested games ===
==== The Neverhood ====
Change keymap as appropriate, works well.
[[File:ScummVMNeverhood.png|500px]]
== TODO ==
* Implement sane default keys for the devices (there is rudimentary detection for the N900, but we support more devices)
* Use libsdl2 build, didn't compile when [[User:Wizzup]] tried.
[[Category:Extras]]
[[Category:Games]]
8782a1f0f00ece57a928b711f8161d08b99a5ff6
File:MaepDroid4.png
6
143
1086
2021-05-23T13:13:33Z
Wizzup
4
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:MaepLogo256.png
6
144
1087
2021-05-23T13:37:08Z
Wizzup
4
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Extras/maep
0
145
1088
2021-05-23T13:38:28Z
Wizzup
4
Created page with "{{Infobox Package |image=[[File:MaepLogo256.png|250px]] |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]],[[PinePhone]] |date_in_repo= |maemo_leste_repo=https://git..."
wikitext
text/x-wiki
{{Infobox Package
|image=[[File:MaepLogo256.png|250px]]
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]],[[PinePhone]]
|date_in_repo=
|maemo_leste_repo=https://github.com/maemo-leste-extras/maep
}}
== Status ==
Works fine with location services. All map providers still work, GPS tracking works.
Could be a bit snappier with faster 2D acceleration.
== Screenshots ==
[[File:MaepDroid4.png|500px]]
[[Category:Extras]]
[[Category:Navigation]]
de18c1bc7046682f64aeb11fe1bb63ccf052b8fb
1091
1088
2021-05-23T13:40:52Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Package
|image=[[File:MaepLogo256.png|250px]]
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]],[[PinePhone]]
|date_in_repo=
|maemo_leste_repo=https://github.com/maemo-leste-extras/maep
|packager=[[User:Wizzup]]
}}
== Status ==
Works fine with location services. All map providers still work, GPS tracking works.
Could be a bit snappier with faster 2D acceleration.
== Screenshots ==
[[File:MaepDroid4.png|500px]]
[[Category:Extras]]
[[Category:Navigation]]
d565b655007bd85739efd5d1dce9d5dcb04bf713
1093
1091
2021-05-23T13:41:14Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Package
|image=[[File:MaepLogo256.png|250px]]
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]],[[PinePhone]]
|date_in_repo=
|maemo_leste_repo=https://github.com/maemo-leste-extras/maep
|category=Navigation
|packager=[[User:Wizzup]]
}}
== Status ==
Works fine with location services. All map providers still work, GPS tracking works.
Could be a bit snappier with faster 2D acceleration.
== Screenshots ==
[[File:MaepDroid4.png|500px]]
[[Category:Extras]]
[[Category:Navigation]]
050994f3e23dc1e8827747d53cd2c3f9eadd84bb
Template:Infobox Package
10
139
1089
1024
2021-05-23T13:39:48Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox
| abovestyle = background: #dedede;
| headerstyle = background: #dedede;
| above = {{{name|<includeonly>{{PAGENAME}}</includeonly>}}}
| image = {{{image|}}}
| caption = {{{caption|}}}
| header2 =
| label2 = Status
| data2 = {{{status|}}}
| header3 =
| label3 = Devices
| data3 = {{{devices|}}}
| header4 =
| label4 = Import date
| data4 = {{{date_in_repo|}}}
| header5 =
| label5 = Website
| data5 = {{{website|}}}
| header6 =
| label6 = Leste repo
| data6 = {{{maemo_leste_repo|}}}
| header7 =
| label7 = Category
| data7 = {{{category|}}}
| header8 =
| label8 = Maintainer
| data8 = {{{maintainer|}}}
}}
f5e6271117fdeb3f25b82956e1920b725fa2d005
1090
1089
2021-05-23T13:40:10Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox
| abovestyle = background: #dedede;
| headerstyle = background: #dedede;
| above = {{{name|<includeonly>{{PAGENAME}}</includeonly>}}}
| image = {{{image|}}}
| caption = {{{caption|}}}
| header2 =
| label2 = Status
| data2 = {{{status|}}}
| header3 =
| label3 = Devices
| data3 = {{{devices|}}}
| header4 =
| label4 = Import date
| data4 = {{{date_in_repo|}}}
| header5 =
| label5 = Website
| data5 = {{{website|}}}
| header6 =
| label6 = Leste repo
| data6 = {{{maemo_leste_repo|}}}
| header7 =
| label7 = Category
| data7 = {{{category|}}}
| header8 =
| label8 = Maintainer
| data8 = {{{maintainer|}}}
| header9 =
| label9 = Packager
| data9 = {{{packager|}}}
}}
000c607a2a3d10799e90601fe38191f0363a69e1
File:BraekDroid4.png
6
146
1095
2021-05-23T13:43:02Z
Wizzup
4
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Extras/braek
0
147
1096
2021-05-23T13:43:37Z
Wizzup
4
Created page with "{{Infobox Package |status=Working |devices=All |date_in_repo= |maemo_leste_repo=https://github.com/maemo-leste-extras/braek |packager=[[User:Wizzup]] }} == Status == Seems t..."
wikitext
text/x-wiki
{{Infobox Package
|status=Working
|devices=All
|date_in_repo=
|maemo_leste_repo=https://github.com/maemo-leste-extras/braek
|packager=[[User:Wizzup]]
}}
== Status ==
Seems to break the screen
== Screenshots ==
[[File:BraekDroid4.png|500px]]
[[Category:Extras]]
70435cb07fa8be1d5732cd94323c30ee0987324d
Extras/maep
0
145
1097
1093
2021-05-23T15:31:20Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Package
|image=[[File:MaepLogo256.png|250px]]
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]],[[PinePhone]]
|date_in_repo=
|maemo_leste_repo=https://github.com/maemo-leste-extras/maep
|category=Navigation
|packager=[[User:Wizzup]]
}}
== Status ==
Works fine with location services. All map providers work, GPS tracking works.
Could be a bit snappier with faster 2D acceleration.
== Screenshots ==
[[File:MaepDroid4.png|500px]]
[[Category:Extras]]
[[Category:Navigation]]
959432bdabd8cfa5bbadc425cfe07e1950d99761
Motorola Droid 4
0
50
1098
972
2021-05-23T15:36:03Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
|sw_kernel=5.11.0
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Yes
|sw_usb_host=Yes
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=Yes
|sw_tv=
|sw_3daccel=Yes, [[https://github.com/maemo-leste/pvr-omap4/|SGX540, closed driver|]]
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=Yes
|sw_4g=No
|sw_bluetooth=Yes, [[#Bluetooth|see notes]]
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=120mW
|sw_standbytime=
}}
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Implemented with Pulseaudio and UCM files
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || Yes || Available in /sys, and as input device via iio-uinput
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)
|-
| Gyro || N/A ||
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/
|-
| Idle power consumption || ~120mW || Needs sim inserted
|}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
=== Updating Android ===
This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
=== Setting up kexecboot ===
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
=== Install Maemo Leste to the sdcard ===
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab the latest image from https://phoenix.maemo.org/view/Images/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Bluetooth ==
Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Wifi ====
The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this:
Read modem output:
<pre>
cat /dev/motmdm1 &
</pre>
Online modem:
<pre>
printf "AT+CFUN=1\r" > /dev/motmdm1
</pre>
Connect to network:
<pre>
printf "AT+COPS=1\r" > /dev/motmdm1
</pre>
Print connected network:
</pre>
printf "AT+COPS?\r" > /dev/motmdm1
Turn off signal reporting:
<pre>
# printf "AT+SCRN=0\r" > /dev/motmdm1
</pre>
Dial a number:
<pre>
printf "ATD+1234567890\r" > /dev/motmdm1
</pre>
Hang up:
<pre>
printf "ATH\r" > /dev/motmdm1
</pre>
Answer incoming call:
<pre>
printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired.
==== 3G Internet ====
Using qmicli:
# qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
# route del default
# sudo ifconfig wwan0 up
# dhclient wwan0
Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed.
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
==== HDMI ====
Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier.
<pre>
xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off
</pre>
Return to internal touchscreen display.
<pre>
xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off
</pre>
==== Keyboard / Mouse sharing with PC ====
To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4.
<pre>
[https://github.com/debauchee/barrier Barrier software-KVM switch]
</pre>
Developers and testers may wish to disable the googley bits before compiling.
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
Cant_have_2_much_leste.jpg
Leste-neverball.jpg
Statsfun.jpg
Leste-glmatrix.png
Droid4-leste-utox2.jpg
Droid4-leste-pcsx.jpg
Droid4-leste-surf_master.jpg
</gallery>
[[Category:Device]]
eaf65fea6085bcee2c10af39d2484e36a8ee3b1e
1099
1098
2021-05-23T15:37:08Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
|sw_kernel=5.11.0
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Yes
|sw_usb_host=Yes
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=Yes
|sw_tv=
|sw_3daccel=Yes, [[https://github.com/maemo-leste/pvr-omap4/|SGX540, closed driver|]]
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=Yes
|sw_4g=No
|sw_bluetooth=Yes, [[#Bluetooth|see notes]]
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=120mW
|sw_standbytime=
}}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
=== Updating Android ===
This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
=== Setting up kexecboot ===
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
=== Install Maemo Leste to the sdcard ===
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab the latest image from https://phoenix.maemo.org/view/Images/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Bluetooth ==
Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Wifi ====
The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this:
Read modem output:
<pre>
cat /dev/motmdm1 &
</pre>
Online modem:
<pre>
printf "AT+CFUN=1\r" > /dev/motmdm1
</pre>
Connect to network:
<pre>
printf "AT+COPS=1\r" > /dev/motmdm1
</pre>
Print connected network:
</pre>
printf "AT+COPS?\r" > /dev/motmdm1
Turn off signal reporting:
<pre>
# printf "AT+SCRN=0\r" > /dev/motmdm1
</pre>
Dial a number:
<pre>
printf "ATD+1234567890\r" > /dev/motmdm1
</pre>
Hang up:
<pre>
printf "ATH\r" > /dev/motmdm1
</pre>
Answer incoming call:
<pre>
printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired.
==== 3G Internet ====
Using qmicli:
# qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
# route del default
# sudo ifconfig wwan0 up
# dhclient wwan0
Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed.
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
==== HDMI ====
Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier.
<pre>
xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off
</pre>
Return to internal touchscreen display.
<pre>
xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off
</pre>
==== Keyboard / Mouse sharing with PC ====
To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4.
<pre>
[https://github.com/debauchee/barrier Barrier software-KVM switch]
</pre>
Developers and testers may wish to disable the googley bits before compiling.
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
Cant_have_2_much_leste.jpg
Leste-neverball.jpg
Statsfun.jpg
Leste-glmatrix.png
Droid4-leste-utox2.jpg
Droid4-leste-pcsx.jpg
Droid4-leste-surf_master.jpg
</gallery>
== Old status overview ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Implemented with Pulseaudio and UCM files
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || Yes || Available in /sys, and as input device via iio-uinput
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)
|-
| Gyro || N/A ||
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/
|-
| Idle power consumption || ~120mW || Needs sim inserted
|}
[[Category:Device]]
e959580db6a1e1b3c510f07c97333e3c844b0f7f
1100
1099
2021-05-23T15:42:47Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
|category=Supported
|sw_kernel=5.11.0
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Yes
|sw_usb_host=Yes
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=Yes
|sw_tv=
|sw_3daccel=Yes, [[https://github.com/maemo-leste/pvr-omap4/|SGX540, closed driver|]]
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=Yes
|sw_4g=No
|sw_bluetooth=Yes, [[#Bluetooth|see notes]]
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=120mW
|sw_standbytime=
}}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
=== Updating Android ===
This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
=== Setting up kexecboot ===
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
=== Install Maemo Leste to the sdcard ===
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab the latest image from https://phoenix.maemo.org/view/Images/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Bluetooth ==
Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Wifi ====
The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this:
Read modem output:
<pre>
cat /dev/motmdm1 &
</pre>
Online modem:
<pre>
printf "AT+CFUN=1\r" > /dev/motmdm1
</pre>
Connect to network:
<pre>
printf "AT+COPS=1\r" > /dev/motmdm1
</pre>
Print connected network:
</pre>
printf "AT+COPS?\r" > /dev/motmdm1
Turn off signal reporting:
<pre>
# printf "AT+SCRN=0\r" > /dev/motmdm1
</pre>
Dial a number:
<pre>
printf "ATD+1234567890\r" > /dev/motmdm1
</pre>
Hang up:
<pre>
printf "ATH\r" > /dev/motmdm1
</pre>
Answer incoming call:
<pre>
printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired.
==== 3G Internet ====
Using qmicli:
# qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
# route del default
# sudo ifconfig wwan0 up
# dhclient wwan0
Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed.
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
==== HDMI ====
Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier.
<pre>
xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off
</pre>
Return to internal touchscreen display.
<pre>
xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off
</pre>
==== Keyboard / Mouse sharing with PC ====
To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4.
<pre>
[https://github.com/debauchee/barrier Barrier software-KVM switch]
</pre>
Developers and testers may wish to disable the googley bits before compiling.
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
Cant_have_2_much_leste.jpg
Leste-neverball.jpg
Statsfun.jpg
Leste-glmatrix.png
Droid4-leste-utox2.jpg
Droid4-leste-pcsx.jpg
Droid4-leste-surf_master.jpg
</gallery>
== Old status overview ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Implemented with Pulseaudio and UCM files
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || Yes || Available in /sys, and as input device via iio-uinput
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)
|-
| Gyro || N/A ||
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/
|-
| Idle power consumption || ~120mW || Needs sim inserted
|}
[[Category:Device]]
f0f476061b92a4693c02d1353164cdf41760bf71
1105
1100
2021-05-27T15:21:44Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
|category=Supported
|sw_kernel=5.11.0
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Yes
|sw_usb_host=Yes
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=Yes
|sw_tv=
|sw_3daccel=Yes [[https://github.com/maemo-leste/pvr-omap4/|SGX540]]
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=Yes
|sw_4g=No
|sw_bluetooth=Yes, [[#Bluetooth|see notes]]
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=120mW
|sw_standbytime=
}}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
=== Updating Android ===
This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
=== Setting up kexecboot ===
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
=== Install Maemo Leste to the sdcard ===
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab the latest image from https://phoenix.maemo.org/view/Images/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Bluetooth ==
Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Wifi ====
The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this:
Read modem output:
<pre>
cat /dev/motmdm1 &
</pre>
Online modem:
<pre>
printf "AT+CFUN=1\r" > /dev/motmdm1
</pre>
Connect to network:
<pre>
printf "AT+COPS=1\r" > /dev/motmdm1
</pre>
Print connected network:
</pre>
printf "AT+COPS?\r" > /dev/motmdm1
Turn off signal reporting:
<pre>
# printf "AT+SCRN=0\r" > /dev/motmdm1
</pre>
Dial a number:
<pre>
printf "ATD+1234567890\r" > /dev/motmdm1
</pre>
Hang up:
<pre>
printf "ATH\r" > /dev/motmdm1
</pre>
Answer incoming call:
<pre>
printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired.
==== 3G Internet ====
Using qmicli:
# qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
# route del default
# sudo ifconfig wwan0 up
# dhclient wwan0
Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed.
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
==== HDMI ====
Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier.
<pre>
xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off
</pre>
Return to internal touchscreen display.
<pre>
xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off
</pre>
==== Keyboard / Mouse sharing with PC ====
To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4.
<pre>
[https://github.com/debauchee/barrier Barrier software-KVM switch]
</pre>
Developers and testers may wish to disable the googley bits before compiling.
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
Cant_have_2_much_leste.jpg
Leste-neverball.jpg
Statsfun.jpg
Leste-glmatrix.png
Droid4-leste-utox2.jpg
Droid4-leste-pcsx.jpg
Droid4-leste-surf_master.jpg
</gallery>
== Old status overview ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Implemented with Pulseaudio and UCM files
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || Yes || Available in /sys, and as input device via iio-uinput
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)
|-
| Gyro || N/A ||
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/
|-
| Idle power consumption || ~120mW || Needs sim inserted
|}
[[Category:Device]]
4712103741bb2021332e5d844057e1bd922fbf39
1106
1105
2021-05-27T15:27:51Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
|category=Supported
|sw_kernel=5.11.0
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Yes
|sw_usb_host=Yes
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=Yes
|sw_tv=
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=Yes
|sw_4g=No
|sw_bluetooth=Yes, [[#Bluetooth|see notes]]
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=120mW
|sw_standbytime=
}}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
=== Updating Android ===
This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
=== Setting up kexecboot ===
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
=== Install Maemo Leste to the sdcard ===
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab the latest image from https://phoenix.maemo.org/view/Images/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Bluetooth ==
Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Wifi ====
The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this:
Read modem output:
<pre>
cat /dev/motmdm1 &
</pre>
Online modem:
<pre>
printf "AT+CFUN=1\r" > /dev/motmdm1
</pre>
Connect to network:
<pre>
printf "AT+COPS=1\r" > /dev/motmdm1
</pre>
Print connected network:
</pre>
printf "AT+COPS?\r" > /dev/motmdm1
Turn off signal reporting:
<pre>
# printf "AT+SCRN=0\r" > /dev/motmdm1
</pre>
Dial a number:
<pre>
printf "ATD+1234567890\r" > /dev/motmdm1
</pre>
Hang up:
<pre>
printf "ATH\r" > /dev/motmdm1
</pre>
Answer incoming call:
<pre>
printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired.
==== 3G Internet ====
Using qmicli:
# qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
# route del default
# sudo ifconfig wwan0 up
# dhclient wwan0
Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed.
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
==== HDMI ====
Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier.
<pre>
xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off
</pre>
Return to internal touchscreen display.
<pre>
xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off
</pre>
==== Keyboard / Mouse sharing with PC ====
To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4.
<pre>
[https://github.com/debauchee/barrier Barrier software-KVM switch]
</pre>
Developers and testers may wish to disable the googley bits before compiling.
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
Cant_have_2_much_leste.jpg
Leste-neverball.jpg
Statsfun.jpg
Leste-glmatrix.png
Droid4-leste-utox2.jpg
Droid4-leste-pcsx.jpg
Droid4-leste-surf_master.jpg
</gallery>
== Old status overview ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Implemented with Pulseaudio and UCM files
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || Yes || Available in /sys, and as input device via iio-uinput
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)
|-
| Gyro || N/A ||
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/
|-
| Idle power consumption || ~120mW || Needs sim inserted
|}
[[Category:Device]]
4cc647b7164aa8abacc8b65d4d3ec6900f417543
1111
1106
2021-06-03T02:13:45Z
BuZz
32
/* Bluetooth */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
|category=Supported
|sw_kernel=5.11.0
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Yes
|sw_usb_host=Yes
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=Yes
|sw_tv=
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=Yes
|sw_4g=No
|sw_bluetooth=Yes, [[#Bluetooth|see notes]]
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=120mW
|sw_standbytime=
}}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
=== Updating Android ===
This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
=== Setting up kexecboot ===
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
=== Install Maemo Leste to the sdcard ===
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab the latest image from https://phoenix.maemo.org/view/Images/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Bluetooth ==
Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
== BT Audio headset ==
* sudo apt install pulseaudio-module-bluetooth blueman bluez
* sudo modprobe hci_uart
* pactl load-module module-bluetooth-discover
* blueman
* pair & trust your device, connect audiosink
Quality seems a bit better in 'offline mode'.
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Wifi ====
The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this:
Read modem output:
<pre>
cat /dev/motmdm1 &
</pre>
Online modem:
<pre>
printf "AT+CFUN=1\r" > /dev/motmdm1
</pre>
Connect to network:
<pre>
printf "AT+COPS=1\r" > /dev/motmdm1
</pre>
Print connected network:
</pre>
printf "AT+COPS?\r" > /dev/motmdm1
Turn off signal reporting:
<pre>
# printf "AT+SCRN=0\r" > /dev/motmdm1
</pre>
Dial a number:
<pre>
printf "ATD+1234567890\r" > /dev/motmdm1
</pre>
Hang up:
<pre>
printf "ATH\r" > /dev/motmdm1
</pre>
Answer incoming call:
<pre>
printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired.
==== 3G Internet ====
Using qmicli:
# qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
# route del default
# sudo ifconfig wwan0 up
# dhclient wwan0
Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed.
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
==== HDMI ====
Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier.
<pre>
xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off
</pre>
Return to internal touchscreen display.
<pre>
xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off
</pre>
==== Keyboard / Mouse sharing with PC ====
To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4.
<pre>
[https://github.com/debauchee/barrier Barrier software-KVM switch]
</pre>
Developers and testers may wish to disable the googley bits before compiling.
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
Cant_have_2_much_leste.jpg
Leste-neverball.jpg
Statsfun.jpg
Leste-glmatrix.png
Droid4-leste-utox2.jpg
Droid4-leste-pcsx.jpg
Droid4-leste-surf_master.jpg
</gallery>
== Old status overview ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Implemented with Pulseaudio and UCM files
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || Yes || Available in /sys, and as input device via iio-uinput
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)
|-
| Gyro || N/A ||
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/
|-
| Idle power consumption || ~120mW || Needs sim inserted
|}
[[Category:Device]]
52b949c55831d6fbdf67847728b6ee8feb8e3c53
1112
1111
2021-06-03T02:15:18Z
BuZz
32
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
|category=Supported
|sw_kernel=5.11.0
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Yes
|sw_usb_host=Yes
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=Yes
|sw_tv=
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=Yes
|sw_4g=No
|sw_bluetooth=Yes, [[#Bluetooth|see notes]]
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=120mW
|sw_standbytime=
}}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
=== Updating Android ===
This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
=== Setting up kexecboot ===
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
=== Install Maemo Leste to the sdcard ===
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab the latest image from https://phoenix.maemo.org/view/Images/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Bluetooth ==
Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Wifi ====
The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this:
Read modem output:
<pre>
cat /dev/motmdm1 &
</pre>
Online modem:
<pre>
printf "AT+CFUN=1\r" > /dev/motmdm1
</pre>
Connect to network:
<pre>
printf "AT+COPS=1\r" > /dev/motmdm1
</pre>
Print connected network:
</pre>
printf "AT+COPS?\r" > /dev/motmdm1
Turn off signal reporting:
<pre>
# printf "AT+SCRN=0\r" > /dev/motmdm1
</pre>
Dial a number:
<pre>
printf "ATD+1234567890\r" > /dev/motmdm1
</pre>
Hang up:
<pre>
printf "ATH\r" > /dev/motmdm1
</pre>
Answer incoming call:
<pre>
printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired.
==== 3G Internet ====
Using qmicli:
# qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
# route del default
# sudo ifconfig wwan0 up
# dhclient wwan0
Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed.
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
==== HDMI ====
Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier.
<pre>
xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off
</pre>
Return to internal touchscreen display.
<pre>
xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off
</pre>
==== Keyboard / Mouse sharing with PC ====
To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4.
<pre>
[https://github.com/debauchee/barrier Barrier software-KVM switch]
</pre>
Developers and testers may wish to disable the googley bits before compiling.
==== BT Audio headset ====
* sudo apt install pulseaudio-module-bluetooth blueman bluez
* sudo modprobe hci_uart
* pactl load-module module-bluetooth-discover
* blueman
* pair & trust your device, connect audiosink
Quality seems a bit better in 'offline mode'.
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
Cant_have_2_much_leste.jpg
Leste-neverball.jpg
Statsfun.jpg
Leste-glmatrix.png
Droid4-leste-utox2.jpg
Droid4-leste-pcsx.jpg
Droid4-leste-surf_master.jpg
</gallery>
== Old status overview ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Implemented with Pulseaudio and UCM files
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || Yes || Available in /sys, and as input device via iio-uinput
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)
|-
| Gyro || N/A ||
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/
|-
| Idle power consumption || ~120mW || Needs sim inserted
|}
[[Category:Device]]
a07df67a89ff046a1abb3aff446d6130ed515fb5
1113
1112
2021-06-03T02:27:27Z
BuZz
32
/* BT Audio headset */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
|category=Supported
|sw_kernel=5.11.0
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Yes
|sw_usb_host=Yes
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=Yes
|sw_tv=
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=Yes
|sw_4g=No
|sw_bluetooth=Yes, [[#Bluetooth|see notes]]
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=120mW
|sw_standbytime=
}}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
=== Updating Android ===
This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
=== Setting up kexecboot ===
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
=== Install Maemo Leste to the sdcard ===
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab the latest image from https://phoenix.maemo.org/view/Images/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Bluetooth ==
Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Wifi ====
The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this:
Read modem output:
<pre>
cat /dev/motmdm1 &
</pre>
Online modem:
<pre>
printf "AT+CFUN=1\r" > /dev/motmdm1
</pre>
Connect to network:
<pre>
printf "AT+COPS=1\r" > /dev/motmdm1
</pre>
Print connected network:
</pre>
printf "AT+COPS?\r" > /dev/motmdm1
Turn off signal reporting:
<pre>
# printf "AT+SCRN=0\r" > /dev/motmdm1
</pre>
Dial a number:
<pre>
printf "ATD+1234567890\r" > /dev/motmdm1
</pre>
Hang up:
<pre>
printf "ATH\r" > /dev/motmdm1
</pre>
Answer incoming call:
<pre>
printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired.
==== 3G Internet ====
Using qmicli:
# qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
# route del default
# sudo ifconfig wwan0 up
# dhclient wwan0
Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed.
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
==== HDMI ====
Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier.
<pre>
xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off
</pre>
Return to internal touchscreen display.
<pre>
xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off
</pre>
==== Keyboard / Mouse sharing with PC ====
To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4.
<pre>
[https://github.com/debauchee/barrier Barrier software-KVM switch]
</pre>
Developers and testers may wish to disable the googley bits before compiling.
==== BT Audio headset ====
sudo apt install pulseaudio-module-bluetooth blueman bluez
sudo modprobe hci_uart
pactl load-module module-bluetooth-discover
blueman
Pair & trust your device, connect audiosink. You can close blueman now. The quality seems a bit better in 'offline mode'.
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
Cant_have_2_much_leste.jpg
Leste-neverball.jpg
Statsfun.jpg
Leste-glmatrix.png
Droid4-leste-utox2.jpg
Droid4-leste-pcsx.jpg
Droid4-leste-surf_master.jpg
</gallery>
== Old status overview ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Implemented with Pulseaudio and UCM files
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || Yes || Available in /sys, and as input device via iio-uinput
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)
|-
| Gyro || N/A ||
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/
|-
| Idle power consumption || ~120mW || Needs sim inserted
|}
[[Category:Device]]
669f94701a2f218589bf810f5882eaa50df4bf7b
1114
1113
2021-06-03T02:28:02Z
BuZz
32
/* 3G Internet */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
|category=Supported
|sw_kernel=5.11.0
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Yes
|sw_usb_host=Yes
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=Yes
|sw_tv=
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=Yes
|sw_4g=No
|sw_bluetooth=Yes, [[#Bluetooth|see notes]]
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=120mW
|sw_standbytime=
}}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
=== Updating Android ===
This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
=== Setting up kexecboot ===
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
=== Install Maemo Leste to the sdcard ===
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab the latest image from https://phoenix.maemo.org/view/Images/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Bluetooth ==
Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Wifi ====
The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this:
Read modem output:
<pre>
cat /dev/motmdm1 &
</pre>
Online modem:
<pre>
printf "AT+CFUN=1\r" > /dev/motmdm1
</pre>
Connect to network:
<pre>
printf "AT+COPS=1\r" > /dev/motmdm1
</pre>
Print connected network:
</pre>
printf "AT+COPS?\r" > /dev/motmdm1
Turn off signal reporting:
<pre>
# printf "AT+SCRN=0\r" > /dev/motmdm1
</pre>
Dial a number:
<pre>
printf "ATD+1234567890\r" > /dev/motmdm1
</pre>
Hang up:
<pre>
printf "ATH\r" > /dev/motmdm1
</pre>
Answer incoming call:
<pre>
printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired.
==== 3G Internet ====
Using qmicli:
qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
route del default
sudo ifconfig wwan0 up
dhclient wwan0
Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed.
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
==== HDMI ====
Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier.
<pre>
xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off
</pre>
Return to internal touchscreen display.
<pre>
xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off
</pre>
==== Keyboard / Mouse sharing with PC ====
To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4.
<pre>
[https://github.com/debauchee/barrier Barrier software-KVM switch]
</pre>
Developers and testers may wish to disable the googley bits before compiling.
==== BT Audio headset ====
sudo apt install pulseaudio-module-bluetooth blueman bluez
sudo modprobe hci_uart
pactl load-module module-bluetooth-discover
blueman
Pair & trust your device, connect audiosink. You can close blueman now. The quality seems a bit better in 'offline mode'.
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
Cant_have_2_much_leste.jpg
Leste-neverball.jpg
Statsfun.jpg
Leste-glmatrix.png
Droid4-leste-utox2.jpg
Droid4-leste-pcsx.jpg
Droid4-leste-surf_master.jpg
</gallery>
== Old status overview ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Implemented with Pulseaudio and UCM files
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || Yes || Available in /sys, and as input device via iio-uinput
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)
|-
| Gyro || N/A ||
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/
|-
| Idle power consumption || ~120mW || Needs sim inserted
|}
[[Category:Device]]
57539bad3b3732ffc91555bdf1869b37f7197fdd
1115
1114
2021-06-03T17:07:56Z
BuZz
32
/* BT Audio headset */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
|category=Supported
|sw_kernel=5.11.0
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Yes
|sw_usb_host=Yes
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=Yes
|sw_tv=
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=Yes
|sw_4g=No
|sw_bluetooth=Yes, [[#Bluetooth|see notes]]
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=120mW
|sw_standbytime=
}}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
=== Updating Android ===
This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
=== Setting up kexecboot ===
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
=== Install Maemo Leste to the sdcard ===
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab the latest image from https://phoenix.maemo.org/view/Images/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Bluetooth ==
Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Wifi ====
The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this:
Read modem output:
<pre>
cat /dev/motmdm1 &
</pre>
Online modem:
<pre>
printf "AT+CFUN=1\r" > /dev/motmdm1
</pre>
Connect to network:
<pre>
printf "AT+COPS=1\r" > /dev/motmdm1
</pre>
Print connected network:
</pre>
printf "AT+COPS?\r" > /dev/motmdm1
Turn off signal reporting:
<pre>
# printf "AT+SCRN=0\r" > /dev/motmdm1
</pre>
Dial a number:
<pre>
printf "ATD+1234567890\r" > /dev/motmdm1
</pre>
Hang up:
<pre>
printf "ATH\r" > /dev/motmdm1
</pre>
Answer incoming call:
<pre>
printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired.
==== 3G Internet ====
Using qmicli:
qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
route del default
sudo ifconfig wwan0 up
dhclient wwan0
Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed.
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
==== HDMI ====
Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier.
<pre>
xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off
</pre>
Return to internal touchscreen display.
<pre>
xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off
</pre>
==== Keyboard / Mouse sharing with PC ====
To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4.
<pre>
[https://github.com/debauchee/barrier Barrier software-KVM switch]
</pre>
Developers and testers may wish to disable the googley bits before compiling.
==== BT Audio headset ====
sudo apt install pulseaudio-module-bluetooth blueman bluez
sudo modprobe hci_uart
pactl load-module module-bluetooth-discover
blueman-manager
Pair & trust your device in blueman, connect audiosink. You can close blueman now. The quality seems a bit better in 'offline mode'.
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
Cant_have_2_much_leste.jpg
Leste-neverball.jpg
Statsfun.jpg
Leste-glmatrix.png
Droid4-leste-utox2.jpg
Droid4-leste-pcsx.jpg
Droid4-leste-surf_master.jpg
</gallery>
== Old status overview ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Implemented with Pulseaudio and UCM files
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || Yes || Available in /sys, and as input device via iio-uinput
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)
|-
| Gyro || N/A ||
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/
|-
| Idle power consumption || ~120mW || Needs sim inserted
|}
[[Category:Device]]
cadef4c75c2b731fb4052d0bc03c3a065d2bc335
1118
1115
2021-06-29T09:55:00Z
Clort
42
added instructions for recalibrating wifi
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
|category=Supported
|sw_kernel=5.11.0
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Yes
|sw_usb_host=Yes
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=Yes
|sw_tv=
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=Yes
|sw_4g=No
|sw_bluetooth=Yes, [[#Bluetooth|see notes]]
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=120mW
|sw_standbytime=
}}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
=== Updating Android ===
This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
=== Setting up kexecboot ===
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
=== Install Maemo Leste to the sdcard ===
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab the latest image from https://phoenix.maemo.org/view/Images/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Bluetooth ==
Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Wifi ====
The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this:
Read modem output:
<pre>
cat /dev/motmdm1 &
</pre>
Online modem:
<pre>
printf "AT+CFUN=1\r" > /dev/motmdm1
</pre>
Connect to network:
<pre>
printf "AT+COPS=1\r" > /dev/motmdm1
</pre>
Print connected network:
</pre>
printf "AT+COPS?\r" > /dev/motmdm1
Turn off signal reporting:
<pre>
# printf "AT+SCRN=0\r" > /dev/motmdm1
</pre>
Dial a number:
<pre>
printf "ATD+1234567890\r" > /dev/motmdm1
</pre>
Hang up:
<pre>
printf "ATH\r" > /dev/motmdm1
</pre>
Answer incoming call:
<pre>
printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired.
==== 3G Internet ====
Using qmicli:
qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
route del default
sudo ifconfig wwan0 up
dhclient wwan0
Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed.
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
==== HDMI ====
Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier.
<pre>
xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off
</pre>
Return to internal touchscreen display.
<pre>
xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off
</pre>
==== Keyboard / Mouse sharing with PC ====
To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4.
<pre>
[https://github.com/debauchee/barrier Barrier software-KVM switch]
</pre>
Developers and testers may wish to disable the googley bits before compiling.
==== BT Audio headset ====
sudo apt install pulseaudio-module-bluetooth blueman bluez
sudo modprobe hci_uart
pactl load-module module-bluetooth-discover
blueman-manager
Pair & trust your device in blueman, connect audiosink. You can close blueman now. The quality seems a bit better in 'offline mode'.
== Using a configured Leste sdcard in a different Droid4 ==
A configured Droid4 Leste installation is unique to the device that it was calibrated on. Particularly the wlan firmware calibration will be incorrect if an existing Leste installation is transferred to a different device.
To recalibrate the wifi firmware on a different Droid4, you must reset the FEM parameters to stock settings on the new device:
apt reinstall ti-firmware-connectivity
Then (as root) re-calibrate the wifi chip by running
/usr/bin/maserati-calibrate
Then reboot.
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
Cant_have_2_much_leste.jpg
Leste-neverball.jpg
Statsfun.jpg
Leste-glmatrix.png
Droid4-leste-utox2.jpg
Droid4-leste-pcsx.jpg
Droid4-leste-surf_master.jpg
</gallery>
== Old status overview ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Implemented with Pulseaudio and UCM files
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || Yes || Available in /sys, and as input device via iio-uinput
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)
|-
| Gyro || N/A ||
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/
|-
| Idle power consumption || ~120mW || Needs sim inserted
|}
[[Category:Device]]
dd75e8600f587025e4abd46c348bb36675181645
1119
1118
2021-06-29T10:01:32Z
Clort
42
/* Using a configured Leste sdcard in a different Droid4 */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
|category=Supported
|sw_kernel=5.11.0
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Yes
|sw_usb_host=Yes
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=Yes
|sw_tv=
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=Yes
|sw_4g=No
|sw_bluetooth=Yes, [[#Bluetooth|see notes]]
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=120mW
|sw_standbytime=
}}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
=== Updating Android ===
This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
=== Setting up kexecboot ===
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
=== Install Maemo Leste to the sdcard ===
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab the latest image from https://phoenix.maemo.org/view/Images/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Bluetooth ==
Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Wifi ====
The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this:
Read modem output:
<pre>
cat /dev/motmdm1 &
</pre>
Online modem:
<pre>
printf "AT+CFUN=1\r" > /dev/motmdm1
</pre>
Connect to network:
<pre>
printf "AT+COPS=1\r" > /dev/motmdm1
</pre>
Print connected network:
</pre>
printf "AT+COPS?\r" > /dev/motmdm1
Turn off signal reporting:
<pre>
# printf "AT+SCRN=0\r" > /dev/motmdm1
</pre>
Dial a number:
<pre>
printf "ATD+1234567890\r" > /dev/motmdm1
</pre>
Hang up:
<pre>
printf "ATH\r" > /dev/motmdm1
</pre>
Answer incoming call:
<pre>
printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired.
==== 3G Internet ====
Using qmicli:
qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
route del default
sudo ifconfig wwan0 up
dhclient wwan0
Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed.
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
==== HDMI ====
Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier.
<pre>
xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off
</pre>
Return to internal touchscreen display.
<pre>
xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off
</pre>
==== Keyboard / Mouse sharing with PC ====
To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4.
<pre>
[https://github.com/debauchee/barrier Barrier software-KVM switch]
</pre>
Developers and testers may wish to disable the googley bits before compiling.
==== BT Audio headset ====
sudo apt install pulseaudio-module-bluetooth blueman bluez
sudo modprobe hci_uart
pactl load-module module-bluetooth-discover
blueman-manager
Pair & trust your device in blueman, connect audiosink. You can close blueman now. The quality seems a bit better in 'offline mode'.
== Using a configured Leste sdcard in a different Droid4 ==
A configured Droid4 Leste installation is unique to the device that it was calibrated on. Particularly the wlan firmware calibration will be incorrect if an existing Leste installation is transferred to a different device.
To recalibrate the wifi firmware on a different Droid4, you must reset the FEM parameters to stock settings on the new device, then recalibrate. The calibration script requires stock settings to calibrate-from. It cannot just be re-run on an already calibrated system.
If you can get the device online (usb networking or moving close to the WLAN AP) this can be done with.
apt reinstall ti-firmware-connectivity
If not, you can download the firmware-ti-connectivity_[version]_all.deb on another Leste device
apt download firmware-ti-connectivity
Then copy the .deb to your new device and install that (as root) with
dpkg -i firmware-ti-connectivity_[version]_all.deb
Then (as root) re-calibrate the wifi chip by running
/usr/bin/maserati-calibrate
Then reboot.
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
Cant_have_2_much_leste.jpg
Leste-neverball.jpg
Statsfun.jpg
Leste-glmatrix.png
Droid4-leste-utox2.jpg
Droid4-leste-pcsx.jpg
Droid4-leste-surf_master.jpg
</gallery>
== Old status overview ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Implemented with Pulseaudio and UCM files
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || Yes || Available in /sys, and as input device via iio-uinput
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)
|-
| Gyro || N/A ||
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/
|-
| Idle power consumption || ~120mW || Needs sim inserted
|}
[[Category:Device]]
fc45b03b0a1681fe9ad81cbc321da42160ec844f
1120
1119
2021-06-29T10:02:49Z
Clort
42
/* Using a configured Leste sdcard in a different Droid4 */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
|category=Supported
|sw_kernel=5.11.0
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Yes
|sw_usb_host=Yes
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=Yes
|sw_tv=
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=Yes
|sw_4g=No
|sw_bluetooth=Yes, [[#Bluetooth|see notes]]
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=120mW
|sw_standbytime=
}}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
=== Updating Android ===
This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
=== Setting up kexecboot ===
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
=== Install Maemo Leste to the sdcard ===
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab the latest image from https://phoenix.maemo.org/view/Images/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Bluetooth ==
Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Wifi ====
The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this:
Read modem output:
<pre>
cat /dev/motmdm1 &
</pre>
Online modem:
<pre>
printf "AT+CFUN=1\r" > /dev/motmdm1
</pre>
Connect to network:
<pre>
printf "AT+COPS=1\r" > /dev/motmdm1
</pre>
Print connected network:
</pre>
printf "AT+COPS?\r" > /dev/motmdm1
Turn off signal reporting:
<pre>
# printf "AT+SCRN=0\r" > /dev/motmdm1
</pre>
Dial a number:
<pre>
printf "ATD+1234567890\r" > /dev/motmdm1
</pre>
Hang up:
<pre>
printf "ATH\r" > /dev/motmdm1
</pre>
Answer incoming call:
<pre>
printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired.
==== 3G Internet ====
Using qmicli:
qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
route del default
sudo ifconfig wwan0 up
dhclient wwan0
Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed.
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
==== HDMI ====
Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier.
<pre>
xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off
</pre>
Return to internal touchscreen display.
<pre>
xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off
</pre>
==== Keyboard / Mouse sharing with PC ====
To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4.
<pre>
[https://github.com/debauchee/barrier Barrier software-KVM switch]
</pre>
Developers and testers may wish to disable the googley bits before compiling.
==== BT Audio headset ====
sudo apt install pulseaudio-module-bluetooth blueman bluez
sudo modprobe hci_uart
pactl load-module module-bluetooth-discover
blueman-manager
Pair & trust your device in blueman, connect audiosink. You can close blueman now. The quality seems a bit better in 'offline mode'.
== Using a configured Leste sdcard in a different Droid4 ==
A configured Droid4 Leste installation is unique to the device that it was calibrated on. Particularly the wlan firmware calibration will be incorrect if an existing Leste installation is transferred to a different device.
The wifi calibration script requires a system set to stock settings to calibrate-from. It cannot just be re-run on an already calibrated system.
To recalibrate the wifi firmware on a different Droid4, you must reset the FEM parameters to stock settings on the new device, then recalibrate.
If you can get the device online (usb networking or moving close to the WLAN AP) this can be done with.
apt reinstall ti-firmware-connectivity
If not, you can download the firmware-ti-connectivity_[version]_all.deb on another Leste device
apt download firmware-ti-connectivity
Then copy the .deb to your new device and install that (as root) with
dpkg -i firmware-ti-connectivity_[version]_all.deb
Then (as root) re-calibrate the wifi chip by running
/usr/bin/maserati-calibrate
Then reboot.
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
Cant_have_2_much_leste.jpg
Leste-neverball.jpg
Statsfun.jpg
Leste-glmatrix.png
Droid4-leste-utox2.jpg
Droid4-leste-pcsx.jpg
Droid4-leste-surf_master.jpg
</gallery>
== Old status overview ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Implemented with Pulseaudio and UCM files
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || Yes || Available in /sys, and as input device via iio-uinput
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)
|-
| Gyro || N/A ||
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/
|-
| Idle power consumption || ~120mW || Needs sim inserted
|}
[[Category:Device]]
7622c8870fc9bc31c6c7922fea4feffd8fc7f368
1123
1120
2021-07-07T01:38:20Z
Clort
42
/* Gallery */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
|category=Supported
|sw_kernel=5.11.0
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Yes
|sw_usb_host=Yes
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=Yes
|sw_tv=
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=Yes
|sw_4g=No
|sw_bluetooth=Yes, [[#Bluetooth|see notes]]
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=120mW
|sw_standbytime=
}}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
=== Updating Android ===
This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
=== Setting up kexecboot ===
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
=== Install Maemo Leste to the sdcard ===
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab the latest image from https://phoenix.maemo.org/view/Images/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Bluetooth ==
Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Wifi ====
The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this:
Read modem output:
<pre>
cat /dev/motmdm1 &
</pre>
Online modem:
<pre>
printf "AT+CFUN=1\r" > /dev/motmdm1
</pre>
Connect to network:
<pre>
printf "AT+COPS=1\r" > /dev/motmdm1
</pre>
Print connected network:
</pre>
printf "AT+COPS?\r" > /dev/motmdm1
Turn off signal reporting:
<pre>
# printf "AT+SCRN=0\r" > /dev/motmdm1
</pre>
Dial a number:
<pre>
printf "ATD+1234567890\r" > /dev/motmdm1
</pre>
Hang up:
<pre>
printf "ATH\r" > /dev/motmdm1
</pre>
Answer incoming call:
<pre>
printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired.
==== 3G Internet ====
Using qmicli:
qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
route del default
sudo ifconfig wwan0 up
dhclient wwan0
Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed.
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
==== HDMI ====
Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier.
<pre>
xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off
</pre>
Return to internal touchscreen display.
<pre>
xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off
</pre>
==== Keyboard / Mouse sharing with PC ====
To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4.
<pre>
[https://github.com/debauchee/barrier Barrier software-KVM switch]
</pre>
Developers and testers may wish to disable the googley bits before compiling.
==== BT Audio headset ====
sudo apt install pulseaudio-module-bluetooth blueman bluez
sudo modprobe hci_uart
pactl load-module module-bluetooth-discover
blueman-manager
Pair & trust your device in blueman, connect audiosink. You can close blueman now. The quality seems a bit better in 'offline mode'.
== Using a configured Leste sdcard in a different Droid4 ==
A configured Droid4 Leste installation is unique to the device that it was calibrated on. Particularly the wlan firmware calibration will be incorrect if an existing Leste installation is transferred to a different device.
The wifi calibration script requires a system set to stock settings to calibrate-from. It cannot just be re-run on an already calibrated system.
To recalibrate the wifi firmware on a different Droid4, you must reset the FEM parameters to stock settings on the new device, then recalibrate.
If you can get the device online (usb networking or moving close to the WLAN AP) this can be done with.
apt reinstall ti-firmware-connectivity
If not, you can download the firmware-ti-connectivity_[version]_all.deb on another Leste device
apt download firmware-ti-connectivity
Then copy the .deb to your new device and install that (as root) with
dpkg -i firmware-ti-connectivity_[version]_all.deb
Then (as root) re-calibrate the wifi chip by running
/usr/bin/maserati-calibrate
Then reboot.
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
Cant_have_2_much_leste.jpg
Leste-neverball.jpg
Statsfun.jpg
Leste-glmatrix.png
Droid4-leste-utox2.jpg
Droid4-leste-pcsx.jpg
Droid4-leste-surf_master.jpg
Droid4_Daimonin_Hdmi.jpg
</gallery>
== Old status overview ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Implemented with Pulseaudio and UCM files
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || Yes || Available in /sys, and as input device via iio-uinput
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)
|-
| Gyro || N/A ||
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/
|-
| Idle power consumption || ~120mW || Needs sim inserted
|}
[[Category:Device]]
6e2ddd0ec85812336c5d862ed62a936c87dad8f9
1132
1123
2021-07-08T21:13:22Z
Clort
42
/* Using a configured Leste sdcard in a different Droid4 */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
|category=Supported
|sw_kernel=5.11.0
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Yes
|sw_usb_host=Yes
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=Yes
|sw_tv=
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=Yes
|sw_4g=No
|sw_bluetooth=Yes, [[#Bluetooth|see notes]]
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=120mW
|sw_standbytime=
}}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
=== Updating Android ===
This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
=== Setting up kexecboot ===
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
=== Install Maemo Leste to the sdcard ===
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab the latest image from https://phoenix.maemo.org/view/Images/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Bluetooth ==
Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Wifi ====
The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this:
Read modem output:
<pre>
cat /dev/motmdm1 &
</pre>
Online modem:
<pre>
printf "AT+CFUN=1\r" > /dev/motmdm1
</pre>
Connect to network:
<pre>
printf "AT+COPS=1\r" > /dev/motmdm1
</pre>
Print connected network:
</pre>
printf "AT+COPS?\r" > /dev/motmdm1
Turn off signal reporting:
<pre>
# printf "AT+SCRN=0\r" > /dev/motmdm1
</pre>
Dial a number:
<pre>
printf "ATD+1234567890\r" > /dev/motmdm1
</pre>
Hang up:
<pre>
printf "ATH\r" > /dev/motmdm1
</pre>
Answer incoming call:
<pre>
printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired.
==== 3G Internet ====
Using qmicli:
qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
route del default
sudo ifconfig wwan0 up
dhclient wwan0
Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed.
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
==== HDMI ====
Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier.
<pre>
xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off
</pre>
Return to internal touchscreen display.
<pre>
xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off
</pre>
==== Keyboard / Mouse sharing with PC ====
To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4.
<pre>
[https://github.com/debauchee/barrier Barrier software-KVM switch]
</pre>
Developers and testers may wish to disable the googley bits before compiling.
==== BT Audio headset ====
sudo apt install pulseaudio-module-bluetooth blueman bluez
sudo modprobe hci_uart
pactl load-module module-bluetooth-discover
blueman-manager
Pair & trust your device in blueman, connect audiosink. You can close blueman now. The quality seems a bit better in 'offline mode'.
== Using a configured Leste sdcard in a different Droid4 ==
A configured Droid4 Leste installation is unique to the device that it was calibrated on. Particularly the wlan firmware calibration will be incorrect if an existing Leste installation is transferred to a different device.
The wifi calibration script requires a system set to stock settings to calibrate-from. It cannot just be re-run on an already calibrated system.
To recalibrate the wifi firmware on a different Droid4, you must reset the FEM parameters to stock settings on the new device, then recalibrate.
If you can get the device online (usb networking or moving close to the WLAN AP) this can be done with.
apt reinstall firmware-ti-connectivity
If not, you can download the firmware-ti-connectivity_[version]_all.deb on another Leste device
apt download firmware-ti-connectivity
Then copy the .deb to your new device and install that (as root) with
dpkg -i firmware-ti-connectivity_[version]_all.deb
Then (as root) re-calibrate the wifi chip by running
/usr/bin/maserati-calibrate
Then reboot.
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
Cant_have_2_much_leste.jpg
Leste-neverball.jpg
Statsfun.jpg
Leste-glmatrix.png
Droid4-leste-utox2.jpg
Droid4-leste-pcsx.jpg
Droid4-leste-surf_master.jpg
Droid4_Daimonin_Hdmi.jpg
</gallery>
== Old status overview ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Implemented with Pulseaudio and UCM files
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || Yes || Available in /sys, and as input device via iio-uinput
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)
|-
| Gyro || N/A ||
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/
|-
| Idle power consumption || ~120mW || Needs sim inserted
|}
[[Category:Device]]
0096862dbc04697f2db738a588f4de65db45e29d
1137
1132
2021-07-24T11:46:47Z
BuZz
32
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati XT894
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
|category=Supported
|sw_kernel=5.11.0
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Yes
|sw_usb_host=Yes
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=Yes
|sw_tv=
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=Yes
|sw_4g=No
|sw_bluetooth=Yes, [[#Bluetooth|see notes]]
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=120mW
|sw_standbytime=
}}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
=== Updating Android ===
This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
=== Setting up kexecboot ===
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
=== Install Maemo Leste to the sdcard ===
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab the latest image from https://phoenix.maemo.org/view/Images/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Bluetooth ==
Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Wifi ====
The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this:
Read modem output:
<pre>
cat /dev/motmdm1 &
</pre>
Online modem:
<pre>
printf "AT+CFUN=1\r" > /dev/motmdm1
</pre>
Connect to network:
<pre>
printf "AT+COPS=1\r" > /dev/motmdm1
</pre>
Print connected network:
</pre>
printf "AT+COPS?\r" > /dev/motmdm1
Turn off signal reporting:
<pre>
# printf "AT+SCRN=0\r" > /dev/motmdm1
</pre>
Dial a number:
<pre>
printf "ATD+1234567890\r" > /dev/motmdm1
</pre>
Hang up:
<pre>
printf "ATH\r" > /dev/motmdm1
</pre>
Answer incoming call:
<pre>
printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired.
==== 3G Internet ====
Using qmicli:
qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
route del default
sudo ifconfig wwan0 up
dhclient wwan0
Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed.
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
==== HDMI ====
Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier.
<pre>
xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off
</pre>
Return to internal touchscreen display.
<pre>
xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off
</pre>
==== Keyboard / Mouse sharing with PC ====
To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4.
<pre>
[https://github.com/debauchee/barrier Barrier software-KVM switch]
</pre>
Developers and testers may wish to disable the googley bits before compiling.
==== BT Audio headset ====
sudo apt install pulseaudio-module-bluetooth blueman bluez
sudo modprobe hci_uart
pactl load-module module-bluetooth-discover
blueman-manager
Pair & trust your device in blueman, connect audiosink. You can close blueman now. The quality seems a bit better in 'offline mode'.
== Using a configured Leste sdcard in a different Droid4 ==
A configured Droid4 Leste installation is unique to the device that it was calibrated on. Particularly the wlan firmware calibration will be incorrect if an existing Leste installation is transferred to a different device.
The wifi calibration script requires a system set to stock settings to calibrate-from. It cannot just be re-run on an already calibrated system.
To recalibrate the wifi firmware on a different Droid4, you must reset the FEM parameters to stock settings on the new device, then recalibrate.
If you can get the device online (usb networking or moving close to the WLAN AP) this can be done with.
apt reinstall firmware-ti-connectivity
If not, you can download the firmware-ti-connectivity_[version]_all.deb on another Leste device
apt download firmware-ti-connectivity
Then copy the .deb to your new device and install that (as root) with
dpkg -i firmware-ti-connectivity_[version]_all.deb
Then (as root) re-calibrate the wifi chip by running
/usr/bin/maserati-calibrate
Then reboot.
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
Cant_have_2_much_leste.jpg
Leste-neverball.jpg
Statsfun.jpg
Leste-glmatrix.png
Droid4-leste-utox2.jpg
Droid4-leste-pcsx.jpg
Droid4-leste-surf_master.jpg
Droid4_Daimonin_Hdmi.jpg
</gallery>
== Old status overview ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Implemented with Pulseaudio and UCM files
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || Yes || Available in /sys, and as input device via iio-uinput
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)
|-
| Gyro || N/A ||
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/
|-
| Idle power consumption || ~120mW || Needs sim inserted
|}
[[Category:Device]]
7ceee01af263ef9f6e23e6d6925406c342f76fbd
1143
1137
2021-07-28T11:17:26Z
Clort
42
Added graphic of droid4 keyboard layout
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati XT894
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
|category=Supported
|sw_kernel=5.11.0
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Yes
|sw_usb_host=Yes
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=Yes
|sw_tv=
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=Yes
|sw_4g=No
|sw_bluetooth=Yes, [[#Bluetooth|see notes]]
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=120mW
|sw_standbytime=
}}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
=== Updating Android ===
This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
=== Setting up kexecboot ===
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
=== Install Maemo Leste to the sdcard ===
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab the latest image from https://phoenix.maemo.org/view/Images/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
The keyboard layout is extended to provide more standard keys.
[[File:Maemo-leste-droid4-kbd-2021-07.png|620px|thumb|left|maemo-leste droid4 keyboard]]
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Bluetooth ==
Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Wifi ====
The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this:
Read modem output:
<pre>
cat /dev/motmdm1 &
</pre>
Online modem:
<pre>
printf "AT+CFUN=1\r" > /dev/motmdm1
</pre>
Connect to network:
<pre>
printf "AT+COPS=1\r" > /dev/motmdm1
</pre>
Print connected network:
</pre>
printf "AT+COPS?\r" > /dev/motmdm1
Turn off signal reporting:
<pre>
# printf "AT+SCRN=0\r" > /dev/motmdm1
</pre>
Dial a number:
<pre>
printf "ATD+1234567890\r" > /dev/motmdm1
</pre>
Hang up:
<pre>
printf "ATH\r" > /dev/motmdm1
</pre>
Answer incoming call:
<pre>
printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired.
==== 3G Internet ====
Using qmicli:
qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
route del default
sudo ifconfig wwan0 up
dhclient wwan0
Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed.
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
==== HDMI ====
Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier.
<pre>
xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off
</pre>
Return to internal touchscreen display.
<pre>
xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off
</pre>
==== Keyboard / Mouse sharing with PC ====
To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4.
<pre>
[https://github.com/debauchee/barrier Barrier software-KVM switch]
</pre>
Developers and testers may wish to disable the googley bits before compiling.
==== BT Audio headset ====
sudo apt install pulseaudio-module-bluetooth blueman bluez
sudo modprobe hci_uart
pactl load-module module-bluetooth-discover
blueman-manager
Pair & trust your device in blueman, connect audiosink. You can close blueman now. The quality seems a bit better in 'offline mode'.
== Using a configured Leste sdcard in a different Droid4 ==
A configured Droid4 Leste installation is unique to the device that it was calibrated on. Particularly the wlan firmware calibration will be incorrect if an existing Leste installation is transferred to a different device.
The wifi calibration script requires a system set to stock settings to calibrate-from. It cannot just be re-run on an already calibrated system.
To recalibrate the wifi firmware on a different Droid4, you must reset the FEM parameters to stock settings on the new device, then recalibrate.
If you can get the device online (usb networking or moving close to the WLAN AP) this can be done with.
apt reinstall firmware-ti-connectivity
If not, you can download the firmware-ti-connectivity_[version]_all.deb on another Leste device
apt download firmware-ti-connectivity
Then copy the .deb to your new device and install that (as root) with
dpkg -i firmware-ti-connectivity_[version]_all.deb
Then (as root) re-calibrate the wifi chip by running
/usr/bin/maserati-calibrate
Then reboot.
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
Cant_have_2_much_leste.jpg
Leste-neverball.jpg
Statsfun.jpg
Leste-glmatrix.png
Droid4-leste-utox2.jpg
Droid4-leste-pcsx.jpg
Droid4-leste-surf_master.jpg
Droid4_Daimonin_Hdmi.jpg
</gallery>
== Old status overview ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Implemented with Pulseaudio and UCM files
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || Yes || Available in /sys, and as input device via iio-uinput
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)
|-
| Gyro || N/A ||
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/
|-
| Idle power consumption || ~120mW || Needs sim inserted
|}
[[Category:Device]]
51b6de173af3642b90bb2aaf8e58e52cf021c1a0
1145
1143
2021-07-28T11:28:52Z
Clort
42
/* Notes */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati XT894
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
|category=Supported
|sw_kernel=5.11.0
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Yes
|sw_usb_host=Yes
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=Yes
|sw_tv=
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=Yes
|sw_4g=No
|sw_bluetooth=Yes, [[#Bluetooth|see notes]]
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=120mW
|sw_standbytime=
}}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
=== Updating Android ===
This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
=== Setting up kexecboot ===
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
=== Install Maemo Leste to the sdcard ===
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab the latest image from https://phoenix.maemo.org/view/Images/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
The keyboard layout is extended to provide more standard keys.
[[File:Maemo-leste-droid4-kbd-2021-07.png|620px|thumb|left|maemo-leste droid4 keyboard]]
Key mapping can be tested with the 'xev' program.
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Bluetooth ==
Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Wifi ====
The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this:
Read modem output:
<pre>
cat /dev/motmdm1 &
</pre>
Online modem:
<pre>
printf "AT+CFUN=1\r" > /dev/motmdm1
</pre>
Connect to network:
<pre>
printf "AT+COPS=1\r" > /dev/motmdm1
</pre>
Print connected network:
</pre>
printf "AT+COPS?\r" > /dev/motmdm1
Turn off signal reporting:
<pre>
# printf "AT+SCRN=0\r" > /dev/motmdm1
</pre>
Dial a number:
<pre>
printf "ATD+1234567890\r" > /dev/motmdm1
</pre>
Hang up:
<pre>
printf "ATH\r" > /dev/motmdm1
</pre>
Answer incoming call:
<pre>
printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired.
==== 3G Internet ====
Using qmicli:
qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
route del default
sudo ifconfig wwan0 up
dhclient wwan0
Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed.
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
==== HDMI ====
Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier.
<pre>
xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off
</pre>
Return to internal touchscreen display.
<pre>
xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off
</pre>
==== Keyboard / Mouse sharing with PC ====
To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4.
<pre>
[https://github.com/debauchee/barrier Barrier software-KVM switch]
</pre>
Developers and testers may wish to disable the googley bits before compiling.
==== BT Audio headset ====
sudo apt install pulseaudio-module-bluetooth blueman bluez
sudo modprobe hci_uart
pactl load-module module-bluetooth-discover
blueman-manager
Pair & trust your device in blueman, connect audiosink. You can close blueman now. The quality seems a bit better in 'offline mode'.
== Using a configured Leste sdcard in a different Droid4 ==
A configured Droid4 Leste installation is unique to the device that it was calibrated on. Particularly the wlan firmware calibration will be incorrect if an existing Leste installation is transferred to a different device.
The wifi calibration script requires a system set to stock settings to calibrate-from. It cannot just be re-run on an already calibrated system.
To recalibrate the wifi firmware on a different Droid4, you must reset the FEM parameters to stock settings on the new device, then recalibrate.
If you can get the device online (usb networking or moving close to the WLAN AP) this can be done with.
apt reinstall firmware-ti-connectivity
If not, you can download the firmware-ti-connectivity_[version]_all.deb on another Leste device
apt download firmware-ti-connectivity
Then copy the .deb to your new device and install that (as root) with
dpkg -i firmware-ti-connectivity_[version]_all.deb
Then (as root) re-calibrate the wifi chip by running
/usr/bin/maserati-calibrate
Then reboot.
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
Cant_have_2_much_leste.jpg
Leste-neverball.jpg
Statsfun.jpg
Leste-glmatrix.png
Droid4-leste-utox2.jpg
Droid4-leste-pcsx.jpg
Droid4-leste-surf_master.jpg
Droid4_Daimonin_Hdmi.jpg
</gallery>
== Old status overview ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Implemented with Pulseaudio and UCM files
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || Yes || Available in /sys, and as input device via iio-uinput
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)
|-
| Gyro || N/A ||
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/
|-
| Idle power consumption || ~120mW || Needs sim inserted
|}
[[Category:Device]]
e2a7a1d6d25a52ff18a6230c184eec6b545e2420
Motorola Droid Bionic
0
111
1101
1075
2021-05-23T15:42:52Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Bionic.jpg|250px]]
|manufacturer=Motorola
|codename=Targa
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4.3"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, Kionix KXTf9 accelerometer, St L3GD20H Gyro, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
|category=Supported
|sw_kernel=5.10.4
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=No
|sw_touchscreen=Yes
|sw_keyboard=
|sw_screen=Yes
|sw_hdmi=Yes
|sw_tv=
|sw_3daccel=Yes, [[https://github.com/maemo-leste/pvr-omap4/|SGX540, closed driver|]]
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=untested
|sw_sms=Yes, no UI
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=Yes
|sw_4g=No
|sw_bluetooth=Yes, [[#Bluetooth|see notes]]
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=No, needs kernel work
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No, needs kernel/userspace work
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=70mW, needs sim inserted
|sw_standbytime=91.8h (with HW4X)
}}
== Installation ==
Hardware requirements:
* Droid Bionic with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux system
* Android Tools: fastboot adb
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
# Latest maemo-leste-1.0-armhf-bionic-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# droid4-kexecboot.img
Download or clone https://github.com/IMbackK/bionic-clown-boot
Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
Wait for sync to complete and insert MicroSD card into The Bionic. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normaly you can just apt update && apt dist-upgrade to update to the latest version. I for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab latest image from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 and Bionic both expose a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Bionic, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
== Bluetooth ==
Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
== Unlocking the modem for usage in Europe ==
Tony suggested these values, Wizzup confirmed it to work on his Bionic in Europe/Amsterdam.
<pre>
apt install build-essential
git clone https://github.com/tmlind/tcmdrw
cd tcmdrw
make
./tcmdrw 1877=8703E80400000200
./tcmdrw 6850=05
</pre>
Tony also writes:
<pre>
22:34 < tmlind> hmm so i had to do this for 3g gain: tcmdrw 1143=aaff0000, got that value from xt910 firmware i think, otherwise 3g signal was weak
22:43 < tmlind> Wizzup: great, the 1143 setting is for 1900 frequency only to get decent signal on t-mo in the us
</pre>
== Stuff to try ==
==== Wifi ====
The WL1271 Wifi chip in the Bionic has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
== Old status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.10.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| USB slave || Yes ||
|-
| USB host (OTG) || No ||
|-
| Touchscreen || Yes || Capacitive
|-
| Keyboard || N/A ||
|-
| Screen || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Vibration Motor || Yes ||
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| Phone calls || WIP || Untested
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Wifi || Yes ||
|-
| Ethernet || N/A ||
|-
| IrDA || N/A || Missing in hardware
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || No ||
|-
| Nfc || No || no hardware
|-
| Accelerometer || Yes ||
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration)
|-
| Gyro || No || needs kernel work
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| AGPS || No ||
|-
| Front Camera || No ||
|-
| Back Camera(s) || No ||
|-
| Idle power consumption || ~70 mW || Needs sim inserted
|-
| Idle Battery life on new battery || 91.8 h || With HW4X
|}
[[Category:Device]]
063026bfbb4b3276290b27a69cc8f3341963136e
1103
1101
2021-05-24T08:21:08Z
Uvos
39
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Bionic.jpg|250px]]
|manufacturer=Motorola
|codename=Targa
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4.3"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, Kionix KXTf9 accelerometer, St L3GD20H Gyro, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
|category=Supported
|sw_kernel=5.10.4
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=No
|sw_touchscreen=Yes
|sw_keyboard=
|sw_screen=Yes
|sw_hdmi=Yes
|sw_tv=
|sw_3daccel=Yes, [[https://github.com/maemo-leste/pvr-omap4/|SGX540, closed driver|]]
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=untested
|sw_sms=Yes, no UI
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=Yes
|sw_4g=No
|sw_bluetooth=Yes, [[#Bluetooth|see notes]]
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=No, needs kernel work
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No, needs kernel/userspace work
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=70mW, needs sim inserted
|sw_standbytime=91.8h (with HW4X)
}}
== Installation ==
Hardware requirements:
* Droid Bionic with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux system
* Android Tools: fastboot adb
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
# Latest maemo-leste-1.0-armhf-bionic-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# droid4-kexecboot.img
Download or clone https://github.com/IMbackK/bionic-clown-boot
Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
Wait for sync to complete and insert MicroSD card into The Bionic. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Notes ==
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 and Bionic both expose a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Bionic, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
== Bluetooth ==
Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
== Unlocking the modem for usage in Europe ==
Tony suggested these values, Wizzup confirmed it to work on his Bionic in Europe/Amsterdam.
<pre>
apt install build-essential
git clone https://github.com/tmlind/tcmdrw
cd tcmdrw
make
./tcmdrw 1877=8703E80400000200
./tcmdrw 6850=05
</pre>
Tony also writes:
<pre>
22:34 < tmlind> hmm so i had to do this for 3g gain: tcmdrw 1143=aaff0000, got that value from xt910 firmware i think, otherwise 3g signal was weak
22:43 < tmlind> Wizzup: great, the 1143 setting is for 1900 frequency only to get decent signal on t-mo in the us
</pre>
== Stuff to try ==
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
== Old status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.10.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| USB slave || Yes ||
|-
| USB host (OTG) || No ||
|-
| Touchscreen || Yes || Capacitive
|-
| Keyboard || N/A ||
|-
| Screen || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Vibration Motor || Yes ||
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| Phone calls || WIP || Untested
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Wifi || Yes ||
|-
| Ethernet || N/A ||
|-
| IrDA || N/A || Missing in hardware
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || No ||
|-
| Nfc || No || no hardware
|-
| Accelerometer || Yes ||
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration)
|-
| Gyro || No || needs kernel work
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| AGPS || No ||
|-
| Front Camera || No ||
|-
| Back Camera(s) || No ||
|-
| Idle power consumption || ~70 mW || Needs sim inserted
|-
| Idle Battery life on new battery || 91.8 h || With HW4X
|}
[[Category:Device]]
068eddc183f5ac845489faa9da466396027c9cb5
1107
1103
2021-06-01T16:23:00Z
Uvos
39
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Bionic.jpg|250px]]
|manufacturer=Motorola
|codename=Targa
|dimensions=127x67.3x12.7mm
|release_date=2011-09-8
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4.3"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, Kionix KXTf9 accelerometer, St L3GD20H Gyro, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
|category=Supported
|sw_kernel=5.10.4
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=No
|sw_touchscreen=Yes
|sw_keyboard=
|sw_screen=Yes
|sw_hdmi=Yes
|sw_tv=
|sw_3daccel=Yes, [[https://github.com/maemo-leste/pvr-omap4/|SGX540, closed driver|]]
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=untested
|sw_sms=Yes, no UI
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=Yes
|sw_4g=No
|sw_bluetooth=Yes, [[#Bluetooth|see notes]]
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=No, needs kernel work
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No, needs kernel/userspace work
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=70mW, needs sim inserted
|sw_standbytime=91.8h (with HW4X)
}}
== Installation ==
Hardware requirements:
* Droid Bionic with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux system
* Android Tools: fastboot adb
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
# Latest maemo-leste-1.0-armhf-bionic-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# droid4-kexecboot.img
Download or clone https://github.com/IMbackK/bionic-clown-boot
Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
Wait for sync to complete and insert MicroSD card into The Bionic. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Notes ==
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 and Bionic both expose a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Bionic, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
== Bluetooth ==
Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
== Unlocking the modem for usage in Europe ==
Tony suggested these values, Wizzup confirmed it to work on his Bionic in Europe/Amsterdam.
<pre>
apt install build-essential
git clone https://github.com/tmlind/tcmdrw
cd tcmdrw
make
./tcmdrw 1877=8703E80400000200
./tcmdrw 6850=05
</pre>
Tony also writes:
<pre>
22:34 < tmlind> hmm so i had to do this for 3g gain: tcmdrw 1143=aaff0000, got that value from xt910 firmware i think, otherwise 3g signal was weak
22:43 < tmlind> Wizzup: great, the 1143 setting is for 1900 frequency only to get decent signal on t-mo in the us
</pre>
== Stuff to try ==
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
== Old status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.10.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| USB slave || Yes ||
|-
| USB host (OTG) || No ||
|-
| Touchscreen || Yes || Capacitive
|-
| Keyboard || N/A ||
|-
| Screen || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Vibration Motor || Yes ||
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| Phone calls || WIP || Untested
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Wifi || Yes ||
|-
| Ethernet || N/A ||
|-
| IrDA || N/A || Missing in hardware
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || No ||
|-
| Nfc || No || no hardware
|-
| Accelerometer || Yes ||
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration)
|-
| Gyro || No || needs kernel work
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| AGPS || No ||
|-
| Front Camera || No ||
|-
| Back Camera(s) || No ||
|-
| Idle power consumption || ~70 mW || Needs sim inserted
|-
| Idle Battery life on new battery || 91.8 h || With HW4X
|}
[[Category:Device]]
9fa61a744e57aae5d5b4fb5e1d1fef84a9967fe5
1136
1107
2021-07-24T10:52:46Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Bionic.jpg|250px]]
|manufacturer=Motorola
|codename=Targa
|dimensions=127x67.3x12.7mm
|release_date=2011-09-8
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4.3"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, Kionix KXTf9 accelerometer, St L3GD20H Gyro, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
|category=Supported
|sw_kernel=5.10.4
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=No
|sw_touchscreen=Yes
|sw_keyboard=
|sw_screen=Yes
|sw_hdmi=Yes
|sw_tv=
|sw_3daccel=Yes, [[https://github.com/maemo-leste/pvr-omap4/|SGX540, closed driver|]]
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=untested
|sw_sms=Yes, no UI
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=Yes
|sw_4g=No
|sw_bluetooth=Yes, [[#Bluetooth|see notes]]
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=No, needs kernel work
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No, needs kernel/userspace work
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=70mW, needs sim inserted
|sw_standbytime=91.8h (with HW4X)
}}
== Installation ==
Hardware requirements:
* Droid Bionic with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux system
* Android Tools: fastboot adb
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
# Latest maemo-leste-1.0-armhf-bionic-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# droid4-kexecboot.img
Download or clone https://github.com/IMbackK/bionic-clown-boot
Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
Wait for sync to complete and insert MicroSD card into The Bionic. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Notes ==
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 and Bionic both expose a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Bionic, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
== Bluetooth ==
Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
== Unlocking the modem for usage in Europe ==
Tony suggested these values, Wizzup confirmed it to work on his Bionic in Europe/Amsterdam.
<pre>
apt install build-essential
git clone https://github.com/tmlind/tcmdrw
cd tcmdrw
make
./tcmdrw 1877=8703E80400000200
./tcmdrw 6850=05
</pre>
Tony also writes:
<pre>
22:34 < tmlind> hmm so i had to do this for 3g gain: tcmdrw 1143=aaff0000, got that value from xt910 firmware i think, otherwise 3g signal was weak
22:43 < tmlind> Wizzup: great, the 1143 setting is for 1900 frequency only to get decent signal on t-mo in the us
</pre>
<pre>
22:37 < tmlind> i also had to do tcmdrw 6850=05 for 3g voice to work properly
</pre>
== Stuff to try ==
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
== Old status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.10.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| USB slave || Yes ||
|-
| USB host (OTG) || No ||
|-
| Touchscreen || Yes || Capacitive
|-
| Keyboard || N/A ||
|-
| Screen || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Vibration Motor || Yes ||
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| Phone calls || WIP || Untested
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Wifi || Yes ||
|-
| Ethernet || N/A ||
|-
| IrDA || N/A || Missing in hardware
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || No ||
|-
| Nfc || No || no hardware
|-
| Accelerometer || Yes ||
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration)
|-
| Gyro || No || needs kernel work
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| AGPS || No ||
|-
| Front Camera || No ||
|-
| Back Camera(s) || No ||
|-
| Idle power consumption || ~70 mW || Needs sim inserted
|-
| Idle Battery life on new battery || 91.8 h || With HW4X
|}
[[Category:Device]]
a31fa89b14e00f35406014618f1831f3de5ac0b1
1138
1136
2021-07-24T11:48:30Z
BuZz
32
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Bionic.jpg|250px]]
|manufacturer=Motorola
|codename=Targa XT875
|dimensions=127x67.3x12.7mm
|release_date=2011-09-8
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4.3"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, Kionix KXTf9 accelerometer, St L3GD20H Gyro, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
|category=Supported
|sw_kernel=5.10.4
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=No
|sw_touchscreen=Yes
|sw_keyboard=
|sw_screen=Yes
|sw_hdmi=Yes
|sw_tv=
|sw_3daccel=Yes, [[https://github.com/maemo-leste/pvr-omap4/|SGX540, closed driver|]]
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=untested
|sw_sms=Yes, no UI
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=Yes
|sw_4g=No
|sw_bluetooth=Yes, [[#Bluetooth|see notes]]
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=No, needs kernel work
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No, needs kernel/userspace work
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=70mW, needs sim inserted
|sw_standbytime=91.8h (with HW4X)
}}
== Installation ==
Hardware requirements:
* Droid Bionic with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux system
* Android Tools: fastboot adb
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
# Latest maemo-leste-1.0-armhf-bionic-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# droid4-kexecboot.img
Download or clone https://github.com/IMbackK/bionic-clown-boot
Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
Wait for sync to complete and insert MicroSD card into The Bionic. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Notes ==
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 and Bionic both expose a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Bionic, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
== Bluetooth ==
Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
== Unlocking the modem for usage in Europe ==
Tony suggested these values, Wizzup confirmed it to work on his Bionic in Europe/Amsterdam.
<pre>
apt install build-essential
git clone https://github.com/tmlind/tcmdrw
cd tcmdrw
make
./tcmdrw 1877=8703E80400000200
./tcmdrw 6850=05
</pre>
Tony also writes:
<pre>
22:34 < tmlind> hmm so i had to do this for 3g gain: tcmdrw 1143=aaff0000, got that value from xt910 firmware i think, otherwise 3g signal was weak
22:43 < tmlind> Wizzup: great, the 1143 setting is for 1900 frequency only to get decent signal on t-mo in the us
</pre>
<pre>
22:37 < tmlind> i also had to do tcmdrw 6850=05 for 3g voice to work properly
</pre>
== Stuff to try ==
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
== Old status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.10.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| USB slave || Yes ||
|-
| USB host (OTG) || No ||
|-
| Touchscreen || Yes || Capacitive
|-
| Keyboard || N/A ||
|-
| Screen || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Vibration Motor || Yes ||
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| Phone calls || WIP || Untested
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Wifi || Yes ||
|-
| Ethernet || N/A ||
|-
| IrDA || N/A || Missing in hardware
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || No ||
|-
| Nfc || No || no hardware
|-
| Accelerometer || Yes ||
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration)
|-
| Gyro || No || needs kernel work
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| AGPS || No ||
|-
| Front Camera || No ||
|-
| Back Camera(s) || No ||
|-
| Idle power consumption || ~70 mW || Needs sim inserted
|-
| Idle Battery life on new battery || 91.8 h || With HW4X
|}
[[Category:Device]]
3295dec657cd539ba4f7e3514deaf3605ae93890
Main Page
0
1
1102
1018
2021-05-23T17:49:13Z
Wizzup
4
wikitext
text/x-wiki
= Description =
Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more.
You can find us on '''irc.libera.chat''', channel '''#maemo-leste'''.
For an overview of the current status, you might want to check out: [[Status]]
Maemo Leste is based on Devuan Beowulf (Debian Buster) and all the "supported" devices ship with recent Linux (mainline-based) kernels.
The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers.
For some devices, we have development images available, such as the N900. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software.
If you have not used Maemo before, you might want to check out some of the tips on the [[HowTo]] page.
== Getting Started ==
See [[Getting_Started|Getting Started]]
== Frequently Asked Questions ==
See [[Leste_FAQ|FAQ]]
== Devices ==
See [[:Category:Device]] (not all are fully supported)
== Extras packages with wiki pages ==
https://leste.maemo.org/Category:Extras
== Latest Images ==
https://phoenix.maemo.org/view/Images/
== Development ==
See [[Development]]
== Roadmap ==
=== Project milestones ===
https://github.com/maemo-leste/bugtracker/milestones
=== Wishlist ===
You have an application you want to see in Leste? Please let us know [[Wishlist|here]].
== Talks ==
See [[Talks]]
== Links ==
<div>
The central point of meeting and talking is IRC (irc.libera.chat in #maemo-leste) and this thread: https://talk.maemo.org/showthread.php?t=100192.
*Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io]
*Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues]
*Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/]
*Our Extras Github: [https://github.com/maemo-leste-extras/ https://github.com/maemo-leste-extras/]
*Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] and https://phoenix.maemo.org/view/Images/
*Our Jenkins build server: [https://phoenix.maemo.org/ https://phoenix.maemo.org/]
*Our IRC history: [http://maedevu.maemo.org/irc.txt http://maedevu.maemo.org/irc.txt] and https://freenode.irclog.whitequark.org/maemo-leste/
*Our YouTube channel: [https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w] (via [https://www.invidio.us/channel/UCgAWiHvWSuJAg5hjk7JYn1w Invidious] )
*Our Package index: [https://maedevu.maemo.org/pkgweb/ https://maedevu.maemo.org/pkgweb/] which runs [https://github.com/maemo-leste/mpi https://github.com/maemo-leste/mpi]
*Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
*RSS feed: [https://maemo-leste.github.io/feeds/all.atom.xml https://maemo-leste.github.io/feeds/all.atom.xml]
*[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)]
</div>
80f3a41885e0a843068b731cb664355da3aaaa1c
1116
1102
2021-06-12T09:44:24Z
Parazyd
1
wikitext
text/x-wiki
= Description =
Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more.
You can find us on '''irc.libera.chat''', channel '''#maemo-leste'''.
For an overview of the current status, you might want to check out: [[Status]]
Maemo Leste is based on Devuan Beowulf (Debian Buster) and all the "supported" devices ship with recent Linux (mainline-based) kernels.
The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers.
For some devices, we have development images available, such as the N900. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software.
If you have not used Maemo before, you might want to check out some of the tips on the [[HowTo]] page.
== Getting Started ==
See [[Getting_Started|Getting Started]]
== Frequently Asked Questions ==
See [[Leste_FAQ|FAQ]]
== Devices ==
See [[:Category:Device]] (not all are fully supported)
== Extras packages with wiki pages ==
https://leste.maemo.org/Category:Extras
== Latest Images ==
https://phoenix.maemo.org/view/Images/
== Development ==
See [[Development]]
== Roadmap ==
=== Project milestones ===
https://github.com/maemo-leste/bugtracker/milestones
=== Wishlist ===
You have an application you want to see in Leste? Please let us know [[Wishlist|here]].
== Talks ==
See [[Talks]]
== Links ==
<div>
The central point of meeting and talking is IRC (irc.libera.chat in #maemo-leste) and this thread: https://talk.maemo.org/showthread.php?t=100192.
*Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io]
*Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues]
*Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/]
*Our Extras Github: [https://github.com/maemo-leste-extras/ https://github.com/maemo-leste-extras/]
*Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] and https://phoenix.maemo.org/view/Images/
*Our Jenkins build server: [https://phoenix.maemo.org/ https://phoenix.maemo.org/]
*Our IRC history: [http://maedevu.maemo.org/irc.txt http://maedevu.maemo.org/irc.txt] and https://freenode.irclog.whitequark.org/maemo-leste/
*Our YouTube channel: [https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w] (via [https://www.invidio.us/channel/UCgAWiHvWSuJAg5hjk7JYn1w Invidious] )
*Our Package index and info: [https://maedevu.maemo.org/pkgweb/ https://maedevu.maemo.org/pkgweb/] which runs [https://github.com/maemo-leste/mpi https://github.com/maemo-leste/mpi]
*Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
*RSS feed: [https://maemo-leste.github.io/feeds/all.atom.xml https://maemo-leste.github.io/feeds/all.atom.xml]
*[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)]
</div>
23b73a0c09850977e9110fb2b28819bba905005d
Leste FAQ
0
62
1104
774
2021-05-25T05:24:05Z
Parazyd
1
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is an operating system based on GNU/Linux that is currently in development. It is aimed at mobile devices with touch screens such as smartphones, tablets and PDAs.
It is built on top of '''[https://devuan.org/ Devuan]''', and thus indirectly based on [https://www.debian.org/ Debian]. Essentially, it is a modernised and liberated version of '''[https://en.wikipedia.org/wiki/Maemo#Maemo_5 Maemo 5/Fremantle]'''; the last version of the mobile Linux OS from Nokia that was released in 2009 for the [https://en.wikipedia.org/wiki/Nokia_N900 Nokia N900] internet tablet/smartphone. Unlike its predecessor which only ran on a single device, Maemo Leste runs on a variety of devices. It also uses a '''[[#What_is_mainline_Linux.3F|mainline Linux]]''' kernel.
In Maemo Leste, closed-source packages that originate from Fremantle have been reversed engineered, liberated, updated and rebuilt; whilst open-source Fremantle packages have been updated to newer libraries and APIs, including [https://en.wikipedia.org/wiki/Hildon Hildon], the mobile user interface from Fremantle.
Building on top an actively developed Linux distribution makes Maemo Leste maintenance sustainable. Fremantle was built on top of Debian packages forked from several versions of Debian, leaving the onus on Nokia to maintain every single package. Leste however, utilises Devuan's package repositories meaning that much of the heavy lifting is already done by upstream; we only have to manage and maintain a limited set of packages. This also gives us the benefit of having access to over 20,000 packages from upstream, immediately available for installation in Maemo Leste.
All in all, Maemo Leste aims to provide an unconstrained and free mobile Linux distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
Today's smartphone industry is dominated by the duopoly of Apple and Google with their iOS and Android operating systems. This leaves those of us who value information privacy and software freedoms with virtually no options when it comes to choosing a smartphone. Some pretenders have tried to change this but have ultimately [[#How_about_other_popular_non-Android_mobile_Linux_distributions.3F|fallen short in some areas]]. Maemo Leste aims to put an end to this dire situation. We provide a ''true'' GNU/Linux experience which evolves along with the base Linux distribution from which it is built on top of. Maemo Leste is the only multi-device mobile Linux distribution that prioritises the use of mainline Linux. We hope that Maemo Leste will help to raise awareness of the [[#Why_is_it_important_to_run_mainline_Linux.3F|importance of running mainline Linux]] which may eventually lead to increased consumer demand for devices that are compatible with mainline Linux, leading to improved options when choosing a smartphone.
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle.
We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired.
Halium uses kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel, may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long-term supported stable releases.
=== What's wrong with Android (vendor) kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained by vendors with almost no effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices on the market, all with kernels based on Linux; yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline].
=== Does Maemo Leste run with pure mainline Linux? ===
The primary devices that we support can run with a pure mainline Linux kernel, however right now our images use mainline plus a few patches. As we are still in the early phases of development, our current priority is to ensure that our supported devices are as fully functional as they can possibly be, thus the additional patches help to achieve this. We have already upstreamed some of our patches and our goal is to upstream the remaining ones to be able to switch to using a 100% mainline kernel on our devices.
=== Is Maemo Leste completely free? ===
Unfortunately not. There is still no smartphone available that is fully functional without the use of [https://en.wikipedia.org/wiki/Proprietary_device_driver binary blobs]. Our primary supported devices currently require closed firmware to be able to use Wi-Fi and Bluetooth, and the TI OMAP-based devices have integrated PowerVR video hardware which require closed user space drivers for video acceleration. It's an unfortunate state of affairs, however progress is being made, and the PinePhone is a great example of this as it can have video acceleration with the Lima driver which is 100% free software.
Our current goal is to provide full functionality for our supported devices, however there are plans to additionally provide a blob-free, libre version of Maemo Leste with missing functionality where blobs would be required.
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs Android kernels but also mainline Linux kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk]).
=== How about other popular non-Android mobile Linux distributions? ===
The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided.
One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution.
Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland.
Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_kernels.3F|Android kernels]], which favours device compatibility and ease of device porting, at the expense of software freedoms.
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticeable in the project).
Maemo Fremantle uses the ''upstart'' init system. We initially chose Devuan because we figured Devuan might support upstart to some degree as well, so we would not have to deal with rewriting the init scripts (although we ended up rewriting them anyway as Maemo Leste now uses OpenRC). Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Are there any technical merits in using System V init with OpenRC instead of systemd? ===
Not wanting to turn this into a systemd debate; there are already plenty of places on the internet where you can read up on the pros and cons of systemd. Both init systems have their merits. System V init with OpenRC does not provide as many features as systemd, but perhaps its main advantage is architectural. systemd now has [https://www.phoronix.com/scan.php?page=news_item&px=systemd-2019-stats over 1.2 million lines of code]; this complexity increases the [https://2h73ayp5jhv44aq9p3zmp9gd-wpengine.netdna-ssl.com/wp-content/uploads/2017/08/GaugingSoftwareReadinessWithDefectTracking.pdf defect density] and [https://docs.microsoft.com/en-us/archive/msdn-magazine/2004/november/security-tips-minimizing-the-code-you-expose-to-untrusted-users attack surface]. Although traditional init is flawed in several aspects, we believe that its loose coupling of components help to provide better reliability, stability and security.
=== Can Maemo Leste work with a Debian/systemd base? ===
Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Work has begun to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste.
=== musl libc kicks arse. Can I use Maemo Leste with musl? ===
We love musl libc too. musl provides a lean, efficient and standards-compliant implementation of libc. What's not to like? Well unfortunately a lot of software built for Linux is glibc-dependent and is not standards-compliant. Rebuilding this software with musl can result in unexpected runtime behaviour or bugs. musl would be an extra hurdle that we don't really need right now. Still, it would be nice to one day see Maemo Leste rebuilt against musl and might make for an interesting future project, but until then, make sure you check out postmarketOS.
=== What devices does Maemo Leste work on? ===
Our currently list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve. As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. There are plans to make this process easier, however don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
=== Are ARM packages Thumb-compiled? ===
Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb
=== How to translate Maemo Leste into my language? ===
We have our translation source files on Weblate, so anyone can contribute. See our [[Localization]] page for more information.
685a0d027e0552892fc6ce8bd72bb08933474fff
Status/Wireless
0
78
1108
988
2021-06-02T11:44:48Z
Wizzup
4
wikitext
text/x-wiki
Client mode should just work using the UI.
== Features ==
* Open, WEP, WPA PSK and EAP networks should just work
== Known bugs / To do ==
* Hidden APs do not fully work yet: https://github.com/maemo-leste/bugtracker/issues/489
* Flight mode might not disable wifi: https://github.com/maemo-leste/bugtracker/issues/190 / https://github.com/maemo-leste/bugtracker/issues/397
* Server certificates are not verified currently: https://github.com/maemo-leste/bugtracker/issues/137
* Scan results could be returned sooner: https://github.com/maemo-leste/bugtracker/issues/342
* easy-wlan wizard might be a bit buggy: https://github.com/maemo-leste/bugtracker/issues/221
To do:
* Support passive scans: https://github.com/maemo-leste/bugtracker/issues/149
* Support more/new EAP methods: https://github.com/maemo-leste/bugtracker/issues/145
* Ad-Hoc mode not supported yet: https://github.com/maemo-leste/bugtracker/issues/154
* Support WPA3/SAE
* Integration with hotspot missing
* Support wifi powersaving: https://github.com/maemo-leste/bugtracker/issues/172
* Set the regdomain country based on ofono modem data (country)
== Mobile Hotspot ==
There is no UI for this yet.
To share your mobile data over wireless, you will need to install dnsmasq and hostapd.
You will want to set `wpa=2`, `ssid=` and `wpa_passphrase` in hostapd.conf, like so (of course, there might be other options that are set):
<pre>
wpa=2
ssid=Internet
wpa_passphrase=secureinternetpassword
</pre>
You can copy the example config files to /etc/hostapd/
For /etc/dnsmasq.conf, make sure `interface=` includes at least `lo,wlan0`, like so:
<pre>
interface=lo,wlan0
</pre>
You might also want to change `dhcp-range=` in the config file to match the subnet of your wireless interface ip, per our example:
<pre>
dhcp-range=192.168.44.50,192.168.44.150,12h
</pre>
Then restart dnsmasq.
Next, configure iptables:
<pre>
sudo iptables -A POSTROUTING -t nat -s 192.168.44.1/24 -j MASQUERADE
sysctl -w net.ipv4.ip_forward=1
</pre>
And finally bring up the interface and run hostapd:
<pre>
sudo ifconfig wlan0 192.168.44.2
sudo hostapd -i wlan0 /etc/hostapd/hostapd.conf
</pre>
e3228def5aa719e4449d9a8da8e2d3f803c95d69
1109
1108
2021-06-02T11:45:21Z
Wizzup
4
wikitext
text/x-wiki
Client mode should just work using the UI.
== Features ==
Open, WEP, WPA PSK and EAP networks should just work. Day to day usage should work fine.
== Known bugs / To do ==
* Hidden APs do not fully work yet: https://github.com/maemo-leste/bugtracker/issues/489
* Flight mode might not disable wifi: https://github.com/maemo-leste/bugtracker/issues/190 / https://github.com/maemo-leste/bugtracker/issues/397
* Server certificates are not verified currently: https://github.com/maemo-leste/bugtracker/issues/137
* Scan results could be returned sooner: https://github.com/maemo-leste/bugtracker/issues/342
* easy-wlan wizard might be a bit buggy: https://github.com/maemo-leste/bugtracker/issues/221
To do:
* Support passive scans: https://github.com/maemo-leste/bugtracker/issues/149
* Support more/new EAP methods: https://github.com/maemo-leste/bugtracker/issues/145
* Ad-Hoc mode not supported yet: https://github.com/maemo-leste/bugtracker/issues/154
* Support WPA3/SAE
* Integration with hotspot missing
* Support wifi powersaving: https://github.com/maemo-leste/bugtracker/issues/172
* Set the regdomain country based on ofono modem data (country)
== Mobile Hotspot ==
There is no UI for this yet.
To share your mobile data over wireless, you will need to install dnsmasq and hostapd.
You will want to set `wpa=2`, `ssid=` and `wpa_passphrase` in hostapd.conf, like so (of course, there might be other options that are set):
<pre>
wpa=2
ssid=Internet
wpa_passphrase=secureinternetpassword
</pre>
You can copy the example config files to /etc/hostapd/
For /etc/dnsmasq.conf, make sure `interface=` includes at least `lo,wlan0`, like so:
<pre>
interface=lo,wlan0
</pre>
You might also want to change `dhcp-range=` in the config file to match the subnet of your wireless interface ip, per our example:
<pre>
dhcp-range=192.168.44.50,192.168.44.150,12h
</pre>
Then restart dnsmasq.
Next, configure iptables:
<pre>
sudo iptables -A POSTROUTING -t nat -s 192.168.44.1/24 -j MASQUERADE
sysctl -w net.ipv4.ip_forward=1
</pre>
And finally bring up the interface and run hostapd:
<pre>
sudo ifconfig wlan0 192.168.44.2
sudo hostapd -i wlan0 /etc/hostapd/hostapd.conf
</pre>
ad5d9f65e67a961ce62e982399e7129bf7d7040f
1110
1109
2021-06-02T11:46:24Z
Wizzup
4
wikitext
text/x-wiki
Client mode should just work using the UI.
== Features ==
Open, WEP, WPA PSK and EAP networks should just work. Day to day usage should work fine.
== Known bugs / To do ==
* Hidden APs do not fully work yet: https://github.com/maemo-leste/bugtracker/issues/489
* Flight mode might not disable wifi: https://github.com/maemo-leste/bugtracker/issues/190 / https://github.com/maemo-leste/bugtracker/issues/397
* Server certificates are not verified currently: https://github.com/maemo-leste/bugtracker/issues/137
* Scan results could be returned sooner: https://github.com/maemo-leste/bugtracker/issues/342
* easy-wlan wizard might be a bit buggy: https://github.com/maemo-leste/bugtracker/issues/221
To do:
* Improve wpa_supplicant dbus handling code to pick up new interfaces and deal with them somehow (as opposed to hardcoding one interface)
* Support passive scans: https://github.com/maemo-leste/bugtracker/issues/149
* Support more/new EAP methods: https://github.com/maemo-leste/bugtracker/issues/145
* Ad-Hoc mode not supported yet: https://github.com/maemo-leste/bugtracker/issues/154
* Support WPA3/SAE
* Integration with hotspot missing
* Support wifi powersaving: https://github.com/maemo-leste/bugtracker/issues/172
* Set the regdomain country based on ofono modem data (country)
== Mobile Hotspot ==
There is no UI for this yet.
To share your mobile data over wireless, you will need to install dnsmasq and hostapd.
You will want to set `wpa=2`, `ssid=` and `wpa_passphrase` in hostapd.conf, like so (of course, there might be other options that are set):
<pre>
wpa=2
ssid=Internet
wpa_passphrase=secureinternetpassword
</pre>
You can copy the example config files to /etc/hostapd/
For /etc/dnsmasq.conf, make sure `interface=` includes at least `lo,wlan0`, like so:
<pre>
interface=lo,wlan0
</pre>
You might also want to change `dhcp-range=` in the config file to match the subnet of your wireless interface ip, per our example:
<pre>
dhcp-range=192.168.44.50,192.168.44.150,12h
</pre>
Then restart dnsmasq.
Next, configure iptables:
<pre>
sudo iptables -A POSTROUTING -t nat -s 192.168.44.1/24 -j MASQUERADE
sysctl -w net.ipv4.ip_forward=1
</pre>
And finally bring up the interface and run hostapd:
<pre>
sudo ifconfig wlan0 192.168.44.2
sudo hostapd -i wlan0 /etc/hostapd/hostapd.conf
</pre>
ab77bc08f4b658eff218b3e534ab56d13bc59c1b
Getting Started
0
105
1117
1004
2021-06-16T16:23:20Z
Sicelo
5
Make cal issue clear
wikitext
text/x-wiki
= Installation to SD Card =
After updating device firmware with included script (eg. flash-droid-4-fw.sh):
Download an image appropriate for your device from [http://maedevu.maemo.org/images/]
Insert a microsd card into your computer and find the device with cat /proc/partitions
Decompress and write the image to your microsd card device:
xzcat maemo-leste-VERSION.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
= Expand the root partition to fill SD card =
A helpful script is included to expand the root partition to fill the microSD card.
After booting and logging in to root, execute: /etc/expandcard.sh
This will expand the root partition to fill the microSD card using resize2fs.
= (SSH) Login =
User credentials are: '''user:user'''
Root credentials are: '''root:toor'''
You should prefer logging in as user and then escalating to root with sudo as necessary.
In images newer than 17 January 2021, root SSH is disabled by default.
= Useful Bits =
== Lock Code (applies to N900 only) ==
* Default lockcode is "12345"
* Lockcode can only be changed/used on [[Nokia_N900|N900]], since the current implementation depends on a special "cal" partition. QEMU and all other Leste supported devices do not have it. (TODO: Confirm if N9 and N950 have it too)
= More RAM =
You can install '''zram-tools''' from the repo, and edit '''/etc/default/zramswap''' as necessary. It's probably convenient to set allocation to 1024.
hildon-base (and it's hildon-env-setup initscript) are aware if zramswap in installed and will activate zram.
If you have an image older than 17 January 2021, you should remove the existing zram initscript and install zram-tools to utilize this functionality.
Remove it with:
rc-update del zram
rm /etc/init.d/zram
= Tweaking =
See [[Tweaking]]
ee0951fe60874fd741626ed4f28e12650928d46e
Calendar
0
109
1121
888
2021-07-02T15:31:53Z
Uvos
39
wikitext
text/x-wiki
= Calendar =
Data is stored in /home/user/.calendar/calendardb - in SQLite3 format.
== Qalendar ==
Qalendar is Qt5 implementation of the Maemo Calendar, source is here: https://github.com/maemo-leste/qalendar
It should mostly function as the Maemo calendar, see the feature comparison here: https://wiki.maemo.org/Qalendar
* cal-home-widget has also been ported
== Improvements over Fremantle Qalendar ==
* Supports landscape at dynamic resolutions (vs only 800x480)
Planned:
* Portrait support
== Synchronising ==
you can try this script
it currently only syncs the calendar
# Install syncevolution first via 'apt install syncevolution'
# Grab the script at: http://uvos.xyz/maserati/maemo-calendar-sync.sh
# Open it and change the vars to reflect your server
# Run it
if that dosent work try the section below
== Synchronising manually ==
Install:
<pre>
apt install syncevolution
</pre>
Example URL is <b>http://localhost:5223</b> - using ssh tunneling to forward the remote radicale port to a local port. This is no by means required for operation - just pick any host that works for you.
For reference, this can be used to set up the ssh port forward if you're keen on using it (but again, just pick whatever host you want to use):
<pre>
ssh myhost -L 5223:localhost:5223
</pre>
OK, so let's configure syncevolution and do the initial sync:
<pre>
syncevolution --configure \
--template webdav \
username=USER \
password=PASS \
syncURL=http://localhost:5223/ \
target-config@radicale
syncevolution --configure \
database=http://localhost:5223/USER/UUID/ \
backend=caldavtodo \
target-config@radicale radicaletodo
syncevolution --configure \
database=http://localhost:5223/USER/UUID/ \
backend=caldavjournal \
target-config@radicale radicalejournal
syncevolution --configure \
database=http://localhost:5223/USER/UUID/ \
backend=caldav \
target-config@radicale radicalecal
syncevolution --configure \
--template SyncEvolution_Client \
sync=none \
syncURL=local://@radicale \
username= \
password= \
radicale
syncevolution --configure \
sync=two-way \
backend=maemo-tasks \
database= \
radicale radicaletodo
syncevolution --configure \
sync=two-way \
backend=maemo-notes\
database= \
radicale radicalejournal
syncevolution --configure \
sync=two-way \
backend=maemo-events \
database= \
radicale radicalecal
syncevolution --sync refresh-from-client radicale radicalejournal
syncevolution --sync refresh-from-client radicale radicaletodo
syncevolution --sync refresh-from-client radicale radicalecal
</pre>
And the next time you want to synchronise, just call:
<pre>
syncevolution --sync two-way radicale radicalejournal
syncevolution --sync two-way radicale radicaletodo
syncevolution --sync two-way radicale radicalecal
</pre>
== Syncevolution-frontend ==
The custom Maemo Syncevolution frontend has also been ported and is available in the application manager; which can be used to set up scheduled synchronisation.
Random resources:
* https://www.mail-archive.com/syncevolution@syncevolution.org/msg03379.html
* https://wiki.maemo.org/Calendar_database
* https://wiki.maemo.org/Sync
* http://maemo.org/packages/source/view/fremantle_extras-devel_free_source/syncevolution-frontend/0.12/
* https://talk.maemo.org/showthread.php?t=75810
5e526d9c5339a7fc741b42e796e021f3ab3ef82d
File:Droid4 Daimonin Hdmi.jpg
6
148
1122
2021-07-07T01:37:12Z
Clort
42
Example of droid4 with hdmi out enabled:
xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off
wikitext
text/x-wiki
== Summary ==
Example of droid4 with hdmi out enabled:
xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off
20136fd571b127e65a65d9d08fe37bb0f01d8700
Propaganda
0
136
1124
1011
2021-07-08T15:37:18Z
Parazyd
1
wikitext
text/x-wiki
Put all memes here
[[File:Os-addicts.jpg|200px]]
[[File:Dont-slave.jpg|200px]]
[[File:Great-war.jpg|200px]]
[[File:Join-leste.jpg|200px]]
[[File:Privacy-and-more.png|200px]]
[[File:Refuse-duopoly.jpg|200px]]
5f8f4900fe87aad87758a18447d3c8e0a7ac2929
1126
1124
2021-07-08T15:39:00Z
Parazyd
1
wikitext
text/x-wiki
<big><big><big>Put all memes here</big></big></big>
<hr>
[[File:Os-addicts.jpg|200px]]
[[File:Dont-slave.jpg|200px]]
[[File:Great-war.jpg|200px]]
[[File:Join-leste.jpg|200px]]
[[File:Privacy-and-more.png|200px]]
[[File:Refuse-duopoly.jpg|200px]]
<hr>
[[File:MaemoSealeste.jpg|200px]]
ca1fe4da66404df87b6fd0accfd4bf60545e7ba0
1127
1126
2021-07-08T15:40:46Z
Parazyd
1
wikitext
text/x-wiki
Place all memes of Maemo Leste you find here.
== Propaganda ==
[[File:Dont-slave.jpg|200px]]
[[File:Great-war.jpg|200px]]
[[File:Join-leste.jpg|200px]]
[[File:Privacy-and-more.png|200px]]
[[File:Refuse-duopoly.jpg|200px]]
== Memes ==
[[File:Os-addicts.jpg|200px]]
== Various ==
[[File:MaemoSealeste.jpg|200px]]
9d9ae25404d822c56e5de51a3c85bc43a4004bcd
File:MaemoSealeste.jpg
6
149
1125
2021-07-08T15:37:39Z
Parazyd
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Leste-scummvm-bigtheme.jpg
6
150
1128
2021-07-08T19:39:49Z
Clort
42
Scummvm large theme (before widescreen mod) on Droid4
wikitext
text/x-wiki
== Summary ==
Scummvm large theme (before widescreen mod) on Droid4
bdfe3a4fc71897f3f7fa86682b3d6a1cf46c76df
Extras/ScummVM
0
137
1129
1094
2021-07-08T20:10:24Z
Clort
42
/* Status */
wikitext
text/x-wiki
{{Infobox Package
|image=[[File:ScummVM_Logo.png|250px]]
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]
|date_in_repo=2021-05-21
|website=https://www.scummvm.org/
|maemo_leste_repo=https://github.com/maemo-leste-extras/scummvm
|category=Games
|packager=[[User:Wizzup]]
}}
ScummVM is a program which allows you to run certain classic graphical adventure and role-playing games, provided you already have their data files. The clever part about this: ScummVM just replaces the executables shipped with the games, allowing you to play them on systems for which they were never designed! ScummVM is a complete rewrite of these games' executables and is not an emulator. (From ScummVM website)
Relevant issue: https://github.com/maemo-leste/bugtracker/issues/269
Also see this page for more info: https://wiki.scummvm.org/index.php/Maemo
== Status ==
* Games seems to be playable, with sound and input
* GUI with default theme is too small to be clickable/visable. WIth theme scummvm-remastered (scummremastered.zip) it is possible to set GUI scale to 'Large' and get a readable GUI:
[[File:Leste-scummvm-bigtheme.jpg|500px]]
To get large readable GUI:
<code>edit ~/.config/scummvm.ini
change gui_base=0 to gui_base=240</code>
=== Tested games ===
Neverhood, Ultima 4, Ultima 6, Grim Fandango, Broken Sword 1
==== The Neverhood ====
Change keymap as appropriate, works well.
[[File:ScummVMNeverhood.png|500px]]
==== TODO ====
* Revise Maemo-Leste configure backend/target to remove 'optification'
* Create Widescreen readable theme
* Fix mouse cursor tracking for touchscreen
* Find rendering and build options for low battery use (adventure game sessions can be long)
* Get Maemo-Leste target into upstream SCUMMVM
== TODO ==
* Implement sane default keys for the devices (there is rudimentary detection for the N900, but we support more devices)
* Use libsdl2 build, didn't compile when [[User:Wizzup]] tried.
[[Category:Extras]]
[[Category:Games]]
55f4df05ce2e3d71323963298df1dfee089a1070
1130
1129
2021-07-08T20:11:24Z
Clort
42
/* Status */
wikitext
text/x-wiki
{{Infobox Package
|image=[[File:ScummVM_Logo.png|250px]]
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]
|date_in_repo=2021-05-21
|website=https://www.scummvm.org/
|maemo_leste_repo=https://github.com/maemo-leste-extras/scummvm
|category=Games
|packager=[[User:Wizzup]]
}}
ScummVM is a program which allows you to run certain classic graphical adventure and role-playing games, provided you already have their data files. The clever part about this: ScummVM just replaces the executables shipped with the games, allowing you to play them on systems for which they were never designed! ScummVM is a complete rewrite of these games' executables and is not an emulator. (From ScummVM website)
Relevant issue: https://github.com/maemo-leste/bugtracker/issues/269
Also see this page for more info: https://wiki.scummvm.org/index.php/Maemo
== Status ==
* Games seems to be playable, with sound and input
* GUI with default theme is too small to be clickable/visable. WIth theme scummvm-remastered (scummremastered.zip) it is possible to set GUI scale to 'Large' and get a readable GUI:
[[File:Leste-scummvm-bigtheme.jpg|500px]]
To get large readable GUI:
<code>edit ~/.config/scummvm.ini
change gui_base=0 to gui_base=240</code>
=== Tested games ===
Neverhood, Ultima 4, Ultima 6, Grim Fandango, Broken Sword 1
==== The Neverhood ====
Change keymap as appropriate, works well.
[[File:ScummVMNeverhood.png|500px]]
== TODO ==
* Implement sane default keys for the devices (there is rudimentary detection for the N900, but we support more devices)
* Use libsdl2 build, didn't compile when [[User:Wizzup]] tried.
[[Category:Extras]]
[[Category:Games]]
4a670e2348f5e9205f99acfeea681b83e4dc8d04
1131
1130
2021-07-08T20:12:20Z
Clort
42
/* TODO */
wikitext
text/x-wiki
{{Infobox Package
|image=[[File:ScummVM_Logo.png|250px]]
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]
|date_in_repo=2021-05-21
|website=https://www.scummvm.org/
|maemo_leste_repo=https://github.com/maemo-leste-extras/scummvm
|category=Games
|packager=[[User:Wizzup]]
}}
ScummVM is a program which allows you to run certain classic graphical adventure and role-playing games, provided you already have their data files. The clever part about this: ScummVM just replaces the executables shipped with the games, allowing you to play them on systems for which they were never designed! ScummVM is a complete rewrite of these games' executables and is not an emulator. (From ScummVM website)
Relevant issue: https://github.com/maemo-leste/bugtracker/issues/269
Also see this page for more info: https://wiki.scummvm.org/index.php/Maemo
== Status ==
* Games seems to be playable, with sound and input
* GUI with default theme is too small to be clickable/visable. WIth theme scummvm-remastered (scummremastered.zip) it is possible to set GUI scale to 'Large' and get a readable GUI:
[[File:Leste-scummvm-bigtheme.jpg|500px]]
To get large readable GUI:
<code>edit ~/.config/scummvm.ini
change gui_base=0 to gui_base=240</code>
=== Tested games ===
Neverhood, Ultima 4, Ultima 6, Grim Fandango, Broken Sword 1
==== The Neverhood ====
Change keymap as appropriate, works well.
[[File:ScummVMNeverhood.png|500px]]
== TODO ==
* Implement sane default keys for the devices (there is rudimentary detection for the N900, but we support more devices)
* Use libsdl2 build, didn't compile when [[User:Wizzup]] tried.
* Revise Maemo-Leste configure backend/target to remove 'optification'
* Create Widescreen readable theme
* Fix mouse cursor tracking for touchscreen
* Find rendering and build options for low battery use (adventure game sessions can be long)
* Get Maemo-Leste target into upstream SCUMMVM
[[Category:Extras]]
[[Category:Games]]
67acfa02eac7572d8f5d5c6f230005f603fde642
1133
1131
2021-07-08T22:00:10Z
Clort
42
/* TODO */
wikitext
text/x-wiki
{{Infobox Package
|image=[[File:ScummVM_Logo.png|250px]]
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]
|date_in_repo=2021-05-21
|website=https://www.scummvm.org/
|maemo_leste_repo=https://github.com/maemo-leste-extras/scummvm
|category=Games
|packager=[[User:Wizzup]]
}}
ScummVM is a program which allows you to run certain classic graphical adventure and role-playing games, provided you already have their data files. The clever part about this: ScummVM just replaces the executables shipped with the games, allowing you to play them on systems for which they were never designed! ScummVM is a complete rewrite of these games' executables and is not an emulator. (From ScummVM website)
Relevant issue: https://github.com/maemo-leste/bugtracker/issues/269
Also see this page for more info: https://wiki.scummvm.org/index.php/Maemo
== Status ==
* Games seems to be playable, with sound and input
* GUI with default theme is too small to be clickable/visable. WIth theme scummvm-remastered (scummremastered.zip) it is possible to set GUI scale to 'Large' and get a readable GUI:
[[File:Leste-scummvm-bigtheme.jpg|500px]]
To get large readable GUI:
<code>edit ~/.config/scummvm.ini
change gui_base=0 to gui_base=240</code>
=== Tested games ===
Neverhood, Ultima 4, Ultima 6, Grim Fandango, Broken Sword 1
==== The Neverhood ====
Change keymap as appropriate, works well.
[[File:ScummVMNeverhood.png|500px]]
== TODO ==
* Implement sane default keys for the devices (there is rudimentary detection for the N900, but we support more devices)
* Use libsdl2 build, didn't compile when [[User:Wizzup]] tried.
* Revise Maemo-Leste configure backend/target to remove 'optification'
* Create Widescreen readable theme
* Find rendering and build options for low battery use (adventure game sessions can be long)
* Get Maemo-Leste target into upstream SCUMMVM
[[Category:Extras]]
[[Category:Games]]
2f0b51e06948158fc69db80017a70199fc785a5a
1134
1133
2021-07-09T01:15:58Z
Clort
42
/* TODO */
wikitext
text/x-wiki
{{Infobox Package
|image=[[File:ScummVM_Logo.png|250px]]
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]
|date_in_repo=2021-05-21
|website=https://www.scummvm.org/
|maemo_leste_repo=https://github.com/maemo-leste-extras/scummvm
|category=Games
|packager=[[User:Wizzup]]
}}
ScummVM is a program which allows you to run certain classic graphical adventure and role-playing games, provided you already have their data files. The clever part about this: ScummVM just replaces the executables shipped with the games, allowing you to play them on systems for which they were never designed! ScummVM is a complete rewrite of these games' executables and is not an emulator. (From ScummVM website)
Relevant issue: https://github.com/maemo-leste/bugtracker/issues/269
Also see this page for more info: https://wiki.scummvm.org/index.php/Maemo
== Status ==
* Games seems to be playable, with sound and input
* GUI with default theme is too small to be clickable/visable. WIth theme scummvm-remastered (scummremastered.zip) it is possible to set GUI scale to 'Large' and get a readable GUI:
[[File:Leste-scummvm-bigtheme.jpg|500px]]
To get large readable GUI:
<code>edit ~/.config/scummvm.ini
change gui_base=0 to gui_base=240</code>
=== Tested games ===
Neverhood, Ultima 4, Ultima 6, Grim Fandango, Broken Sword 1
==== The Neverhood ====
Change keymap as appropriate, works well.
[[File:ScummVMNeverhood.png|500px]]
== TODO ==
* Implement sane default keys for the devices (there is rudimentary detection for the N900, but we support more devices)
* Use libsdl2 build, didn't compile when [[User:Wizzup]] tried.
* Revise Maemo-Leste configure backend/target to remove 'optification'
* Create Widescreen readable theme
* Fix touchscreen to pointer position de-synchronization. (Starts okay, goes bad).
* Find rendering and build options for low battery use (adventure game sessions can be long)
* Get Maemo-Leste target into upstream SCUMMVM
[[Category:Extras]]
[[Category:Games]]
c92d3443ba6ab461373809c6b854cf686eaa6dac
Nokia N900
0
48
1135
1082
2021-07-14T09:41:41Z
Clort
42
/* Added source repository for 0xFFFF */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=5.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=300mW (needs kernel work)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
== Notes ==
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them
Also see: https://elinux.org/N900
== Power Management ==
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch
<pre>
$ cat idlest.py
"""
00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000
f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046
0000000d 48004a28 (f7aa95e6) cm_idlest3_core
"""
# 31 to 0
cm_idlest1_core_bits = [
'RESERVED',
'ST_MMC3',
'ST_ICR',
'RESERVED',
'RESERVED',
'RESERVED',
'ST_MMC2',
'ST_MMC1',
'RESERVED',
'ST_HDQ',
'ST_MCSPI4',
'ST_MCSPI3',
'ST_MCSPI2',
'ST_MCSPI1',
'ST_I2C3',
'ST_I2C2',
'ST_I2C1',
'ST_UART2',
'ST_UART1',
'ST_GPT11',
'ST_GPT10',
'ST_MCBSP5',
'ST_MCBSP1',
'RESERVED',
'ST_MAILBOXES',
'ST_OMAPCTRL',
'ST_HSOTGUSB_IDLE',
'ST_HSOTGUSB_STDBY',
'RESERVED',
'ST_SDMA',
'ST_SDRC',
'RESERVED',
]
cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits))
#inp = '0020c046'
inp = '00208042' # after rmmod hci_nokia and hci_uart
v = int(inp, 16)
#print(v)
b= "{0:b}".format(v)
print((32-len(b))*'0' + b)
for i in range(0, 32):
is_set = (v & (1 << i)) >> i
if is_set:
print(cm_idlest1_core_bits[i])
</pre>
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Old status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || Yes || TX only (hardware limitation).
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode
|}
[[Category:Device]]
64551e02bf93872b87ad90765cfd3d7422e3ae14
Motorola Droid 3
0
151
1139
2021-07-24T12:42:58Z
Wizzup
4
Initial page
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Solana XT862
|dimensions=todo
|release_date=todo
|soc=TI OMAP4430
|dram=512MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=todo
|other=
|category=Supported
|sw_kernel=5.11.0
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Yes
|sw_usb_host=Yes
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=Yes
|sw_tv=
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=
|sw_4g=No
|sw_bluetooth=todo
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=
|sw_standbytime=
}}
(Work in progress)
[[Category:Device]]
feae370336aa7e120f9a89e86c4d7c1317d22f09
1140
1139
2021-07-24T12:43:19Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Device
|image=[
|manufacturer=Motorola
|codename=Solana XT862
|dimensions=todo
|release_date=todo
|soc=TI OMAP4430
|dram=512MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=todo
|other=
|category=Supported
|sw_kernel=5.11.0
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Yes
|sw_usb_host=Yes
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=Yes
|sw_tv=
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=
|sw_4g=No
|sw_bluetooth=todo
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=
|sw_standbytime=
}}
(Work in progress)
[[Category:Device]]
d25376b2a2922253104da9592c853eea358d1b52
1141
1140
2021-07-24T12:45:52Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Device
|image=
|manufacturer=Motorola
|codename=Solana XT862
|dimensions=todo
|release_date=todo
|soc=TI OMAP4430
|dram=512MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=todo
|other=
|category=Supported
|sw_kernel=5.11.0
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Yes
|sw_usb_host=Yes
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=Yes
|sw_tv=
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=
|sw_4g=No
|sw_bluetooth=todo
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=
|sw_standbytime=
}}
(Work in progress)
[[Category:Device]]
6b8fbc99265d4013ea75437c4f06637323ddaf49
File:Maemo-leste-droid4-kbd-2021-07.png
6
152
1142
2021-07-28T11:09:52Z
Clort
42
View of Droid4 Keyboard layout with 'OK' special keys.
wikitext
text/x-wiki
== Summary ==
View of Droid4 Keyboard layout with 'OK' special keys.
997df2084f6e36ec65c215f8026140f43a17a050
1144
1142
2021-07-28T11:25:07Z
Clort
42
Clort uploaded a new version of [[File:Maemo-leste-droid4-kbd-2021-07.png]]
wikitext
text/x-wiki
== Summary ==
View of Droid4 Keyboard layout with 'OK' special keys.
997df2084f6e36ec65c215f8026140f43a17a050
Motorola Droid 4
0
50
1146
1145
2021-07-28T11:29:18Z
Clort
42
/* Notes */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati XT894
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
|category=Supported
|sw_kernel=5.11.0
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Yes
|sw_usb_host=Yes
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=Yes
|sw_tv=
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=Yes
|sw_4g=No
|sw_bluetooth=Yes, [[#Bluetooth|see notes]]
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=120mW
|sw_standbytime=
}}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
=== Updating Android ===
This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
=== Setting up kexecboot ===
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
=== Install Maemo Leste to the sdcard ===
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab the latest image from https://phoenix.maemo.org/view/Images/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
The keyboard layout is extended to provide more standard keys.
[[File:Maemo-leste-droid4-kbd-2021-07.png|620px|thumb|aemo-leste droid4 keyboard]]
Key mapping can be tested with the 'xev' program.
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Bluetooth ==
Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Wifi ====
The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this:
Read modem output:
<pre>
cat /dev/motmdm1 &
</pre>
Online modem:
<pre>
printf "AT+CFUN=1\r" > /dev/motmdm1
</pre>
Connect to network:
<pre>
printf "AT+COPS=1\r" > /dev/motmdm1
</pre>
Print connected network:
</pre>
printf "AT+COPS?\r" > /dev/motmdm1
Turn off signal reporting:
<pre>
# printf "AT+SCRN=0\r" > /dev/motmdm1
</pre>
Dial a number:
<pre>
printf "ATD+1234567890\r" > /dev/motmdm1
</pre>
Hang up:
<pre>
printf "ATH\r" > /dev/motmdm1
</pre>
Answer incoming call:
<pre>
printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired.
==== 3G Internet ====
Using qmicli:
qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
route del default
sudo ifconfig wwan0 up
dhclient wwan0
Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed.
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
==== HDMI ====
Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier.
<pre>
xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off
</pre>
Return to internal touchscreen display.
<pre>
xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off
</pre>
==== Keyboard / Mouse sharing with PC ====
To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4.
<pre>
[https://github.com/debauchee/barrier Barrier software-KVM switch]
</pre>
Developers and testers may wish to disable the googley bits before compiling.
==== BT Audio headset ====
sudo apt install pulseaudio-module-bluetooth blueman bluez
sudo modprobe hci_uart
pactl load-module module-bluetooth-discover
blueman-manager
Pair & trust your device in blueman, connect audiosink. You can close blueman now. The quality seems a bit better in 'offline mode'.
== Using a configured Leste sdcard in a different Droid4 ==
A configured Droid4 Leste installation is unique to the device that it was calibrated on. Particularly the wlan firmware calibration will be incorrect if an existing Leste installation is transferred to a different device.
The wifi calibration script requires a system set to stock settings to calibrate-from. It cannot just be re-run on an already calibrated system.
To recalibrate the wifi firmware on a different Droid4, you must reset the FEM parameters to stock settings on the new device, then recalibrate.
If you can get the device online (usb networking or moving close to the WLAN AP) this can be done with.
apt reinstall firmware-ti-connectivity
If not, you can download the firmware-ti-connectivity_[version]_all.deb on another Leste device
apt download firmware-ti-connectivity
Then copy the .deb to your new device and install that (as root) with
dpkg -i firmware-ti-connectivity_[version]_all.deb
Then (as root) re-calibrate the wifi chip by running
/usr/bin/maserati-calibrate
Then reboot.
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
Cant_have_2_much_leste.jpg
Leste-neverball.jpg
Statsfun.jpg
Leste-glmatrix.png
Droid4-leste-utox2.jpg
Droid4-leste-pcsx.jpg
Droid4-leste-surf_master.jpg
Droid4_Daimonin_Hdmi.jpg
</gallery>
== Old status overview ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Implemented with Pulseaudio and UCM files
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || Yes || Available in /sys, and as input device via iio-uinput
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)
|-
| Gyro || N/A ||
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/
|-
| Idle power consumption || ~120mW || Needs sim inserted
|}
[[Category:Device]]
829e8df7e7f6b8b7b185679b954b610d9f9b4007
1147
1146
2021-07-28T11:30:11Z
Clort
42
/* Notes */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati XT894
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
|category=Supported
|sw_kernel=5.11.0
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Yes
|sw_usb_host=Yes
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=Yes
|sw_tv=
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=Yes
|sw_4g=No
|sw_bluetooth=Yes, [[#Bluetooth|see notes]]
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=120mW
|sw_standbytime=
}}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
=== Updating Android ===
This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
=== Setting up kexecboot ===
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
=== Install Maemo Leste to the sdcard ===
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab the latest image from https://phoenix.maemo.org/view/Images/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
The keyboard layout is extended to provide more standard keys.
[[File:Maemo-leste-droid4-kbd-2021-07.png|center|620px|thumb|aemo-leste droid4 keyboard]]
Key mapping can be tested with the 'xev' program.
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Bluetooth ==
Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Wifi ====
The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this:
Read modem output:
<pre>
cat /dev/motmdm1 &
</pre>
Online modem:
<pre>
printf "AT+CFUN=1\r" > /dev/motmdm1
</pre>
Connect to network:
<pre>
printf "AT+COPS=1\r" > /dev/motmdm1
</pre>
Print connected network:
</pre>
printf "AT+COPS?\r" > /dev/motmdm1
Turn off signal reporting:
<pre>
# printf "AT+SCRN=0\r" > /dev/motmdm1
</pre>
Dial a number:
<pre>
printf "ATD+1234567890\r" > /dev/motmdm1
</pre>
Hang up:
<pre>
printf "ATH\r" > /dev/motmdm1
</pre>
Answer incoming call:
<pre>
printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired.
==== 3G Internet ====
Using qmicli:
qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
route del default
sudo ifconfig wwan0 up
dhclient wwan0
Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed.
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
==== HDMI ====
Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier.
<pre>
xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off
</pre>
Return to internal touchscreen display.
<pre>
xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off
</pre>
==== Keyboard / Mouse sharing with PC ====
To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4.
<pre>
[https://github.com/debauchee/barrier Barrier software-KVM switch]
</pre>
Developers and testers may wish to disable the googley bits before compiling.
==== BT Audio headset ====
sudo apt install pulseaudio-module-bluetooth blueman bluez
sudo modprobe hci_uart
pactl load-module module-bluetooth-discover
blueman-manager
Pair & trust your device in blueman, connect audiosink. You can close blueman now. The quality seems a bit better in 'offline mode'.
== Using a configured Leste sdcard in a different Droid4 ==
A configured Droid4 Leste installation is unique to the device that it was calibrated on. Particularly the wlan firmware calibration will be incorrect if an existing Leste installation is transferred to a different device.
The wifi calibration script requires a system set to stock settings to calibrate-from. It cannot just be re-run on an already calibrated system.
To recalibrate the wifi firmware on a different Droid4, you must reset the FEM parameters to stock settings on the new device, then recalibrate.
If you can get the device online (usb networking or moving close to the WLAN AP) this can be done with.
apt reinstall firmware-ti-connectivity
If not, you can download the firmware-ti-connectivity_[version]_all.deb on another Leste device
apt download firmware-ti-connectivity
Then copy the .deb to your new device and install that (as root) with
dpkg -i firmware-ti-connectivity_[version]_all.deb
Then (as root) re-calibrate the wifi chip by running
/usr/bin/maserati-calibrate
Then reboot.
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
Cant_have_2_much_leste.jpg
Leste-neverball.jpg
Statsfun.jpg
Leste-glmatrix.png
Droid4-leste-utox2.jpg
Droid4-leste-pcsx.jpg
Droid4-leste-surf_master.jpg
Droid4_Daimonin_Hdmi.jpg
</gallery>
== Old status overview ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Implemented with Pulseaudio and UCM files
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || Yes || Available in /sys, and as input device via iio-uinput
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)
|-
| Gyro || N/A ||
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/
|-
| Idle power consumption || ~120mW || Needs sim inserted
|}
[[Category:Device]]
887bdba9324a224b4dd93628258c57274686e393
1148
1147
2021-07-28T11:30:51Z
Clort
42
/* Notes */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati XT894
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
|category=Supported
|sw_kernel=5.11.0
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Yes
|sw_usb_host=Yes
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=Yes
|sw_tv=
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=Yes
|sw_4g=No
|sw_bluetooth=Yes, [[#Bluetooth|see notes]]
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=120mW
|sw_standbytime=
}}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
=== Updating Android ===
This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
=== Setting up kexecboot ===
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
=== Install Maemo Leste to the sdcard ===
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab the latest image from https://phoenix.maemo.org/view/Images/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
The keyboard layout is extended to provide more standard keys.
[[File:Maemo-leste-droid4-kbd-2021-07.png|center|620px|thumb|maemo-leste droid4 keyboard]]
Key mapping can be tested with the 'xev' program.
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Bluetooth ==
Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Wifi ====
The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== Phone Call ====
Make sure there is a SIM in the phone.
Run this:
Read modem output:
<pre>
cat /dev/motmdm1 &
</pre>
Online modem:
<pre>
printf "AT+CFUN=1\r" > /dev/motmdm1
</pre>
Connect to network:
<pre>
printf "AT+COPS=1\r" > /dev/motmdm1
</pre>
Print connected network:
</pre>
printf "AT+COPS?\r" > /dev/motmdm1
Turn off signal reporting:
<pre>
# printf "AT+SCRN=0\r" > /dev/motmdm1
</pre>
Dial a number:
<pre>
printf "ATD+1234567890\r" > /dev/motmdm1
</pre>
Hang up:
<pre>
printf "ATH\r" > /dev/motmdm1
</pre>
Answer incoming call:
<pre>
printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired.
==== 3G Internet ====
Using qmicli:
qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
route del default
sudo ifconfig wwan0 up
dhclient wwan0
Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed.
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
==== HDMI ====
Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier.
<pre>
xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off
</pre>
Return to internal touchscreen display.
<pre>
xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off
</pre>
==== Keyboard / Mouse sharing with PC ====
To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4.
<pre>
[https://github.com/debauchee/barrier Barrier software-KVM switch]
</pre>
Developers and testers may wish to disable the googley bits before compiling.
==== BT Audio headset ====
sudo apt install pulseaudio-module-bluetooth blueman bluez
sudo modprobe hci_uart
pactl load-module module-bluetooth-discover
blueman-manager
Pair & trust your device in blueman, connect audiosink. You can close blueman now. The quality seems a bit better in 'offline mode'.
== Using a configured Leste sdcard in a different Droid4 ==
A configured Droid4 Leste installation is unique to the device that it was calibrated on. Particularly the wlan firmware calibration will be incorrect if an existing Leste installation is transferred to a different device.
The wifi calibration script requires a system set to stock settings to calibrate-from. It cannot just be re-run on an already calibrated system.
To recalibrate the wifi firmware on a different Droid4, you must reset the FEM parameters to stock settings on the new device, then recalibrate.
If you can get the device online (usb networking or moving close to the WLAN AP) this can be done with.
apt reinstall firmware-ti-connectivity
If not, you can download the firmware-ti-connectivity_[version]_all.deb on another Leste device
apt download firmware-ti-connectivity
Then copy the .deb to your new device and install that (as root) with
dpkg -i firmware-ti-connectivity_[version]_all.deb
Then (as root) re-calibrate the wifi chip by running
/usr/bin/maserati-calibrate
Then reboot.
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
Cant_have_2_much_leste.jpg
Leste-neverball.jpg
Statsfun.jpg
Leste-glmatrix.png
Droid4-leste-utox2.jpg
Droid4-leste-pcsx.jpg
Droid4-leste-surf_master.jpg
Droid4_Daimonin_Hdmi.jpg
</gallery>
== Old status overview ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Implemented with Pulseaudio and UCM files
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || Yes || Available in /sys, and as input device via iio-uinput
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)
|-
| Gyro || N/A ||
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/
|-
| Idle power consumption || ~120mW || Needs sim inserted
|}
[[Category:Device]]
0e4a854440bd4d0877fddefe98666ea6a622ec85
Wishlist
0
89
1149
1015
2021-08-09T14:18:08Z
Clort
42
/* Applications */ Flite is in devuan repo
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
{| class="wikitable"http://maemo.org/packages/view/orecchiette/
! Package name
! Done
! Reason
! User
! URL
! Notes
|-
| osso-notes || Yes (quicknote) || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Quicknote currently packaged. Usage notes - http://wiki.maemo.org/Quicknote
|-
| pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation.
|-
| scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please
|-
| [[Games/Brainparty|brainparty]] || Yes || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ ||
|-
| Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || http://maemo.org/packages/view/orecchiette/(has also Psycho Pinball installable)
|-
| Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||http://maemo.org/packages/view/orecchiette/
|-
| Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend
|-
| PDF reader || Yes || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || libhildonfm has bugs regarding file opening dialogs that need to be fixed
|-
| Calendar app || Yes || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port.
|-
| Alarm clock || Yes || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI
|-
| Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/
|-
| Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel
|-
|Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0
|-
| Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ ||
|-
| Image viewer/editor || Yes || || [[User:Maemish]] || https://github.com/maemo-leste-extras/mihphoto ||
|-
| Mail with imap support || No || || [[User:Maemish]] || ||
|-
| RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || ||
|-
| Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ ||
|-
| OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer ||
|-
| SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net ||
|-
| Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ ||
|-
| D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ ||
|-
| Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ ||
|-
| MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms ||
|-
| Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ ||
|-
| Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed.
|-
| Firewall || No || || [[User:Maemish]] || || Something with easy configuration.
|-
| Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ ||
|-
|bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ ||
|-
| cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ ||
|-
| gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ ||
|-|-
| hamsterfiler || WIP [https://github.com/maemo-leste/bugtracker/issues/499] || utilities/files || [[User:ric9k]] || http://maemo.org/packages/view/hamsterfiler/ ||
|-|-
| alarmed (or cron?) || No || utilities || [[User:ric9k]] || http://maemo.org/packages/view/alarmed/ ||
|-|-
| user friendly tracker || No || utilities? || [[User:ric9k]] || n/a :-) ||
|-|-
| Maps (offline) || Yes || Navigation || [[User:Sicelo]] || || (maep, modrana, cloudgps are all packaged). Ideally something like https://f-droid.org/en/packages/com.github.axet.maps/ from Android, but Modrana, https://github.com/M4rtinK/modrana may be easier as a start. [FoxtrotGPS https://www.foxtrotgps.org] might be the easiest to adapt, it is already packaged in Devuan.
|-
| Orecchiette || No || calls recording || [[User:capitannemo]] || http://maemo.org/packages/view/orecchiette/ ||
|-
| Panucci || No || audiobook || [[User:capitannemo]] || http://maemo.org/packages/view/panucci/ ||
|-
| gPodder || No || podcast || [[User:capitannemo]] || http://maemo.org/packages/view/gpodder/ ||
|-
| Symfonie || No || directory-based audioplayer || [[User:capitannemo]] || http://maemo.org/packages/view/symfonie/ ||
|-
| osso-clock || Yes (clock-ui) || clock and alarms application || pavel || ||
|-
| freecell4maemo || No || freecell game || pavel || ||
|-
| [http://festvox.org/index.html CMU Flite] || In Repo || Accessibility (TTS) || [[User:Buffer|Buffer]] ([[User talk:Buffer|talk]]) 21:48, 2 March 2020 (UTC) || https://github.com/festvox/flite ||
|-
| Cooktimer || No || feature-rich timers || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cooktimer/0.0.4-24/ || latest from extras-devel
|-
| OpenSSH Status Widget || No || openSSH monitor and config. || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/openssh-status-widget/2.2-12/ || Installing this package is the only step required on a fresh n900 to have openssh working
|-
| Recaller || No || record with one tap || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/recaller/2.1.0-5/ ||
|-
| NecroPlayer2 || No || directory-based audioplayer, easy playlist edit, multiple directories, very useful with recaller widget || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/necroplayer2/0.2.3/ ||
|-
| Simpler Brightness Applet || Yes || simple brightness applet with single tap for backlight and long tap for settings || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/simpler-brightness-applet/1.0/ ||
|)
|-
| telepathy-signal || No || The best open source alternative to WhatsApp should be ready for use with Maemo Leste || [[User:Derby]] || https://github.com/signalapp/Signal-Desktop ; https://github.com/AsamK/signal-cli || This is a suggestion to create a Telepathy connection manager for Signal. Although the Signal [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=842943 Desktop] and [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=926807 CLI] can be installed, they are not yet available in Debian. In any case, it would be great to have a Telepathy connection manager for Signal to provide seamless integration with Maemo.
a5d9a44d4002c497d23c439513939ec192afe9e5
Debugging
0
128
1150
1000
2021-09-23T07:51:26Z
Wizzup
4
wikitext
text/x-wiki
=== Things break. How do you debug the problems? ===
You will want to take the following steps:
* Add the devuan/debian debug repositories.
* Identify the program that crashes (you can use `dpkg -S /usr/bin/program-name`) and install the -dbg or -dbgsym packages
* Install the -dbg and -dbgsym dependencies of the packages
* Attach to the program in gdb (or start it from gdb)
==== Add the debug repositories ====
Maemo Leste ships its debug packages in the normal repository, but for the Devuan/Debian packages, you need to add an additional source list file:
<pre>
# cat /etc/apt/sources.list.d/debug.list
deb http://deb.debian.org/debian-debug/ buster-debug main
deb http://deb.debian.org/debian-debug/ buster-backports-debug main
deb https://pkgmaster.devuan.org/devuan beowulf main contrib non-free
deb https://pkgmaster.devuan.org/devuan beowulf-updates main contrib non-free
deb https://pkgmaster.devuan.org/devuan beowulf-security main contrib non-free
</pre>
==== Identify the program that crashes ====
Example: location-status (the location status applet) crashes.
Find out which main program or library is likely involved in the crash. If clicking the location status applet button causes a crash, the problem is likely in that package, and we can use dpkg -S to figure out what package the file is part of, and then install the debug symbols:
<pre>
# dpkg -S /usr/lib/arm-linux-gnueabihf/hildon-desktop/location-status.so
location-status: /usr/lib/arm-linux-gnueabihf/hildon-desktop/location-status.so
# apt-cache search location-status | grep dbg
location-status-dbgsym - debug symbols for location-status
# apt install location-status-dbgsym
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following package was automatically installed and is no longer required:
libmicrodns0
Use 'apt autoremove' to remove it.
The following NEW packages will be installed:
location-status-dbgsym
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 27,1 kB of archives.
After this operation, 41,0 kB of additional disk space will be used.
0% [Working]
Get:1 https://maedevu.maemo.org/leste beowulf/main armhf location-status-dbgsym armhf 0.111-1+2m7 [27,1 kB]
Fetched 27,1 kB in 0s (55,8 kB/s)
Selecting previously unselected package location-status-dbgsym.
(Reading database ... 96891 files and directories currently installed.)
Preparing to unpack .../location-status-dbgsym_0.111-1+2m7_armhf.deb ...
Unpacking location-status-dbgsym (0.111-1+2m7) ...
Setting up location-status-dbgsym (0.111-1+2m7) ...
</pre>
==== Install additional debug files ====
To get useful stack traces, gdb typically requires the debug symbols of other libraries to be installed as well. Following our example location-status, we can get a list of all the libraries involved using ldd:
<pre>
# ldd /usr/lib/arm-linux-gnueabihf/hildon-desktop/location-status.so
</pre>
This lists a lot of libraries, so we will start with the basic ones, e.g. glib-2.0:
<pre>
root@maindroid:/etc/apt# dpkg -S /usr/lib/arm-linux-gnueabihf/libglib-2.0.so.0.5800.3
libglib2.0-0:armhf: /usr/lib/arm-linux-gnueabihf/libglib-2.0.so.0.5800.3
root@maindroid:/etc/apt# apt-cache search libglib2.0-0 | grep dbg
libglib2.0-0-dbgsym - debug symbols for libglib2.0-0
# apt install libglib2.0-0-dbgsym
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following package was automatically installed and is no longer required:
libmicrodns0
Use 'apt autoremove' to remove it.
The following NEW packages will be installed:
libglib2.0-0-dbgsym
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 4240 kB of archives.
After this operation, 4984 kB of additional disk space will be used.
Get:1 http://deb.debian.org/debian-debug buster-debug/main armhf libglib2.0-0-dbgsym armhf 2.58.3-2+deb10u2 [4240 kB]
0% [1 libglib2.0-0-dbgsym 0 B/4240 kB 0%]
Fetched 4240 kB in 3s (1278 kB/s)
Selecting previously unselected package libglib2.0-0-dbgsym:armhf.
(Reading database ... 96893 files and directories currently installed.)
Preparing to unpack .../libglib2.0-0-dbgsym_2.58.3-2+deb10u2_armhf.deb ...
Unpacking libglib2.0-0-dbgsym:armhf (2.58.3-2+deb10u2) ...
Setting up libglib2.0-0-dbgsym:armhf (2.58.3-2+deb10u2) ...
</pre>
We can repeat this process until we get satisfactory backtraces in gdb. For example:
<pre>
# gdb attach <pid>
[...]
Thread 1 "hildon-status-m" received signal SIGSEGV, Segmentation fault.
0xb6625f72 in g_atomic_ref_count_compare (arc=arc@entry=0x38, val=val@entry=0) at ../../../glib/grefcount.c:284
284 ../../../glib/grefcount.c: No such file or directory.
(gdb) bt
#0 0xb6625f72 in g_atomic_ref_count_compare (arc=arc@entry=0x38, val=val@entry=0) at ../../../glib/grefcount.c:284
#1 0xb660cf0a in g_hash_table_lookup_node
(hash_return=<synthetic pointer>, key=0xbed97c68, hash_table=<error reading variable: Cannot access memory at address 0x30>0x10) at ../../../glib/ghash.c:1153
#2 0xb660cf0a in g_hash_table_lookup (hash_table=<error reading variable: Cannot access memory at address 0x30>0x10, key=0xbed97c68) at ../../../glib/ghash.c:1153
#3 0xb64b03fe in () at /usr/lib/arm-linux-gnueabihf/libosso.so.1
</pre>
This means we should probably install debug symbols for libosso.so.1, so we add it and repeat:
<pre>
root@maindroid:/etc/apt# dpkg -S /usr/lib/arm-linux-gnueabihf/libosso.so.1
libosso1: /usr/lib/arm-linux-gnueabihf/libosso.so.1
root@maindroid:/etc/apt# apt-cache search libosso1 | grep dbg
libosso1-dbgsym - debug symbols for libosso1
root@maindroid:/etc/apt# apt install libosso1-dbgsym
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following package was automatically installed and is no longer required:
libmicrodns0
Use 'apt autoremove' to remove it.
The following NEW packages will be installed:
libosso1-dbgsym
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 111 kB of archives.
After this operation, 137 kB of additional disk space will be used.
Get:1 https://maedevu.maemo.org/leste beowulf/main armhf libosso1-dbgsym armhf 2.35+2m7 [111 kB]
Fetched 111 kB in 1s (197 kB/s)
Selecting previously unselected package libosso1-dbgsym.
(Reading database ... 96903 files and directories currently installed.)
Preparing to unpack .../libosso1-dbgsym_2.35+2m7_armhf.deb ...
Unpacking libosso1-dbgsym (2.35+2m7) ...
Setting up libosso1-dbgsym (2.35+2m7) ...
</pre>
Try again in gdb:
<pre>
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
__libc_do_syscall () at ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S:46
46 ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S: No such file or directory.
(gdb) c
Continuing.
Thread 1 "hildon-status-m" received signal SIGSEGV, Segmentation fault.
0x10460f44 in ?? ()
(gdb) bt
#0 0x10460f44 in ()
#1 0xb660cf16 in g_hash_table_lookup_node
(hash_return=<synthetic pointer>, key=0xbed97c60, hash_table=0xb66cb765<error reading variable: Cannot access memory at address 0x2dbf004b>)
at ../../../glib/ghash.c:379
#2 0xb660cf16 in g_hash_table_lookup (hash_table=0xb66cb765<error reading variable: Cannot access memory at address 0x2dbf004b>, key=key@entry=0xbed97c60)
at ../../../glib/ghash.c:1153
#3 0xb64b03fe in try_plugin (dir=<optimized out>, file=file@entry=0xb474d75c "liblocation_applet.so", osso=<optimized out>) at osso-cp-plugin.c:103
#4 0xb64b0466 in osso_cp_plugin_execute (osso=0x63a4b8, filename=0xb474d75c "liblocation_applet.so", data=data@entry=0x669850, user_activated=user_activated@entry=1)
at osso-cp-plugin.c:148
#5 0xb474d418 in execute_cp_plugin (obj=0x669850) at location-status.c:84
#9 0xb66e10b2 in <emit signal ??? on instance 0x669850 [HildonButton]> (instance=<optimized out>, signal_id=<optimized out>, detail=0)
at ../../../gobject/gsignal.c:3447
#6 0xb66ccb7e in g_closure_invoke (closure=0x664af8, return_value=0x0, n_param_values=1, param_values=0xbed98df0, invocation_hint=0xbed98d8c)
at ../../../gobject/gclosure.c:810
#7 0xb66dab0a in signal_emit_unlocked_R
(node=node@entry=0x551458, detail=0, instance=0x669850, emission_return=emission_return@entry=0x0, instance_and_params=0xbed98df0)
at ../../../gobject/gsignal.c:3635
#8 0xb66e0c0e in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=detail@entry=1, var_args=..., var_args@entry=...)
at ../../../gobject/gsignal.c:3391
#10 0xb6a9cd6c in () at /usr/lib/arm-linux-gnueabihf/libgtk-x11-2.0.so.0
</pre>
Do the same for libgtk-x11-2.0.so.0, etc. Finally, we get the full trace:
<pre>
root@maindroid:/etc/apt# gdb attach 8990
GNU gdb (Debian 8.2.1-2+b3) 8.2.1
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "arm-linux-gnueabihf".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
attach: No such file or directory.
Attaching to process 8990
[New LWP 8991]
[New LWP 8992]
[New LWP 8993]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
__libc_do_syscall () at ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S:46
46 ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S: No such file or directory.
(gdb) c
Continuing.
Thread 1 "hildon-status-m" received signal SIGSEGV, Segmentation fault.
g_type_class_meta_marshalv (closure=0xbed97c60, return_value=0x0, instance=0x955d3700, args=..., marshal_data=0x63a090, n_params=-1093038708, param_types=0x0)
at ../../../gobject/gclosure.c:1028
1028 ../../../gobject/gclosure.c: No such file or directory.
(gdb) bt
#0 0xb66cb768 in g_type_class_meta_marshalv
(closure=0xbed97c60, return_value=0x0, instance=0x955d3700, args=..., marshal_data=0x63a090, n_params=-1093038708, param_types=0x0)
at ../../../gobject/gclosure.c:1028
#1 0xb660cf16 in g_hash_table_lookup_node (hash_return=<synthetic pointer>, key=0xbed97c60, hash_table=0x544200 = {...}) at ../../../glib/ghash.c:379
#2 0xb660cf16 in g_hash_table_lookup (hash_table=0x544200 = {...}, key=key@entry=0xbed97c60) at ../../../glib/ghash.c:1153
#3 0xb64b03fe in try_plugin (dir=<optimized out>, file=file@entry=0xb474d75c "liblocation_applet.so", osso=<optimized out>) at osso-cp-plugin.c:103
#4 0xb64b0466 in osso_cp_plugin_execute (osso=0x639cb8, filename=0xb474d75c "liblocation_applet.so", data=data@entry=0x669850, user_activated=user_activated@entry=1)
at osso-cp-plugin.c:148
#5 0xb474d418 in execute_cp_plugin (obj=0x669850) at location-status.c:84
#9 0xb66e10b2 in <emit signal ??? on instance 0x669850 [HildonButton]> (instance=<optimized out>, signal_id=<optimized out>, detail=0)
at ../../../gobject/gsignal.c:3447
#6 0xb66ccb7e in g_closure_invoke (closure=0x64f0e0, return_value=0x0, n_param_values=1, param_values=0xbed98df0, invocation_hint=0xbed98d8c)
at ../../../gobject/gclosure.c:810
#7 0xb66dab0a in signal_emit_unlocked_R
(node=node@entry=0x551458, detail=0, instance=0x669850, emission_return=emission_return@entry=0x0, instance_and_params=0xbed98df0)
at ../../../gobject/gsignal.c:3635
#8 0xb66e0c0e in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=detail@entry=1, var_args=..., var_args@entry=...)
at ../../../gobject/gsignal.c:3391
#10 0xb6a9cd6c in gtk_real_button_released (button=0x669850 [HildonButton]) at /build/gtk+2.0-2.24.32/gtk/gtkbutton.c:1712
#14 0xb66e10b2 in <emit signal ??? on instance 0x669850 [HildonButton]> (instance=<optimized out>, signal_id=<optimized out>, detail=0)
at ../../../gobject/gsignal.c:3447
#11 0xb66ccb7e in g_closure_invoke (closure=0x551240, return_value=0x0, n_param_values=1, param_values=0xbed99068, invocation_hint=0xbed99004)
at ../../../gobject/gclosure.c:810
#12 0xb66dab7c in signal_emit_unlocked_R
(node=node@entry=0x551258, detail=0, instance=0x669850, emission_return=emission_return@entry=0x0, instance_and_params=0xbed99068)
at ../../../gobject/gsignal.c:3565
#13 0xb66e0c0e in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=detail@entry=3201929896, var_args=..., var_args@entry=...)
at ../../../gobject/gsignal.c:3391
#15 0xb6a9c1e4 in gtk_button_button_release (widget=<optimized out>, event=<optimized out>) at /build/gtk+2.0-2.24.32/gtk/gtkbutton.c:1604
#20 0xb66e10b2 in <emit signal ??? on instance 0x669850 [HildonButton]> (instance=instance@entry=0x669850, signal_id=<optimized out>, detail=0)
at ../../../gobject/gsignal.c:3447
#16 0xb6b0de34 in _gtk_marshal_BOOLEAN__BOXED
(closure=0x542e98, return_value=0xbed992a8, n_param_values=<optimized out>, param_values=0xbed992f8, invocation_hint=0xbed99294, marshal_data=0xb6a9c1d5 <gtk_button_button_release>) at gtkmarshalers.c:84
#17 0xb66ccb7e in g_closure_invoke (closure=0x542e98, return_value=0xbed992a8, n_param_values=2, param_values=0xbed992f8, invocation_hint=0xbed99294)
at ../../../gobject/gclosure.c:810
#18 0xb66da2e2 in signal_emit_unlocked_R
(node=node@entry=0x542ec0, detail=0, instance=0x669850, emission_return=emission_return@entry=0xbed993a8, instance_and_params=0xbed992f8)
at ../../../gobject/gsignal.c:3673
#19 0xb66e08d2 in g_signal_emit_valist (instance=instance@entry=0x669850, signal_id=<optimized out>, detail=detail@entry=3201930332, var_args=...,
var_args@entry=...) at ../../../gobject/gsignal.c:3401
#21 0xb6bccb52 in gtk_widget_event_internal (widget=widget@entry=0x669850 [HildonButton], event=event@entry=0x6e0570) at /build/gtk+2.0-2.24.32/gtk/gtkwidget.c:5211
#22 0xb6bcccd0 in IA__gtk_widget_event (widget=widget@entry=0x669850 [HildonButton], event=event@entry=0x6e0570) at /build/gtk+2.0-2.24.32/gtk/gtkwidget.c:5008
#23 0xb6b0ccaa in IA__gtk_propagate_event (widget=0x669850 [HildonButton], event=0x6e0570) at /build/gtk+2.0-2.24.32/gtk/gtkmain.c:2503
#24 0xb6b0cf9a in IA__gtk_main_do_event (event=0x6e0570) at /build/gtk+2.0-2.24.32/gtk/gtkmain.c:1698
#25 0xb6b0cf9a in IA__gtk_main_do_event (event=<optimized out>) at /build/gtk+2.0-2.24.32/gtk/gtkmain.c:1503
#26 0xb69ed6f2 in gdk_event_dispatch (source=<optimized out>, callback=<optimized out>, user_data=<optimized out>)
at /build/gtk+2.0-2.24.32/gdk/x11/gdkevents-x11.c:2425
#27 0xb661987e in g_main_dispatch (context=0x571b68) at ../../../glib/gmain.c:3182
#28 0xb661987e in g_main_context_dispatch (context=context@entry=0x571b68) at ../../../glib/gmain.c:3847
#29 0xb6619a2a in g_main_context_iterate (context=0x571b68, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:3920
#30 0xb6619ca2 in g_main_loop_run (loop=0x641090) at ../../../glib/gmain.c:4116
#31 0xb6b0c4b0 in IA__gtk_main () at /build/gtk+2.0-2.24.32/gtk/gtkmain.c:1270
#32 0xb51231f0 in main () at /usr/bin/hildon-status-menu.launch
#33 0x004d208a in main ()
</pre>
=== Debugging applications launched via maemo-launcher ===
When programs are launched via maemo-launcher (many are), like the status area applet, then to debug problems, you can attach with gdb to the running processes. However, it is more likely that you will need to recompile and debug, in which case you should stop the 'service' or program with dsmetool (if required), and invoke the program using maemo-summoner, like so:
<pre>
user@devuan:~$ gdb maemo-summoner
[...]
(gdb) r hildon-status-menu.launch
</pre>
And valgrind:
<pre>
valgrind maemo-summoner hildon-status-menu.launch
</pre>
=== Dealing with Maemo Launcher / Maemo Invoker ===
Some programs are started using Maemo Launcher, like the status menu.
Sometimes you would want to debug those applications is by starting them within valgrind or gdb, rather than attaching. First, make sure the tool is not automatically (re)started by dsme:
<pre>
sudo dsmetool -k /usr/bin/hildon-status-menu
</pre>
And then start it manually like so:
<pre>
gdb --args maemo-summoner /usr/bin/hildon-status-menu.launch
</pre>
Or in the case of valgrind:
<pre>
valgrind maemo-summoner /usr/bin/hildon-status-menu.launch
</pre>
(Note the .launch suffix)
1d21a24f3479f33e33f8857885ea7b5e1d7b05ef
1151
1150
2021-09-26T15:30:30Z
Wizzup
4
wikitext
text/x-wiki
=== Things break. How do you debug the problems? ===
You will want to take the following steps:
* Add the devuan/debian debug repositories.
* Identify the program that crashes (you can use `dpkg -S /usr/bin/program-name`) and install the -dbg or -dbgsym packages
* Install the -dbg and -dbgsym dependencies of the packages
* Attach to the program in gdb (or start it from gdb)
==== Add the debug repositories ====
Maemo Leste ships its debug packages in the normal repository, but for the Devuan/Debian packages, you need to add an additional source list file:
<pre>
# cat /etc/apt/sources.list.d/debug.list
deb http://deb.debian.org/debian-debug/ buster-debug main
deb http://deb.debian.org/debian-debug/ buster-backports-debug main
deb https://pkgmaster.devuan.org/devuan beowulf main contrib non-free
deb https://pkgmaster.devuan.org/devuan beowulf-updates main contrib non-free
deb https://pkgmaster.devuan.org/devuan beowulf-security main contrib non-free
</pre>
==== Identify the program that crashes ====
Example: location-status (the location status applet) crashes.
Find out which main program or library is likely involved in the crash. If clicking the location status applet button causes a crash, the problem is likely in that package, and we can use dpkg -S to figure out what package the file is part of, and then install the debug symbols:
<pre>
# dpkg -S /usr/lib/arm-linux-gnueabihf/hildon-desktop/location-status.so
location-status: /usr/lib/arm-linux-gnueabihf/hildon-desktop/location-status.so
# apt-cache search location-status | grep dbg
location-status-dbgsym - debug symbols for location-status
# apt install location-status-dbgsym
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following package was automatically installed and is no longer required:
libmicrodns0
Use 'apt autoremove' to remove it.
The following NEW packages will be installed:
location-status-dbgsym
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 27,1 kB of archives.
After this operation, 41,0 kB of additional disk space will be used.
0% [Working]
Get:1 https://maedevu.maemo.org/leste beowulf/main armhf location-status-dbgsym armhf 0.111-1+2m7 [27,1 kB]
Fetched 27,1 kB in 0s (55,8 kB/s)
Selecting previously unselected package location-status-dbgsym.
(Reading database ... 96891 files and directories currently installed.)
Preparing to unpack .../location-status-dbgsym_0.111-1+2m7_armhf.deb ...
Unpacking location-status-dbgsym (0.111-1+2m7) ...
Setting up location-status-dbgsym (0.111-1+2m7) ...
</pre>
==== Install additional debug files ====
To get useful stack traces, gdb typically requires the debug symbols of other libraries to be installed as well. Following our example location-status, we can get a list of all the libraries involved using ldd:
<pre>
# ldd /usr/lib/arm-linux-gnueabihf/hildon-desktop/location-status.so
</pre>
This lists a lot of libraries, so we will start with the basic ones, e.g. glib-2.0:
<pre>
root@maindroid:/etc/apt# dpkg -S /usr/lib/arm-linux-gnueabihf/libglib-2.0.so.0.5800.3
libglib2.0-0:armhf: /usr/lib/arm-linux-gnueabihf/libglib-2.0.so.0.5800.3
root@maindroid:/etc/apt# apt-cache search libglib2.0-0 | grep dbg
libglib2.0-0-dbgsym - debug symbols for libglib2.0-0
# apt install libglib2.0-0-dbgsym
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following package was automatically installed and is no longer required:
libmicrodns0
Use 'apt autoremove' to remove it.
The following NEW packages will be installed:
libglib2.0-0-dbgsym
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 4240 kB of archives.
After this operation, 4984 kB of additional disk space will be used.
Get:1 http://deb.debian.org/debian-debug buster-debug/main armhf libglib2.0-0-dbgsym armhf 2.58.3-2+deb10u2 [4240 kB]
0% [1 libglib2.0-0-dbgsym 0 B/4240 kB 0%]
Fetched 4240 kB in 3s (1278 kB/s)
Selecting previously unselected package libglib2.0-0-dbgsym:armhf.
(Reading database ... 96893 files and directories currently installed.)
Preparing to unpack .../libglib2.0-0-dbgsym_2.58.3-2+deb10u2_armhf.deb ...
Unpacking libglib2.0-0-dbgsym:armhf (2.58.3-2+deb10u2) ...
Setting up libglib2.0-0-dbgsym:armhf (2.58.3-2+deb10u2) ...
</pre>
We can repeat this process until we get satisfactory backtraces in gdb. For example:
<pre>
# gdb attach <pid>
[...]
Thread 1 "hildon-status-m" received signal SIGSEGV, Segmentation fault.
0xb6625f72 in g_atomic_ref_count_compare (arc=arc@entry=0x38, val=val@entry=0) at ../../../glib/grefcount.c:284
284 ../../../glib/grefcount.c: No such file or directory.
(gdb) bt
#0 0xb6625f72 in g_atomic_ref_count_compare (arc=arc@entry=0x38, val=val@entry=0) at ../../../glib/grefcount.c:284
#1 0xb660cf0a in g_hash_table_lookup_node
(hash_return=<synthetic pointer>, key=0xbed97c68, hash_table=<error reading variable: Cannot access memory at address 0x30>0x10) at ../../../glib/ghash.c:1153
#2 0xb660cf0a in g_hash_table_lookup (hash_table=<error reading variable: Cannot access memory at address 0x30>0x10, key=0xbed97c68) at ../../../glib/ghash.c:1153
#3 0xb64b03fe in () at /usr/lib/arm-linux-gnueabihf/libosso.so.1
</pre>
This means we should probably install debug symbols for libosso.so.1, so we add it and repeat:
<pre>
root@maindroid:/etc/apt# dpkg -S /usr/lib/arm-linux-gnueabihf/libosso.so.1
libosso1: /usr/lib/arm-linux-gnueabihf/libosso.so.1
root@maindroid:/etc/apt# apt-cache search libosso1 | grep dbg
libosso1-dbgsym - debug symbols for libosso1
root@maindroid:/etc/apt# apt install libosso1-dbgsym
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following package was automatically installed and is no longer required:
libmicrodns0
Use 'apt autoremove' to remove it.
The following NEW packages will be installed:
libosso1-dbgsym
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 111 kB of archives.
After this operation, 137 kB of additional disk space will be used.
Get:1 https://maedevu.maemo.org/leste beowulf/main armhf libosso1-dbgsym armhf 2.35+2m7 [111 kB]
Fetched 111 kB in 1s (197 kB/s)
Selecting previously unselected package libosso1-dbgsym.
(Reading database ... 96903 files and directories currently installed.)
Preparing to unpack .../libosso1-dbgsym_2.35+2m7_armhf.deb ...
Unpacking libosso1-dbgsym (2.35+2m7) ...
Setting up libosso1-dbgsym (2.35+2m7) ...
</pre>
Try again in gdb:
<pre>
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
__libc_do_syscall () at ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S:46
46 ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S: No such file or directory.
(gdb) c
Continuing.
Thread 1 "hildon-status-m" received signal SIGSEGV, Segmentation fault.
0x10460f44 in ?? ()
(gdb) bt
#0 0x10460f44 in ()
#1 0xb660cf16 in g_hash_table_lookup_node
(hash_return=<synthetic pointer>, key=0xbed97c60, hash_table=0xb66cb765<error reading variable: Cannot access memory at address 0x2dbf004b>)
at ../../../glib/ghash.c:379
#2 0xb660cf16 in g_hash_table_lookup (hash_table=0xb66cb765<error reading variable: Cannot access memory at address 0x2dbf004b>, key=key@entry=0xbed97c60)
at ../../../glib/ghash.c:1153
#3 0xb64b03fe in try_plugin (dir=<optimized out>, file=file@entry=0xb474d75c "liblocation_applet.so", osso=<optimized out>) at osso-cp-plugin.c:103
#4 0xb64b0466 in osso_cp_plugin_execute (osso=0x63a4b8, filename=0xb474d75c "liblocation_applet.so", data=data@entry=0x669850, user_activated=user_activated@entry=1)
at osso-cp-plugin.c:148
#5 0xb474d418 in execute_cp_plugin (obj=0x669850) at location-status.c:84
#9 0xb66e10b2 in <emit signal ??? on instance 0x669850 [HildonButton]> (instance=<optimized out>, signal_id=<optimized out>, detail=0)
at ../../../gobject/gsignal.c:3447
#6 0xb66ccb7e in g_closure_invoke (closure=0x664af8, return_value=0x0, n_param_values=1, param_values=0xbed98df0, invocation_hint=0xbed98d8c)
at ../../../gobject/gclosure.c:810
#7 0xb66dab0a in signal_emit_unlocked_R
(node=node@entry=0x551458, detail=0, instance=0x669850, emission_return=emission_return@entry=0x0, instance_and_params=0xbed98df0)
at ../../../gobject/gsignal.c:3635
#8 0xb66e0c0e in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=detail@entry=1, var_args=..., var_args@entry=...)
at ../../../gobject/gsignal.c:3391
#10 0xb6a9cd6c in () at /usr/lib/arm-linux-gnueabihf/libgtk-x11-2.0.so.0
</pre>
Do the same for libgtk-x11-2.0.so.0, etc. Finally, we get the full trace:
<pre>
root@maindroid:/etc/apt# gdb attach 8990
GNU gdb (Debian 8.2.1-2+b3) 8.2.1
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "arm-linux-gnueabihf".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
attach: No such file or directory.
Attaching to process 8990
[New LWP 8991]
[New LWP 8992]
[New LWP 8993]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
__libc_do_syscall () at ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S:46
46 ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S: No such file or directory.
(gdb) c
Continuing.
Thread 1 "hildon-status-m" received signal SIGSEGV, Segmentation fault.
g_type_class_meta_marshalv (closure=0xbed97c60, return_value=0x0, instance=0x955d3700, args=..., marshal_data=0x63a090, n_params=-1093038708, param_types=0x0)
at ../../../gobject/gclosure.c:1028
1028 ../../../gobject/gclosure.c: No such file or directory.
(gdb) bt
#0 0xb66cb768 in g_type_class_meta_marshalv
(closure=0xbed97c60, return_value=0x0, instance=0x955d3700, args=..., marshal_data=0x63a090, n_params=-1093038708, param_types=0x0)
at ../../../gobject/gclosure.c:1028
#1 0xb660cf16 in g_hash_table_lookup_node (hash_return=<synthetic pointer>, key=0xbed97c60, hash_table=0x544200 = {...}) at ../../../glib/ghash.c:379
#2 0xb660cf16 in g_hash_table_lookup (hash_table=0x544200 = {...}, key=key@entry=0xbed97c60) at ../../../glib/ghash.c:1153
#3 0xb64b03fe in try_plugin (dir=<optimized out>, file=file@entry=0xb474d75c "liblocation_applet.so", osso=<optimized out>) at osso-cp-plugin.c:103
#4 0xb64b0466 in osso_cp_plugin_execute (osso=0x639cb8, filename=0xb474d75c "liblocation_applet.so", data=data@entry=0x669850, user_activated=user_activated@entry=1)
at osso-cp-plugin.c:148
#5 0xb474d418 in execute_cp_plugin (obj=0x669850) at location-status.c:84
#9 0xb66e10b2 in <emit signal ??? on instance 0x669850 [HildonButton]> (instance=<optimized out>, signal_id=<optimized out>, detail=0)
at ../../../gobject/gsignal.c:3447
#6 0xb66ccb7e in g_closure_invoke (closure=0x64f0e0, return_value=0x0, n_param_values=1, param_values=0xbed98df0, invocation_hint=0xbed98d8c)
at ../../../gobject/gclosure.c:810
#7 0xb66dab0a in signal_emit_unlocked_R
(node=node@entry=0x551458, detail=0, instance=0x669850, emission_return=emission_return@entry=0x0, instance_and_params=0xbed98df0)
at ../../../gobject/gsignal.c:3635
#8 0xb66e0c0e in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=detail@entry=1, var_args=..., var_args@entry=...)
at ../../../gobject/gsignal.c:3391
#10 0xb6a9cd6c in gtk_real_button_released (button=0x669850 [HildonButton]) at /build/gtk+2.0-2.24.32/gtk/gtkbutton.c:1712
#14 0xb66e10b2 in <emit signal ??? on instance 0x669850 [HildonButton]> (instance=<optimized out>, signal_id=<optimized out>, detail=0)
at ../../../gobject/gsignal.c:3447
#11 0xb66ccb7e in g_closure_invoke (closure=0x551240, return_value=0x0, n_param_values=1, param_values=0xbed99068, invocation_hint=0xbed99004)
at ../../../gobject/gclosure.c:810
#12 0xb66dab7c in signal_emit_unlocked_R
(node=node@entry=0x551258, detail=0, instance=0x669850, emission_return=emission_return@entry=0x0, instance_and_params=0xbed99068)
at ../../../gobject/gsignal.c:3565
#13 0xb66e0c0e in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=detail@entry=3201929896, var_args=..., var_args@entry=...)
at ../../../gobject/gsignal.c:3391
#15 0xb6a9c1e4 in gtk_button_button_release (widget=<optimized out>, event=<optimized out>) at /build/gtk+2.0-2.24.32/gtk/gtkbutton.c:1604
#20 0xb66e10b2 in <emit signal ??? on instance 0x669850 [HildonButton]> (instance=instance@entry=0x669850, signal_id=<optimized out>, detail=0)
at ../../../gobject/gsignal.c:3447
#16 0xb6b0de34 in _gtk_marshal_BOOLEAN__BOXED
(closure=0x542e98, return_value=0xbed992a8, n_param_values=<optimized out>, param_values=0xbed992f8, invocation_hint=0xbed99294, marshal_data=0xb6a9c1d5 <gtk_button_button_release>) at gtkmarshalers.c:84
#17 0xb66ccb7e in g_closure_invoke (closure=0x542e98, return_value=0xbed992a8, n_param_values=2, param_values=0xbed992f8, invocation_hint=0xbed99294)
at ../../../gobject/gclosure.c:810
#18 0xb66da2e2 in signal_emit_unlocked_R
(node=node@entry=0x542ec0, detail=0, instance=0x669850, emission_return=emission_return@entry=0xbed993a8, instance_and_params=0xbed992f8)
at ../../../gobject/gsignal.c:3673
#19 0xb66e08d2 in g_signal_emit_valist (instance=instance@entry=0x669850, signal_id=<optimized out>, detail=detail@entry=3201930332, var_args=...,
var_args@entry=...) at ../../../gobject/gsignal.c:3401
#21 0xb6bccb52 in gtk_widget_event_internal (widget=widget@entry=0x669850 [HildonButton], event=event@entry=0x6e0570) at /build/gtk+2.0-2.24.32/gtk/gtkwidget.c:5211
#22 0xb6bcccd0 in IA__gtk_widget_event (widget=widget@entry=0x669850 [HildonButton], event=event@entry=0x6e0570) at /build/gtk+2.0-2.24.32/gtk/gtkwidget.c:5008
#23 0xb6b0ccaa in IA__gtk_propagate_event (widget=0x669850 [HildonButton], event=0x6e0570) at /build/gtk+2.0-2.24.32/gtk/gtkmain.c:2503
#24 0xb6b0cf9a in IA__gtk_main_do_event (event=0x6e0570) at /build/gtk+2.0-2.24.32/gtk/gtkmain.c:1698
#25 0xb6b0cf9a in IA__gtk_main_do_event (event=<optimized out>) at /build/gtk+2.0-2.24.32/gtk/gtkmain.c:1503
#26 0xb69ed6f2 in gdk_event_dispatch (source=<optimized out>, callback=<optimized out>, user_data=<optimized out>)
at /build/gtk+2.0-2.24.32/gdk/x11/gdkevents-x11.c:2425
#27 0xb661987e in g_main_dispatch (context=0x571b68) at ../../../glib/gmain.c:3182
#28 0xb661987e in g_main_context_dispatch (context=context@entry=0x571b68) at ../../../glib/gmain.c:3847
#29 0xb6619a2a in g_main_context_iterate (context=0x571b68, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:3920
#30 0xb6619ca2 in g_main_loop_run (loop=0x641090) at ../../../glib/gmain.c:4116
#31 0xb6b0c4b0 in IA__gtk_main () at /build/gtk+2.0-2.24.32/gtk/gtkmain.c:1270
#32 0xb51231f0 in main () at /usr/bin/hildon-status-menu.launch
#33 0x004d208a in main ()
</pre>
=== Dealing with Maemo Launcher / Maemo Invoker ===
Some programs are started using Maemo Launcher, like the status menu.
Sometimes you would want to debug those applications is by starting them within valgrind or gdb, rather than attaching. First, make sure the tool is not automatically (re)started by dsme:
<pre>
sudo dsmetool -k /usr/bin/hildon-status-menu
</pre>
And then start it manually like so:
<pre>
gdb --args maemo-summoner /usr/bin/hildon-status-menu.launch
</pre>
Or in the case of valgrind:
<pre>
valgrind maemo-summoner /usr/bin/hildon-status-menu.launch
</pre>
(Note the .launch suffix)
2cab7b8588cf9ac035435b856164c74045f7f9b0
IRC channel
0
54
1152
1016
2021-10-01T09:23:54Z
Wizzup
4
wikitext
text/x-wiki
We are on '''irc.libera.chat''' ; channel '''#maemo-leste'''
We want everyone to feel free in our channel, but also remain productive. Therefore, while we do not 'police' the channel, it is also good etiquette to remain on-topic as far as possible.
If you use Matrix, then you can connect to the IRC channel via Libera's bridge. Simply join the room '''#maemo-leste:libera.chat'''. However, please note the following caveats when using the bridge:
* Matrix allows a message to have multiple lines (i.e. include returns). This does not look good on IRC clients. Therefore, please refrain from sending multi-line messages
* Matrix allows sending media and files within the chat, while IRC does not. On IRC, this will appear as an URL. Please do not send any media or files directly into an IRC room. Use a pastebin, and paste the URL to the item, and include a brief explanation about the link. Otherwise no one might be willing to open it
9c7857841984d890ed61dfc1dcba31e26a2668ad
Wireguard
0
153
1153
2021-10-02T22:55:26Z
Wizzup
4
Created page with "= Wireguard = Wireguard support is integrated in Maemo Leste (through ICD2) and is available for installation using the package manager. Once you've installed the package, r..."
wikitext
text/x-wiki
= Wireguard =
Wireguard support is integrated in Maemo Leste (through ICD2) and is available for installation using the package manager. Once you've installed the package, restart the device. You should now see a Wireguard applet in the control panel, and a Wireguard applet in the status applet.
There is also support to enable Wireguard only for specific IAPs. To do this, go to the advanced settings of any IAP in the Internet Connections control applet, and navigate to the "Providers" tab. In this tab, select Wireguard as the provider tab, and select your preferred config.
== Configuring Wireguard using the UI ==
In the control panel, you should be able to create a new configuration. Make sure to share get the public key from the other endpoints (and other peers, if applicable), and make sure to copy the public key of your device to the endpoint (and/or peers).
Then, in the status applet, select the config you'd like, and enable system wide mode. At this point, connecting to any IAP should cause the wireguard connection to start. If the Wireguard connection fails to start in system wide mode, the IAP will be disconnected. See the "Debugging" section of this article to debug potential problems.
=== Using a config file ===
For sophisticated setups that are potentially not supported in our configuration user interface, it is possible to create a configuration using the "Load" button in the Wireguard control panel applet. This allows you select a file (path!) to a pre-generated configuration. When the configuration associated with this file is loaded, the contents will be used verbatim.
=== Tunnelling all traffic over Wireguard ===
Typically, setting "Allowed IPs" to "0.0.0.0/0" and allowing packet forwarding on the endpoint ought to be enough to make all Maemo traffic go over Wireguard - but keep in mind you might need to set a DNS server (in the Wireguard configuration) that is outside of your LAN.
== Debugging ==
ICD2 will create the /etc/wireguard/icdwg0.conf file, so if the Wireguard connection fails to start for you, try tunning "wg-quick up icdwg0" and look for any errors. Any other errors beyond wg-quick will require the usual network knowledge to debug (and is not specific to Maemo).
4bb35e727076363175bd8242eef7224ad90e178a
1155
1153
2021-10-02T23:03:01Z
Wizzup
4
wikitext
text/x-wiki
= Wireguard =
Wireguard support is integrated in Maemo Leste (through ICD2) and is available for installation using the package manager. Once you've installed the package, restart the device. You should now see a Wireguard applet in the control panel, and a Wireguard applet in the status applet.
There is also support to enable Wireguard only for specific IAPs. To do this, go to the advanced settings of any IAP in the Internet Connections control applet, and navigate to the "Providers" tab. In this tab, select Wireguard as the provider tab, and select your preferred config.
== Configuring Wireguard using the UI ==
In the control panel, you should be able to create a new configuration. Make sure to share get the public key from the other endpoints (and other peers, if applicable), and make sure to copy the public key of your device to the endpoint (and/or peers).
Then, in the status applet, select the config you'd like, and enable system wide mode. At this point, connecting to any IAP should cause the wireguard connection to start. If the Wireguard connection fails to start in system wide mode, the IAP will be disconnected. See the "Debugging" section of this article to debug potential problems.
=== Using a config file ===
For sophisticated setups that are potentially not supported in our configuration user interface, it is possible to create a configuration using the "Load" button in the Wireguard control panel applet. This allows you select a file (path!) to a pre-generated configuration. When the configuration associated with this file is loaded, the contents will be used verbatim.
=== Tunnelling all traffic over Wireguard ===
Typically, setting "Allowed IPs" to "0.0.0.0/0" and allowing packet forwarding on the endpoint ought to be enough to make all Maemo traffic go over Wireguard - but keep in mind you might need to set a DNS server (in the Wireguard configuration) that is outside of your LAN.
== Debugging ==
ICD2 will create the /etc/wireguard/icdwg0.conf file, so if the Wireguard connection fails to start for you, try tunning "wg-quick up icdwg0" and look for any errors. Any other errors beyond wg-quick will require the usual network knowledge to debug (and is not specific to Maemo).
== Gallery ==
<gallery>
WireguardConnected.png
</gallery>
70cc9120979772f5e8c03df7dd88788d379af9fb
1158
1155
2021-10-02T23:03:44Z
Wizzup
4
wikitext
text/x-wiki
= Wireguard =
Wireguard support is integrated in Maemo Leste (through ICD2) and is available for installation using the package manager. Once you've installed the package, restart the device. You should now see a Wireguard applet in the control panel, and a Wireguard applet in the status applet.
There is also support to enable Wireguard only for specific IAPs. To do this, go to the advanced settings of any IAP in the Internet Connections control applet, and navigate to the "Providers" tab. In this tab, select Wireguard as the provider tab, and select your preferred config.
== Configuring Wireguard using the UI ==
In the control panel, you should be able to create a new configuration. Make sure to share get the public key from the other endpoints (and other peers, if applicable), and make sure to copy the public key of your device to the endpoint (and/or peers).
Then, in the status applet, select the config you'd like, and enable system wide mode. At this point, connecting to any IAP should cause the wireguard connection to start. If the Wireguard connection fails to start in system wide mode, the IAP will be disconnected. See the "Debugging" section of this article to debug potential problems.
=== Using a config file ===
For sophisticated setups that are potentially not supported in our configuration user interface, it is possible to create a configuration using the "Load" button in the Wireguard control panel applet. This allows you select a file (path!) to a pre-generated configuration. When the configuration associated with this file is loaded, the contents will be used verbatim.
=== Tunnelling all traffic over Wireguard ===
Typically, setting "Allowed IPs" to "0.0.0.0/0" and allowing packet forwarding on the endpoint ought to be enough to make all Maemo traffic go over Wireguard - but keep in mind you might need to set a DNS server (in the Wireguard configuration) that is outside of your LAN.
== Debugging ==
ICD2 will create the /etc/wireguard/icdwg0.conf file, so if the Wireguard connection fails to start for you, try tunning "wg-quick up icdwg0" and look for any errors. Any other errors beyond wg-quick will require the usual network knowledge to debug (and is not specific to Maemo).
== Gallery ==
<gallery>
WireguardConnected.png
WireguardCPA.png
WireguardCPA2.png
</gallery>
48af80ebb06d013f7f006ee3842041b7b7bed298
1160
1158
2021-10-02T23:05:36Z
Wizzup
4
wikitext
text/x-wiki
= Wireguard =
Wireguard support is integrated in Maemo Leste (through ICD2) and is available for installation using the package manager. Once you've installed the package, restart the device. You should now see a Wireguard applet in the control panel, and a Wireguard applet in the status applet.
There is also support to enable Wireguard only for specific IAPs. To do this, go to the advanced settings of any IAP in the Internet Connections control applet, and navigate to the "Providers" tab. In this tab, select Wireguard as the provider tab, and select your preferred config.
== Configuring Wireguard using the UI ==
In the control panel, you should be able to create a new configuration. Make sure to share get the public key from the other endpoints (and other peers, if applicable), and make sure to copy the public key of your device to the endpoint (and/or peers).
Then, in the status applet, select the config you'd like, and enable system wide mode. At this point, connecting to any IAP should cause the wireguard connection to start. If the Wireguard connection fails to start in system wide mode, the IAP will be disconnected. See the "Debugging" section of this article to debug potential problems.
=== Using a config file ===
For sophisticated setups that are potentially not supported in our configuration user interface, it is possible to create a configuration using the "Load" button in the Wireguard control panel applet. This allows you select a file (path!) to a pre-generated configuration. When the configuration associated with this file is loaded, the contents will be used verbatim.
=== Tunnelling all traffic over Wireguard ===
Typically, setting "Allowed IPs" to "0.0.0.0/0" and allowing packet forwarding on the endpoint ought to be enough to make all Maemo traffic go over Wireguard - but keep in mind you might need to set a DNS server (in the Wireguard configuration) that is outside of your LAN.
== Debugging ==
ICD2 will create the /etc/wireguard/icdwg0.conf file, so if the Wireguard connection fails to start for you, try tunning "wg-quick up icdwg0" and look for any errors. Any other errors beyond wg-quick will require the usual network knowledge to debug (and is not specific to Maemo).
== Gallery ==
<gallery>
WireguardAppMgr.png
WireguardConnected.png
WireguardCPA.png
WireguardCPA2.png
</gallery>
a3eb2a0bf67ad6d845fff902b3fa347f6b55aaee
1163
1160
2021-10-02T23:10:33Z
Wizzup
4
wikitext
text/x-wiki
= Wireguard =
Wireguard support is integrated in Maemo Leste (through ICD2) and is available for installation using the package manager. Once you've installed the package, restart the device. You should now see a Wireguard applet in the control panel, and a Wireguard applet in the status applet.
There is also support to enable Wireguard only for specific IAPs. To do this, go to the advanced settings of any IAP in the Internet Connections control applet, and navigate to the "Providers" tab. In this tab, select Wireguard as the provider tab, and select your preferred config.
== Configuring Wireguard using the UI ==
In the control panel, you should be able to create a new configuration. Make sure to share get the public key from the other endpoints (and other peers, if applicable), and make sure to copy the public key of your device to the endpoint (and/or peers).
Then, in the status applet, select the config you'd like, and enable system wide mode. At this point, connecting to any IAP should cause the wireguard connection to start. If the Wireguard connection fails to start in system wide mode, the IAP will be disconnected. See the "Debugging" section of this article to debug potential problems.
=== Using a config file ===
For sophisticated setups that are potentially not supported in our configuration user interface, it is possible to create a configuration using the "Load" button in the Wireguard control panel applet. This allows you select a file (path!) to a pre-generated configuration. When the configuration associated with this file is loaded, the contents will be used verbatim.
=== Tunnelling all traffic over Wireguard ===
Typically, setting "Allowed IPs" to "0.0.0.0/0" and allowing packet forwarding on the endpoint ought to be enough to make all Maemo traffic go over Wireguard - but keep in mind you might need to set a DNS server (in the Wireguard configuration) that is outside of your LAN.
== Debugging ==
ICD2 will create the /etc/wireguard/icdwg0.conf file, so if the Wireguard connection fails to start for you, try tunning "wg-quick up icdwg0" and look for any errors. Any other errors beyond wg-quick will require the usual network knowledge to debug (and is not specific to Maemo).
== Gallery ==
<gallery>
WireguardAppMgr.png
WireguardProvider2.png
WireguardConnected.png
WireguardCPA.png
WireguardCPA2.png
WireguardProvider.png
</gallery>
9180728dfbca7d703fb20e6080005457ea2ea54c
1164
1163
2021-10-02T23:35:44Z
Wizzup
4
wikitext
text/x-wiki
= Wireguard =
Wireguard support is integrated in Maemo Leste (through ICD2) and is available for installation using the package manager. Once you've installed the package, restart the device. You should now see a Wireguard applet in the control panel, and a Wireguard applet in the status applet.
There is also support to enable Wireguard only for specific IAPs. To do this, go to the advanced settings of any IAP in the Internet Connections control applet, and navigate to the "Providers" tab. In this tab, select Wireguard as the provider tab, and select your preferred config.
== Configuring Wireguard using the UI ==
In the control panel, you should be able to create a new configuration. Make sure to share get the public key from the other endpoints (and other peers, if applicable), and make sure to copy the public key of your device to the endpoint (and/or peers).
Then, in the status applet, select the config you'd like, and enable system wide mode. At this point, connecting to any IAP should cause the wireguard connection to start. If the Wireguard connection fails to start in system wide mode, the IAP will be disconnected. See the "Debugging" section of this article to debug potential problems.
=== Using a config file ===
For sophisticated setups that are potentially not supported in our configuration user interface, it is possible to create a configuration using the "Load" button in the Wireguard control panel applet. This allows you select a file (path!) to a pre-generated configuration. When the configuration associated with this file is loaded, the contents will be used verbatim.
=== Tunnelling all traffic over Wireguard ===
Typically, setting "Allowed IPs" to "0.0.0.0/0" and allowing packet forwarding on the endpoint ought to be enough to make all Maemo traffic go over Wireguard - but keep in mind you might need to set a DNS server (in the Wireguard configuration) that is outside of your LAN.
== Debugging ==
ICD2 will create the /etc/wireguard/icdwg0.conf file, so if the Wireguard connection fails to start for you, try tunning "wg-quick up icdwg0" and look for any errors. Any other errors beyond wg-quick will require the usual network knowledge to debug (and is not specific to Maemo).
== Gallery ==
<gallery widths=320px heights=173px>
WireguardAppMgr.png
WireguardProvider2.png
WireguardConnected.png
WireguardCPA.png
WireguardCPA2.png
WireguardProvider.png
</gallery>
af88269c79b43aa80d4acf9dc0868e3dabc570a1
1165
1164
2021-10-02T23:47:02Z
Wizzup
4
wikitext
text/x-wiki
= Wireguard =
Wireguard support is integrated in Maemo Leste (through ICD2) and is available for installation using the package manager. Once you've installed the package, restart the device. You should now see a Wireguard applet in the control panel, and a Wireguard applet in the status applet.
There is also support to enable Wireguard only for specific IAPs. To do this, go to the advanced settings of any IAP in the Internet Connections control applet, and navigate to the "Providers" tab. In this tab, select Wireguard as the provider tab, and select your preferred config.
== Configuring Wireguard using the UI ==
In the control panel, you should be able to create a new configuration. Make sure to share get the public key from the other endpoints (and other peers, if applicable), and make sure to copy the public key of your device to the endpoint (and/or peers).
Then, in the status applet, select the config you'd like, and enable system wide mode. At this point, connecting to any IAP should cause the wireguard connection to start. If the Wireguard connection fails to start in system wide mode, the IAP will be disconnected. See the "Debugging" section of this article to debug potential problems.
=== Using a config file ===
For sophisticated setups that are potentially not supported in our configuration user interface, it is possible to create a configuration using the "Load" button in the Wireguard control panel applet. This allows you select a file (path!) to a pre-generated configuration. When the configuration associated with this file is loaded, the contents will be used verbatim.
=== Tunnelling all traffic over Wireguard ===
Typically, setting "Allowed IPs" to "0.0.0.0/0" and allowing packet forwarding on the endpoint ought to be enough to make all Maemo traffic go over Wireguard - but keep in mind you might need to set a DNS server (in the Wireguard configuration) that is outside of your LAN.
== Debugging ==
ICD2 will create the /etc/wireguard/icdwg0.conf file, so if the Wireguard connection fails to start for you, try tunning "wg-quick up icdwg0" and look for any errors. Any other errors beyond wg-quick will require the usual network knowledge to debug (and is not specific to Maemo).
== Gallery ==
<gallery widths=320px heights=173px>
WireguardAppMgr.png|Wireguard is installable from the application manager
WireguardProvider2.png|It is possible to specify using Wireguard per connection (IAP)
WireguardConnected.png|Wireguard is connected
WireguardCPA.png|Wireguard control panel applet icon
WireguardCPA2.png|Wireguard control panel, editing a configuration
WireguardProvider.png|Setting a per connection (IAP) Wireguard configuration
</gallery>
889020a753c20ae8df2847636cb394b70e8c2c49
1166
1165
2021-10-02T23:50:28Z
Wizzup
4
wikitext
text/x-wiki
= Wireguard =
Wireguard support is integrated in Maemo Leste (through ICD2) and is available for installation using the package manager. Once you've installed the package, restart the device. You should now see a Wireguard applet in the control panel, and a Wireguard applet in the status applet.
There is also support to enable Wireguard only for specific IAPs. To do this, go to the advanced settings of any IAP in the Internet Connections control applet, and navigate to the "Providers" tab. In this tab, select Wireguard as the provider tab, and select your preferred config.
== Configuring Wireguard using the UI ==
In the control panel, you should be able to create a new configuration. Make sure to share get the public key from the other endpoints (and other peers, if applicable), and make sure to copy the public key of your device to the endpoint (and/or peers).
Then, in the status applet, select the config you'd like, and enable system wide mode. At this point, connecting to any IAP should cause the wireguard connection to start. If the Wireguard connection fails to start in system wide mode, the IAP will be disconnected. See the "Debugging" section of this article to debug potential problems.
=== Using a config file ===
For sophisticated setups that are potentially not supported in our configuration user interface, it is possible to create a configuration using the "Load" button in the Wireguard control panel applet. This allows you select a file (path!) to a pre-generated configuration. When the configuration associated with this file is loaded, the contents will be used verbatim.
=== Tunnelling all traffic over Wireguard ===
Typically, setting <code>Allowed IPs</code> to <code>0.0.0.0/0</code> (for one of the peers) and allowing packet forwarding on the endpoint ought to be enough to make all Maemo traffic go over Wireguard - but keep in mind you might need to set a DNS server (in the Wireguard configuration) that is outside of your LAN.
== Debugging ==
ICD2 will create the <code>/etc/wireguard/icdwg0.conf</code> file, so if the Wireguard connection fails to start for you, try running <code>sudo wg-quick up icdwg0</code> and look for any errors.
Most other errors beyond wg-quick will require the usual network knowledge to debug (and are not specific to Maemo).
== Gallery ==
<gallery widths=320px heights=173px>
WireguardAppMgr.png|Wireguard is installable from the application manager
WireguardProvider2.png|It is possible to specify using Wireguard per connection (IAP)
WireguardConnected.png|Wireguard is connected
WireguardCPA.png|Wireguard control panel applet icon
WireguardCPA2.png|Wireguard control panel, editing a configuration
WireguardProvider.png|Setting a per connection (IAP) Wireguard configuration
</gallery>
8c715a6774741c44f4158fdeffe2047be025ef4d
1167
1166
2021-10-03T09:42:56Z
Wizzup
4
wikitext
text/x-wiki
= Wireguard =
[https://www.wireguard.com/ Wireguard] support is integrated in Maemo Leste (through ICD2) and is available for installation using the package manager. Once you've installed the package, restart the device. You should now see a Wireguard applet in the control panel, and a Wireguard applet in the status applet.
There is also support to enable Wireguard only for specific IAPs. To do this, go to the advanced settings of any IAP in the Internet Connections control applet, and navigate to the "Providers" tab. In this tab, select Wireguard as the provider tab, and select your preferred config.
== Configuring Wireguard using the UI ==
In the control panel, you should be able to create a new configuration. Make sure to share get the public key from the other endpoints (and other peers, if applicable), and make sure to copy the public key of your device to the endpoint (and/or peers).
Then, in the status applet, select the config you'd like, and enable system wide mode. At this point, connecting to any IAP should cause the wireguard connection to start. If the Wireguard connection fails to start in system wide mode, the IAP will be disconnected. See the "Debugging" section of this article to debug potential problems.
=== Using a config file ===
For sophisticated setups that are potentially not supported in our configuration user interface, it is possible to create a configuration using the "Load" button in the Wireguard control panel applet. This allows you select a file (path!) to a pre-generated configuration. When the configuration associated with this file is loaded, the contents will be used verbatim.
=== Tunnelling all traffic over Wireguard ===
Typically, setting <code>Allowed IPs</code> to <code>0.0.0.0/0</code> (for one of the peers) and allowing packet forwarding on the endpoint ought to be enough to make all Maemo traffic go over Wireguard - but keep in mind you might need to set a DNS server (in the Wireguard configuration) that is outside of your LAN.
== Debugging ==
ICD2 will create the <code>/etc/wireguard/icdwg0.conf</code> file, so if the Wireguard connection fails to start for you, try running <code>sudo wg-quick up icdwg0</code> and look for any errors.
Most other errors beyond wg-quick will require the usual network knowledge to debug (and are not specific to Maemo).
== Gallery ==
<gallery widths=320px heights=173px>
WireguardAppMgr.png|Wireguard is installable from the application manager
WireguardProvider2.png|It is possible to specify using Wireguard per connection (IAP)
WireguardConnected.png|Wireguard is connected
WireguardCPA.png|Wireguard control panel applet icon
WireguardCPA2.png|Wireguard control panel, editing a configuration
WireguardProvider.png|Setting a per connection (IAP) Wireguard configuration
</gallery>
30d93bfa6f00829cd1cf975d837e30b5d20fa086
1168
1167
2021-10-03T09:52:45Z
Wizzup
4
wikitext
text/x-wiki
= Wireguard =
[https://www.wireguard.com/ Wireguard] support is integrated in Maemo Leste (through ICD2) and is available for installation using the package manager. Once you've installed the package, restart the device. You should now see a Wireguard applet in the control panel, and a Wireguard applet in the status applet.
There is also support to enable Wireguard only for specific IAPs. To do this, go to the advanced settings of any IAP in the Internet Connections control applet, and navigate to the "Providers" tab. In this tab, select Wireguard as the provider tab, and select your preferred config.
== Configuring Wireguard using the UI ==
In the control panel, you should be able to create a new configuration. Make sure to share get the public key from the other endpoints (and other peers, if applicable), and make sure to copy the public key of your device to the endpoint (and/or peers).
Then, in the status applet, select the config you'd like, and enable system wide mode. At this point, connecting to any IAP should cause the wireguard connection to start. If the Wireguard connection fails to start in system wide mode, the IAP will be disconnected. See the "Debugging" section of this article to debug potential problems.
=== Using a config file ===
For sophisticated setups that are potentially not supported in our configuration user interface, it is possible to create a configuration using the "Load" button in the Wireguard control panel applet. This allows you select a file (path!) to a pre-generated configuration. When the configuration associated with this file is loaded, the contents will be used verbatim. (This may be replaced in the future, as the PostUp and such lines could potentially be edited by non-root users but run as root!)
=== Tunnelling all traffic over Wireguard ===
Typically, setting <code>Allowed IPs</code> to <code>0.0.0.0/0</code> (for one of the peers) and allowing packet forwarding on the endpoint ought to be enough to make all Maemo traffic go over Wireguard - but keep in mind you might need to set a DNS server (in the Wireguard configuration) that is outside of your LAN.
== Debugging ==
ICD2 will create the <code>/etc/wireguard/icdwg0.conf</code> file, so if the Wireguard connection fails to start for you, try running <code>sudo wg-quick up icdwg0</code> and look for any errors.
Most other errors beyond wg-quick will require the usual network knowledge to debug (and are not specific to Maemo).
== Gallery ==
<gallery widths=320px heights=173px>
WireguardAppMgr.png|Wireguard is installable from the application manager
WireguardProvider2.png|It is possible to specify using Wireguard per connection (IAP)
WireguardConnected.png|Wireguard is connected
WireguardCPA.png|Wireguard control panel applet icon
WireguardCPA2.png|Wireguard control panel, editing a configuration
WireguardProvider.png|Setting a per connection (IAP) Wireguard configuration
</gallery>
8b0d7589bc85be91022c8c1294b7fda1379b2464
1169
1168
2021-10-03T09:54:19Z
Wizzup
4
wikitext
text/x-wiki
= Wireguard in Maemo Leste =
[https://www.wireguard.com/ Wireguard] support is integrated in Maemo Leste (through ICD2) and is available for installation using the package manager. Once you've installed the package, restart the device. You should now see a Wireguard applet in the control panel, and a Wireguard applet in the status applet.
There is also support to enable Wireguard only for specific IAPs. To do this, go to the advanced settings of any IAP in the Internet Connections control applet, and navigate to the "Providers" tab. In this tab, select Wireguard as the provider tab, and select your preferred config.
== Configuring Wireguard using the UI ==
In the control panel, you should be able to create a new configuration. Make sure to share get the public key from the other endpoints (and other peers, if applicable), and make sure to copy the public key of your device to the endpoint (and/or peers).
Then, in the status applet, select the config you'd like, and enable system wide mode. At this point, connecting to any IAP should cause the wireguard connection to start. If the Wireguard connection fails to start in system wide mode, the IAP will be disconnected. See the "Debugging" section of this article to debug potential problems.
=== Using a config file ===
For sophisticated setups that are potentially not supported in our configuration user interface, it is possible to create a configuration using the "Load" button in the Wireguard control panel applet. This allows you select a file (path!) to a pre-generated configuration. When the configuration associated with this file is loaded, the contents will be used verbatim. (This may be replaced in the future, as the PostUp and such lines could potentially be edited by non-root users but run as root!)
=== Tunnelling all traffic over Wireguard ===
Typically, setting <code>Allowed IPs</code> to <code>0.0.0.0/0</code> (for one of the peers) and allowing packet forwarding on the endpoint ought to be enough to make all Maemo traffic go over Wireguard - but keep in mind you might need to set a DNS server (in the Wireguard configuration) that is outside of your LAN.
== Debugging ==
ICD2 will create the <code>/etc/wireguard/icdwg0.conf</code> file, so if the Wireguard connection fails to start for you, try running <code>sudo wg-quick up icdwg0</code> and look for any errors.
Most other errors beyond wg-quick will require the usual network knowledge to debug (and are not specific to Maemo).
== Gallery ==
<gallery widths=320px heights=173px>
WireguardAppMgr.png|Wireguard is installable from the application manager
WireguardProvider2.png|It is possible to specify using Wireguard per connection (IAP)
WireguardConnected.png|Wireguard is connected
WireguardCPA.png|Wireguard control panel applet icon
WireguardCPA2.png|Wireguard control panel, editing a configuration
WireguardProvider.png|Setting a per connection (IAP) Wireguard configuration
</gallery>
698d5ba41588c95f2a76a2ae5255f7a5d5a7d033
1182
1169
2021-10-10T09:06:13Z
Wizzup
4
wikitext
text/x-wiki
= Wireguard in Maemo Leste =
[https://www.wireguard.com/ Wireguard] support is integrated in Maemo Leste (through ICD2) and is available for installation using the package manager. Once you've installed the package, restart the device. You should now see a Wireguard applet in the control panel, and a Wireguard applet in the status applet.
There is also support to enable Wireguard only for specific IAPs. To do this, go to the advanced settings of any IAP in the Internet Connections control applet, and navigate to the "Providers" tab. In this tab, select Wireguard as the provider tab, and select your preferred config.
== Configuring Wireguard using the UI ==
In the control panel, you should be able to create a new configuration. Make sure to share get the public key from the other endpoints (and other peers, if applicable), and make sure to copy the public key of your device to the endpoint (and/or peers).
Then, in the status applet, select the config you'd like, and enable system wide mode. At this point, connecting to any IAP should cause the wireguard connection to start. If the Wireguard connection fails to start in system wide mode, the IAP will be disconnected. See the "Debugging" section of this article to debug potential problems.
=== Using a config file ===
For sophisticated setups that are potentially not supported in our configuration user interface, it is possible to create a configuration using the "Load" button in the Wireguard control panel applet. This allows you select a file (path!) to a pre-generated configuration. When the configuration associated with this file is loaded, the contents will be used verbatim. (This may be replaced in the future, as the PostUp and such lines could potentially be edited by non-root users but run as root!)
=== Tunnelling all traffic over Wireguard ===
Typically, setting <code>Allowed IPs</code> to <code>0.0.0.0/0</code> (for one of the peers) and allowing packet forwarding on the endpoint ought to be enough to make all Maemo traffic go over Wireguard - but keep in mind you might need to set a DNS server (in the Wireguard configuration) that is outside of your LAN.
== Debugging ==
ICD2 will create the <code>/etc/wireguard/icdwg0.conf</code> file, so if the Wireguard connection fails to start for you, try running <code>sudo wg-quick up icdwg0</code> and look for any errors.
Most other errors beyond wg-quick will require the usual network knowledge to debug (and are not specific to Maemo).
== Gallery ==
<gallery widths=320px heights=173px>
WireguardAppMgr.png|Wireguard is installable from the application manager
WireguardProvider2.png|It is possible to specify using Wireguard per connection (IAP)
WireguardConnected.png|Wireguard is connected
WireguardCPA.png|Wireguard control panel applet icon
WireguardCPA2.png|Wireguard control panel, editing a configuration
WireguardProvider.png|Setting a per connection (IAP) Wireguard configuration
</gallery>
[[Category:Extras]]
[[Category:Network]]
cc3b85b20242f2533825f3f9f50f2e108d0aaef6
File:WireguardConnected.png
6
154
1154
2021-10-02T23:02:22Z
Wizzup
4
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:WireguardCPA.png
6
155
1156
2021-10-02T23:03:18Z
Wizzup
4
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:WireguardCPA2.png
6
156
1157
2021-10-02T23:03:30Z
Wizzup
4
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:WireguardAppMgr.png
6
157
1159
2021-10-02T23:05:25Z
Wizzup
4
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:WireguardProvider.png
6
158
1161
2021-10-02T23:09:02Z
Wizzup
4
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:WireguardProvider2.png
6
159
1162
2021-10-02T23:10:20Z
Wizzup
4
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:TorProvider.png
6
160
1170
2021-10-03T10:14:23Z
Wizzup
4
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:TorProvider2.png
6
161
1171
2021-10-03T10:14:45Z
Wizzup
4
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:TorCPA.png
6
162
1172
2021-10-03T10:15:05Z
Wizzup
4
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:TorCPA2.png
6
163
1173
2021-10-03T10:15:19Z
Wizzup
4
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:TorConnected.png
6
164
1174
2021-10-03T10:15:32Z
Wizzup
4
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:TorAppMgr.png
6
165
1175
2021-10-03T10:15:46Z
Wizzup
4
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:TorAppMgr2.png
6
166
1176
2021-10-03T10:15:59Z
Wizzup
4
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:TorCheck.png
6
167
1177
2021-10-03T10:18:32Z
Wizzup
4
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Tor
0
168
1178
2021-10-03T10:26:25Z
Wizzup
4
Created page with "= Tor in Maemo Leste = [https://www.torproject.org/ Tor] support is integrated in Maemo Leste (through ICD2) and is available for installation using the package manager. Once..."
wikitext
text/x-wiki
= Tor in Maemo Leste =
[https://www.torproject.org/ Tor] support is integrated in Maemo Leste (through ICD2) and is available for installation using the package manager. Once you've installed the package, restart the device. You should now see a Tor applet in the control panel, and a Tor applet in the status applet.
Tor is widely used to defend against and fight surveillance and tracking and circumvent censorship. It can be used on Maemo Leste in two ways, either by tunnelling all your traffic over Tor (much like [https://tails.boum.org/ Tails] does), or by having Tor run on the side, allowing access to hidden services. Hidden bridges are also supported.
== Configuring Tor using the UI ==
In the control panel, you should be able to create a new configuration. You can choose between transparent proxying or not, and optionally select bridges and configure some other advanced settings.
Then, in the status applet, select the config you'd like, and enable system wide Tor mode. At this point, connecting to any IAP should cause the Tor connection to start. If the Tor connection fails to start in system wide mode, the IAP will be disconnected. If the IAP has Tor configured as service provider, then Tor failing to start will cause the connection to abort.
== Obligatory word of warning ==
If you rely on Tor to keep you safe, please realise that Maemo Leste (and the Tor integration) are alpha software - they are not necessarily stable and you should not rely on it to keep yourself safe at this point in time.
Tunnelling all your traffic over Tor also doesn't automatically anonymise you - for example, if you share your GPS location (or personal information) using your browser over Tor, you are still sharing your location.
== Gallery ==
<gallery widths=320px heights=173px>
TorAppMgr.png|Tor is installable from the application manager
TorAppMgr2.png
TorCheck.png|Checking system wide support
TorProvider.png|Setting a per connection (IAP) Wireguard configuration
TorProvider2.png|
TorConnected.png|Tor is connected
TorCPA.png|Tor control panel applet icon
TorCPA2.png|Tor control panel, editing a configuration
</gallery>
d1ab89d07151a55183b6a1403880e504f59bb862
1179
1178
2021-10-03T10:27:46Z
Wizzup
4
wikitext
text/x-wiki
= Tor in Maemo Leste =
[https://www.torproject.org/ Tor] support is integrated in Maemo Leste (through ICD2) and is available for installation using the package manager. Once you've installed the package, restart the device. You should now see a Tor applet in the control panel, and a Tor applet in the status applet.
Tor is widely used to defend against and fight surveillance and tracking and circumvent censorship. It can be used on Maemo Leste in two ways, either by tunnelling all your traffic over Tor (much like [https://tails.boum.org/ Tails] does), or by having Tor run on the side, allowing access to hidden services. Hidden bridges are also supported.
== Configuring Tor using the UI ==
In the control panel, you should be able to create a new configuration. You can choose between transparent proxying or not, and optionally select bridges and configure some other advanced settings.
Then, in the status applet, select the config you'd like, and enable system wide Tor mode. At this point, connecting to any IAP should cause the Tor connection to start. If the Tor connection fails to start in system wide mode, the IAP will be disconnected. If the IAP has Tor configured as service provider, then Tor failing to start will cause the connection to abort.
== Obligatory word of warning ==
If you rely on Tor to keep you safe, please realise that Maemo Leste (and the Tor integration) are alpha software - they are not necessarily stable and you should not rely on it to keep yourself safe at this point in time.
Tunnelling all your traffic over Tor also doesn't automatically anonymise you - for example, if you share your GPS location (or personal information) using your browser over Tor, you are still sharing your location.
Maemo Leste does not (yet) provide many of the features that Tails provides, such as the Amnesia mode and encrypted persistent storage.
== Gallery ==
<gallery widths=320px heights=173px>
TorAppMgr.png|Tor is installable from the application manager
TorAppMgr2.png
TorCheck.png|Checking system wide support
TorProvider.png|Setting a per connection (IAP) Wireguard configuration
TorProvider2.png|
TorConnected.png|Tor is connected
TorCPA.png|Tor control panel applet icon
TorCPA2.png|Tor control panel, editing a configuration
</gallery>
98f0a2797524d63cdb8e981db5a55d813e46fc4a
1181
1179
2021-10-10T09:05:56Z
Wizzup
4
wikitext
text/x-wiki
= Tor in Maemo Leste =
[https://www.torproject.org/ Tor] support is integrated in Maemo Leste (through ICD2) and is available for installation using the package manager. Once you've installed the package, restart the device. You should now see a Tor applet in the control panel, and a Tor applet in the status applet.
Tor is widely used to defend against and fight surveillance and tracking and circumvent censorship. It can be used on Maemo Leste in two ways, either by tunnelling all your traffic over Tor (much like [https://tails.boum.org/ Tails] does), or by having Tor run on the side, allowing access to hidden services. Hidden bridges are also supported.
== Configuring Tor using the UI ==
In the control panel, you should be able to create a new configuration. You can choose between transparent proxying or not, and optionally select bridges and configure some other advanced settings.
Then, in the status applet, select the config you'd like, and enable system wide Tor mode. At this point, connecting to any IAP should cause the Tor connection to start. If the Tor connection fails to start in system wide mode, the IAP will be disconnected. If the IAP has Tor configured as service provider, then Tor failing to start will cause the connection to abort.
== Obligatory word of warning ==
If you rely on Tor to keep you safe, please realise that Maemo Leste (and the Tor integration) are alpha software - they are not necessarily stable and you should not rely on it to keep yourself safe at this point in time.
Tunnelling all your traffic over Tor also doesn't automatically anonymise you - for example, if you share your GPS location (or personal information) using your browser over Tor, you are still sharing your location.
Maemo Leste does not (yet) provide many of the features that Tails provides, such as the Amnesia mode and encrypted persistent storage.
== Gallery ==
<gallery widths=320px heights=173px>
TorAppMgr.png|Tor is installable from the application manager
TorAppMgr2.png
TorCheck.png|Checking system wide support
TorProvider.png|Setting a per connection (IAP) Wireguard configuration
TorProvider2.png|
TorConnected.png|Tor is connected
TorCPA.png|Tor control panel applet icon
TorCPA2.png|Tor control panel, editing a configuration
</gallery>
[[Category:Extras]]
[[Category:Network]]
2d407c723312575cc612492cff73900172a67f1c
Virtual Machine
0
60
1180
910
2021-10-09T21:40:53Z
Meridion
50
Add warning about screen locking in the VM image.
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Generic
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
Generic virtual machine target. This is particularly useful when doing development and testing.
== Installation ==
https://maedevu.maemo.org/images/virtual-machines/
There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration.
Converting the qcow2 image to raw allows it to be used on real hardware.
=== VirtualBox ===
Download latest .vdi.xz image, unpack it with "xz -d" command.
Create new Virtual Machine, select "Debian (64-bit)" and 1024MB RAM. Use the downloaded file as virtual hard disk.
You are done!
=== QEMU ===
In general something like:
qemu-system-x86_64 -hda maemo-leste-1.0-amd64.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024
should work. But there seem to be issues with some QEMU versions, for more details see [https://github.com/maemo-leste/bugtracker/issues/198 issue#198].
To set up a port forward for SSH, add:
-nic user,hostfwd=tcp:127.0.0.1:7722-:22
And then log in like this (password: <code>toor</code>):
ssh root@localhost -p 7722
If the mouse pointer is grabbed and no cursor shows, you can add:
-usb -device usb-tablet
to the command line. Alternatively if that dose not work you can instead add:
-usb -device usb-mouse -machine vmport=off
If you have a USB modem you can also use that in QEMU. You can either use sudo to elevate your privileges to be able to use it:
sudo qemu-system-x86_64 -hda maemo-leste-1.0-amd64-virtual-20200324.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024 \
-nic user,hostfwd=tcp:127.0.0.1:7722-:22 \
-usb -device usb-ehci,id=ehci \
-device usb-host,bus=ehci.0,vendorid=0x0bdb,productid=0x193e
Or you can make a udev rule for your device. For example, with a Lenovo Ericsson N5321 gw you can create "/etc/udev/rules.d/45-n5321.rules" with this in it:
# Lenovo Ericsson N5321 gw simple udev rule
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="193e", \
MODE:="0666"
And then activate it by running these two commands as root:
# udevadm control --reload-rules
# udevadm trigger
Now you can run QEMU without the need for sudo!
=== virt-manager ===
Virt-manager can use multiple virtualisation backends via libvirt and its default is QEMU/KVM, allowing easy importing of the QEMU image.
The following tweaks need to be done when importing (before starting the instance) to ensure the qemu image works correctly.
* Change the disk driver from VirtIO to sata; there is an [https://github.com/maemo-leste/bugtracker/issues/291 outstanding bug] with how drives are mounted.
* In some situations changing from QVA to VGA may be required (see [https://github.com/maemo-leste/bugtracker/issues/291 the previously linked] issue.
== Initial configuration ==
On the first run you may want to generate ssh host keys and set the timezone. To do so open the "X Terminal" application and run:
sudo su -
dpkg-reconfigure openssh-server
dpkg-reconfigure tzdata
Make the system up-to-date:
apt update
apt upgrade
apt install linux-image-amd64
reboot
To get networking to work (at least in virtualbox), launch a shell and do
sudo ifconfig eth0 up
sudo dhclient eth0
A fresh Maemo VM image will also lock the device screen by default. In Qemu this means the only way to gain access to the VM again is either via SSH or by sending the power button command. This happens after 30 seconds of no activity on the device. We recommend disabling this behaviour by going to the settings and then open the "display" applet - uncheck "Lock screen automatically".
== Connectivity ==
If you have a modem exposed to QEMU, you still need to do some steps manually to get connectivity.
First off you need to add the development APT repository to your APT sources:
# echo 'deb https://maedevu.maemo.org/leste beowulf-devel main contrib non-free' >> /etc/apt/sources.list
Now update and upgrade:
# apt update && apt upgrade
Then you can install these things:
# apt install ofono libicd-network-ofono connui-iapsettings-gprs connui-statusbar-cellular connui-home-cellular connui-cellular-settings connui-conndlgs-cellular
We need mdbus2 to manipulate oFono:
# wget http://ftp.nl.debian.org/debian/pool/main/m/mdbus/mdbus2_2.3.3-2_amd64.deb
# dpkg -i mdbus2_2.3.3-2_amd64.deb
Then we can check if oFono finds our modem:
# mdbus2 -s org.ofono
/
/bluetooth
/bluetooth/profile
/bluetooth/profile/dun_gw
/bluetooth/profile/hfp_ag
/bluetooth/profile/hfp_hf
/mbm_0
Then can check our mbm_0 modem:
# mdbus2 -s org.ofono /mbm_0
[METHOD] org.freedesktop.DBus.Introspectable.Introspect() -> (s:xml)
[METHOD] org.ofono.Modem.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.Modem.SetProperty(s:property, v:value) -> ()
[SIGNAL] org.ofono.Modem.PropertyChanged(s:name, v:value)
# mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.GetProperties
({'Online': <false>, 'Powered': <false>, 'Lockdown': <false>, 'Emergency': <false>, 'SystemPath': <'/sys/devices/pci0000:00/0000:00:04.0/usb1/1-1'>, 'Interfaces': <@as []>, 'Features': <@as []>, 'Type': <'hardware'>},)
Power on the modem:
# mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.SetProperty Powered true
()
# mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.GetProperties
({'Online': <false>, 'Powered': <true>, 'Lockdown': <false>, 'Emergency': <false>, 'Manufacturer': <'Lenovo'>, 'Model': <'N5321 gw'>, 'Revision': <'R3C11'>, 'Serial': <'xxxxxxxxxxxx'>, 'SystemPath': <'/sys/devices/pci0000:00/0000:00:04.0/usb1/1-1'>, 'Interfaces': <['org.ofono.SimManager']>, 'Features': <['sim']>, 'Type': <'hardware'>},)
Check if we need to enter a pin:
# mdbus2 -s org.ofono /mbm_0 org.ofono.SimManager.GetProperties
({'Present': <true>, 'CardIdentifier': <'xxxxxx'>, 'FixedDialing': <false>, 'BarredDialing': <false>, 'SubscriberNumbers': <@as []>, 'LockedPins': <['pin']>, 'PreferredLanguages': <['de', 'en', 'fr']>, 'PinRequired': <'pin'>, 'Retries': <{'pin': byte 0x03, 'pin2': 0x03, 'puk': 0x0a, 'puk2': 0x0a}>, 'CardSlotCount': <uint32 1>, 'ActiveCardSlot': <uint32 1>},)
If PinRequired is 'pin' we need to enter a pin to unlock the sim:
# mdbus2 -s org.ofono /mbm_0 org.ofono.SimManager.EnterPin pin 1234
()
Then we can bring the modem online:
# mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.SetProperty Online true
()
If we now redo the first mdbus2 command on /mbm_0:
# mdbus2 -s org.ofono /mbm_0
[METHOD] org.freedesktop.DBus.Introspectable.Introspect() -> (s:xml)
[METHOD] org.ofono.Modem.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.Modem.SetProperty(s:property, v:value) -> ()
[SIGNAL] org.ofono.Modem.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.SimManager.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.SimManager.SetProperty(s:property, v:value) -> ()
[METHOD] org.ofono.SimManager.ChangePin(s:type, s:oldpin, s:newpin) -> ()
[METHOD] org.ofono.SimManager.EnterPin(s:type, s:pin) -> ()
[METHOD] org.ofono.SimManager.ResetPin(s:type, s:puk, s:newpin) -> ()
[METHOD] org.ofono.SimManager.LockPin(s:type, s:pin) -> ()
[METHOD] org.ofono.SimManager.UnlockPin(s:type, s:pin) -> ()
[METHOD] org.ofono.SimManager.GetIcon(y:id) -> (ay:icon)
[SIGNAL] org.ofono.SimManager.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.AllowedAccessPoints.GetAllowedAccessPoints() -> (as:apnlist)
[METHOD] org.ofono.SimAuthentication.GetApplications() -> (a{oa{sv}}:applications)
[METHOD] org.ofono.SimAuthentication.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.SimToolkit.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.SimToolkit.SelectItem(y:item, o:agent) -> ()
[METHOD] org.ofono.SimToolkit.RegisterAgent(o:path) -> ()
[METHOD] org.ofono.SimToolkit.UnregisterAgent(o:path) -> ()
[SIGNAL] org.ofono.SimToolkit.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.RadioSettings.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.RadioSettings.SetProperty(s:property, v:value) -> ()
[SIGNAL] org.ofono.RadioSettings.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.MessageManager.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.MessageManager.SetProperty(s:property, v:value) -> ()
[METHOD] org.ofono.MessageManager.SendMessage(s:to, s:text) -> (o:path)
[METHOD] org.ofono.MessageManager.GetMessages() -> (a(oa{sv}):messages)
[SIGNAL] org.ofono.MessageManager.PropertyChanged(s:name, v:value)
[SIGNAL] org.ofono.MessageManager.IncomingMessage(s:message, a{sv}:info)
[SIGNAL] org.ofono.MessageManager.ImmediateMessage(s:message, a{sv}:info)
[SIGNAL] org.ofono.MessageManager.MessageAdded(o:path, a{sv}:properties)
[SIGNAL] org.ofono.MessageManager.MessageRemoved(o:path)
[METHOD] org.ofono.PushNotification.RegisterAgent(o:path) -> ()
[METHOD] org.ofono.PushNotification.UnregisterAgent(o:path) -> ()
[METHOD] org.ofono.SmartMessaging.RegisterAgent(o:path) -> ()
[METHOD] org.ofono.SmartMessaging.UnregisterAgent(o:path) -> ()
[METHOD] org.ofono.SmartMessaging.SendBusinessCard(s:to, ay:card) -> (o:path)
[METHOD] org.ofono.SmartMessaging.SendAppointment(s:to, ay:appointment) -> (o:path)
[METHOD] org.ofono.LocationReporting.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.LocationReporting.Request() -> (h:fd)
[METHOD] org.ofono.LocationReporting.Release() -> ()
[SIGNAL] org.ofono.LocationReporting.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.SupplementaryServices.Initiate(s:command) -> (s:result_name, v:value)
[METHOD] org.ofono.SupplementaryServices.Respond(s:reply) -> (s:result)
[METHOD] org.ofono.SupplementaryServices.Cancel() -> ()
[METHOD] org.ofono.SupplementaryServices.GetProperties() -> (a{sv}:properties)
[SIGNAL] org.ofono.SupplementaryServices.NotificationReceived(s:message)
[SIGNAL] org.ofono.SupplementaryServices.RequestReceived(s:message)
[SIGNAL] org.ofono.SupplementaryServices.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.CellBroadcast.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.CellBroadcast.SetProperty(s:property, v:value) -> ()
[SIGNAL] org.ofono.CellBroadcast.PropertyChanged(s:property, v:value)
[SIGNAL] org.ofono.CellBroadcast.IncomingBroadcast(s:message, q:channel)
[SIGNAL] org.ofono.CellBroadcast.EmergencyBroadcast(s:message, a{sv}:dict)
[METHOD] org.ofono.ConnectionManager.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.ConnectionManager.SetProperty(s:property, v:value) -> ()
[METHOD] org.ofono.ConnectionManager.AddContext(s:type) -> (o:path)
[METHOD] org.ofono.ConnectionManager.RemoveContext(o:path) -> ()
[METHOD] org.ofono.ConnectionManager.DeactivateAll() -> ()
[METHOD] org.ofono.ConnectionManager.GetContexts() -> (a(oa{sv}):contexts_with_properties)
[METHOD] org.ofono.ConnectionManager.ResetContexts() -> ()
[SIGNAL] org.ofono.ConnectionManager.PropertyChanged(s:name, v:value)
[SIGNAL] org.ofono.ConnectionManager.ContextAdded(o:path, a{sv}:properties)
[SIGNAL] org.ofono.ConnectionManager.ContextRemoved(o:path)
[METHOD] org.ofono.NetworkRegistration.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.NetworkRegistration.Register() -> ()
[METHOD] org.ofono.NetworkRegistration.GetOperators() -> (a(oa{sv}):operators_with_properties)
[METHOD] org.ofono.NetworkRegistration.Scan() -> (a(oa{sv}):operators_with_properties)
[SIGNAL] org.ofono.NetworkRegistration.PropertyChanged(s:name, v:value)
[[Category:Device]]
a82249d8283efd84c3c77baebed64ead084646ae
Main Page
0
1
1183
1116
2021-10-10T09:13:58Z
Wizzup
4
wikitext
text/x-wiki
= Description =
Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more.
You can find us on '''irc.libera.chat''', channel '''#maemo-leste'''.
For an overview of the current status, you might want to check out: [[Status]]
Maemo Leste is based on Devuan Beowulf (Debian Buster) and all the "supported" devices ship with recent Linux (mainline-based) kernels.
The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers.
For some devices, we have development images available, such as the N900. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software.
If you have not used Maemo before, you might want to check out some of the tips on the [[HowTo]] page.
== Useful resources, lists and pages ==
* To get started with a new install, see [[Getting_Started|Getting Started]].
* Read our [[Leste_FAQ|Frequently Asked Questions]]
* List of [[:Category:Device]] with support to varying degrees
* Latest downloadable images: https://phoenix.maemo.org/view/Images/
* List of "extras" software packages that have a wiki page: https://leste.maemo.org/Category:Extras
* Read how to get started with [[Development]]
* You have an application you want to see in Leste? Please let us know [[Wishlist|here]].
* For a list of presentations/talks featuring Maemo Leste, see [[Talks]]
== Links ==
<div>
The central point of meeting and talking is IRC (irc.libera.chat in #maemo-leste) and this thread: https://talk.maemo.org/showthread.php?t=100192.
*Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io]
*Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues]
*Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/]
*Our Extras Github: [https://github.com/maemo-leste-extras/ https://github.com/maemo-leste-extras/]
*Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] and https://phoenix.maemo.org/view/Images/
*Our Jenkins build server: [https://phoenix.maemo.org/ https://phoenix.maemo.org/]
*Our IRC history: [http://maedevu.maemo.org/irc.txt http://maedevu.maemo.org/irc.txt] and https://freenode.irclog.whitequark.org/maemo-leste/
*Our YouTube channel: [https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w] (via [https://www.invidio.us/channel/UCgAWiHvWSuJAg5hjk7JYn1w Invidious] )
*Our Package index and info: [https://maedevu.maemo.org/pkgweb/ https://maedevu.maemo.org/pkgweb/] which runs [https://github.com/maemo-leste/mpi https://github.com/maemo-leste/mpi]
*Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
*RSS feed: [https://maemo-leste.github.io/feeds/all.atom.xml https://maemo-leste.github.io/feeds/all.atom.xml]
*[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)]
</div>
0b62a37b6dd3e471e8a4965583d4231640a6940e
1184
1183
2021-10-10T09:23:30Z
Wizzup
4
wikitext
text/x-wiki
= Description =
Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more.
You can find us on '''irc.libera.chat''', channel '''#maemo-leste'''.
For an overview of the current status, you might want to check out: [[Status]]
Maemo Leste is based on Devuan Beowulf (Debian Buster) and all the "supported" devices ship with recent Linux (mainline-based) kernels.
The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers.
For some devices, we have development images available, such as the N900. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software.
If you have not used Maemo before, you might want to check out some of the tips on the [[HowTo]] page.
== Useful resources, lists and pages ==
* To get started with a new install, see [[Getting_Started|Getting Started]].
* Read our [[Leste_FAQ|Frequently Asked Questions]]
* List of [[:Category:Device]] with support to varying degrees
* Latest downloadable images: https://phoenix.maemo.org/view/Images/
* List of "extras" software packages that have a wiki page: https://leste.maemo.org/Category:Extras
* Read how to get started with [[Development]]
* You have an application you want to see in Leste? Please let us know [[Wishlist|here]].
* For a list of presentations/talks featuring Maemo Leste, see [[Talks]]
== Links ==
<div>
The central point of meeting and talking is IRC (irc.libera.chat in #maemo-leste) and this thread: https://talk.maemo.org/showthread.php?t=100192.
*Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io]
*Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues]
*Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/]
*Our Extras Github: [https://github.com/maemo-leste-extras/ https://github.com/maemo-leste-extras/]
*Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] and https://phoenix.maemo.org/view/Images/
*Our Jenkins build server: [https://phoenix.maemo.org/ https://phoenix.maemo.org/]
*Our IRC chat history: [http://maedevu.maemo.org/irc.txt http://maedevu.maemo.org/irc.txt] and https://libera.irclog.whitequark.org/maemo-leste/ (previously: https://freenode.irclog.whitequark.org/maemo-leste/)
*Our YouTube channel: [https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w] (via [https://www.invidio.us/channel/UCgAWiHvWSuJAg5hjk7JYn1w Invidious] )
*Our Package index and info: [https://maedevu.maemo.org/pkgweb/ https://maedevu.maemo.org/pkgweb/] which runs [https://github.com/maemo-leste/mpi https://github.com/maemo-leste/mpi]
*Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
*RSS feed: [https://maemo-leste.github.io/feeds/all.atom.xml https://maemo-leste.github.io/feeds/all.atom.xml]
*[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)]
</div>
c1bcd2121fca3af5d0032156e277364471a158e3
1185
1184
2021-10-10T13:12:05Z
Wizzup
4
wikitext
text/x-wiki
= Description =
Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more.
You can find us on '''irc.libera.chat''', channel '''#maemo-leste'''.
For an overview of the current status, you might want to check out: [[Status]]
Maemo Leste is based on Devuan Beowulf (Debian Buster) and all the "supported" devices ship with recent Linux (mainline-based) kernels.
The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers.
For some devices, we have development images available, such as the [[Nokia_N900]] and the [[Motorola Droid 4]]. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software.
If you have not used Maemo before, you might want to check out some of the tips on the [[HowTo]] page.
== Useful resources, lists and pages ==
* To get started with a new install, see [[Getting_Started|Getting Started]].
* Read our [[Leste_FAQ|Frequently Asked Questions]]
* List of [[:Category:Device]] with support to varying degrees
* Latest downloadable images: https://phoenix.maemo.org/view/Images/
* List of "extras" software packages that have a wiki page: https://leste.maemo.org/Category:Extras
* Read how to get started with [[Development]]
* You have an application you want to see in Leste? Please let us know [[Wishlist|here]].
* For a list of presentations/talks featuring Maemo Leste, see [[Talks]]
== Links ==
<div>
The central point of meeting and talking is IRC (irc.libera.chat in #maemo-leste) and this thread: https://talk.maemo.org/showthread.php?t=100192.
*Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io]
*Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues]
*Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/]
*Our Extras Github: [https://github.com/maemo-leste-extras/ https://github.com/maemo-leste-extras/]
*Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] and https://phoenix.maemo.org/view/Images/
*Our Jenkins build server: [https://phoenix.maemo.org/ https://phoenix.maemo.org/]
*Our IRC chat history: [http://maedevu.maemo.org/irc.txt http://maedevu.maemo.org/irc.txt] and https://libera.irclog.whitequark.org/maemo-leste/ (previously: https://freenode.irclog.whitequark.org/maemo-leste/)
*Our YouTube channel: [https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w] (via [https://www.invidio.us/channel/UCgAWiHvWSuJAg5hjk7JYn1w Invidious] )
*Our Package index and info: [https://maedevu.maemo.org/pkgweb/ https://maedevu.maemo.org/pkgweb/] which runs [https://github.com/maemo-leste/mpi https://github.com/maemo-leste/mpi]
*Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
*RSS feed: [https://maemo-leste.github.io/feeds/all.atom.xml https://maemo-leste.github.io/feeds/all.atom.xml]
*[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)]
</div>
205f0c0fc5f148e223d8c909f489e0aed13e4573
Motorola Droid 3
0
151
1186
1141
2021-10-23T18:14:30Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Device
|image=
|manufacturer=Motorola
|codename=Solana XT862
|dimensions=todo
|release_date=todo
|soc=TI OMAP4430
|dram=512MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=todo
|other=
|category=Supported
|sw_kernel=5.11.0
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Yes
|sw_usb_host=Yes
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=Yes
|sw_tv=
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=
|sw_4g=No
|sw_bluetooth=todo
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=
|sw_standbytime=
}}
== Installation ==
Hardware requirements:
* Droid 3 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux system
* Android Tools: fastboot adb
Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
# Latest maemo-leste-1.0-armhf-bionic-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# droid4-kexecboot.img
Download or clone https://github.com/MerlijnWajer/bionic-clown-boot/tree/solana (solana branch!)
Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device.
Now, flash the Maemo Leste image to your sdcard.
== Notes ==
Device is still heavy work in the progress. The following is known not to work:
* Brightness control (screen is always max brightness)
* Keyboard backlight
* Modem interrupts, it is visible on USB but other communication with it doesn't work
* pstore (needs figuring out what the reserved memory is on Android)
[[Category:Device]]
1bbb73a04d068a883c07233e02642cf43e66aab0
1187
1186
2021-10-23T18:16:34Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Device
|image=
|manufacturer=Motorola
|codename=Solana XT862
|dimensions=todo
|release_date=todo
|soc=TI OMAP4430
|dram=512MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=todo
|other=
|category=Supported
|sw_kernel=5.11.0
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Yes
|sw_usb_host=Yes
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=Untested
|sw_tv=
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=No (needs modem work)
|sw_sms=No (needs modem work)
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=
|sw_4g=No
|sw_bluetooth=todo
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=No (needs modem work)
|sw_agps=No
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=
|sw_standbytime=
}}
== Installation ==
Hardware requirements:
* Droid 3 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux system
* Android Tools: fastboot adb
Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
# Latest maemo-leste-1.0-armhf-bionic-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# droid4-kexecboot.img
Download or clone https://github.com/MerlijnWajer/bionic-clown-boot/tree/solana (solana branch!)
Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device.
Now, flash the Maemo Leste image to your sdcard.
== Notes ==
Device is still heavy work in the progress. The following is known not to work:
* Brightness control (screen is always max brightness)
* Keyboard backlight
* Modem interrupts, it is visible on USB but other communication with it doesn't work
* pstore (needs figuring out what the reserved memory is on Android)
* See if we can use 512MB ram instead of 509MB (see dts)
Additionally, the device suffers from random hangs while in use, causing resets. When pstore works, we can hopefully figure this out.
[[Category:Device]]
ec34702bb34e657c09cc8db3ea710f9805a15084
1188
1187
2021-10-23T18:22:45Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Device
|image=
|manufacturer=Motorola
|codename=Solana XT862 / XT860
|dimensions=todo
|release_date=todo
|soc=TI OMAP4430
|dram=512MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=todo
|other=
|category=Supported
|sw_kernel=5.11.0
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Yes
|sw_usb_host=Yes
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=Untested
|sw_tv=
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=No (needs modem work)
|sw_sms=No (needs modem work)
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=
|sw_4g=No
|sw_bluetooth=todo
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=No (needs modem work)
|sw_agps=No
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=
|sw_standbytime=
}}
'''This device is called "Motorola Milestone 3" outside of the US.'''
== Installation ==
Hardware requirements:
* Droid 3 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux system
* Android Tools: fastboot adb
Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
# Latest maemo-leste-1.0-armhf-bionic-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# droid4-kexecboot.img
Download or clone https://github.com/MerlijnWajer/bionic-clown-boot/tree/solana (solana branch!)
Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device.
Now, flash the Maemo Leste image to your sdcard.
== Notes ==
Device is still heavy work in the progress. The following is known not to work:
* Brightness control (screen is always max brightness)
* Keyboard backlight
* Modem interrupts, it is visible on USB but other communication with it doesn't work
* pstore (needs figuring out what the reserved memory is on Android)
* See if we can use 512MB ram instead of 509MB (see dts)
Additionally, the device suffers from random hangs while in use, causing resets. When pstore works, we can hopefully figure this out.
[[Category:Device]]
60a2a4c70d11651b3fef829412c9014b85269026
1189
1188
2021-10-23T18:28:58Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Device
|image=
|manufacturer=Motorola
|codename=Solana XT862 / XT860
|dimensions=todo
|release_date=todo
|soc=TI OMAP4430
|dram=512MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=todo
|other=
|category=Supported
|sw_kernel=5.11.0
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Yes
|sw_usb_host=Yes
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=Untested
|sw_tv=
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=No (needs modem work)
|sw_sms=No (needs modem work)
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=
|sw_4g=No
|sw_bluetooth=todo
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=No (needs modem work)
|sw_agps=No
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=
|sw_standbytime=
}}
'''This device is called "Motorola Milestone 3" outside of the US.'''
== Installation ==
Hardware requirements:
* Droid 3 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux system
* Android Tools: fastboot adb
Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
# Latest maemo-leste-1.0-armhf-bionic-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# droid4-kexecboot.img
Download or clone https://github.com/MerlijnWajer/bionic-clown-boot/tree/solana (solana branch!)
Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device.
Now, flash the Maemo Leste image to your sdcard.
== Notes ==
Device is still heavy work in the progress. The following is known not to work:
* Brightness control (screen is always max brightness)
* Keyboard backlight
* Modem interrupts, it is visible on USB but other communication with it doesn't work
* pstore (needs figuring out what the reserved memory is on Android)
* See if we can use 512MB ram instead of 509MB (see dts)
* 3d shows some frame lag / misdrawing, so probably powervr clock needs adjusting
* touchscreen buttons do not work yet
Additionally, the device suffers from random hangs while in use, causing resets. When pstore works, we can hopefully figure this out.
[[Category:Device]]
b39178195d7302ecd69801b55824fde98ebff799
1190
1189
2021-10-23T18:33:06Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Device
|image=
|manufacturer=Motorola
|codename=Solana XT862 / XT860
|dimensions=todo
|release_date=todo
|soc=TI OMAP4430
|dram=512MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=todo
|other=
|category=Supported
|sw_kernel=5.11.0
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Yes
|sw_usb_host=Yes
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=Untested
|sw_tv=
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=No (needs modem work)
|sw_sms=No (needs modem work)
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=
|sw_4g=No
|sw_bluetooth=todo
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=No (needs modem work)
|sw_agps=No
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=
|sw_standbytime=
}}
'''This device is called "Motorola Milestone 3" outside of the US.'''
== Installation ==
Hardware requirements:
* Droid 3 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux system
* Android Tools: fastboot adb
Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
# Latest maemo-leste-1.0-armhf-bionic-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# droid4-kexecboot.img
Download or clone https://github.com/MerlijnWajer/bionic-clown-boot/tree/solana (solana branch!)
Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device.
Now, flash the Maemo Leste image to your sdcard.
== Notes ==
Device is still heavy work in the progress. The following is known not to work:
* Brightness control (screen is always max brightness)
* Keyboard backlight
* Modem interrupts, it is visible on USB but other communication with it doesn't work
* pstore (needs figuring out what the reserved memory is on Android)
* See if we can use 512MB ram instead of 509MB (see dts)
* 3d shows some frame lag / misdrawing, so probably powervr clock needs adjusting
* touchscreen buttons do not work yet
* keyboard layout in Leste is not faithful to the icons on the keyboard, but rather mostly mimic droid 4
Additionally, the device suffers from random hangs while in use, causing resets. When pstore works, we can hopefully figure this out.
[[Category:Device]]
19d7df762a0ed701da531ba7c0de52a9d3b22476
1191
1190
2021-10-23T18:36:55Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Device
|image=
|manufacturer=Motorola
|codename=Solana XT862 / XT860
|dimensions=todo
|release_date=todo
|soc=TI OMAP4430
|dram=512MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=todo
|other=
|category=Supported
|sw_kernel=5.11.0
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Yes
|sw_usb_host=Yes
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=Untested
|sw_tv=
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=No (needs modem work)
|sw_sms=No (needs modem work)
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=
|sw_4g=No
|sw_bluetooth=todo
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=No (needs modem work)
|sw_agps=No
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=
|sw_standbytime=
}}
'''This device is called "Motorola Milestone 3" outside of the US.'''
== Installation ==
Hardware requirements:
* Droid 3 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux system
* Android Tools: fastboot adb
Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
# Latest maemo-leste-1.0-armhf-bionic-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# droid4-kexecboot.img
Download or clone https://github.com/MerlijnWajer/bionic-clown-boot/tree/solana (solana branch!)
Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device.
Now, flash the Maemo Leste image to your sdcard.
== Notes ==
Device is still heavy work in the progress. The following is known not to work:
* Brightness control (screen is always max brightness)
* Keyboard backlight
* Modem interrupts, it is visible on USB but other communication with it doesn't work
* pstore (needs figuring out what the reserved memory is on Android)
* See if we can use 512MB ram instead of 509MB (see dts)
* 3d shows some frame lag / misdrawing, so probably powervr clock needs adjusting
* touchscreen buttons do not work yet
* keyboard layout in Leste is not faithful to the icons on the keyboard, but rather mostly mimic droid 4
Additionally, the device suffers from random hangs while in use, causing resets. When pstore works, we can hopefully figure this out.
Also, the device often comes network locked. [[User:Wizzup]] has access to Sigmakey software and can help remotely remove the network lock.
[[Category:Device]]
9f279736ece5da33686abf5f63c3f92a68592c09
File:Gpsrecorder.png
6
169
1192
2021-10-28T15:06:25Z
Wizzup
4
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Extras/gpsrecorder
0
170
1193
2021-10-28T15:06:40Z
Wizzup
4
Created page with "{{Infobox Package |image=[[File:GpsrecorderLogo64.png|64px]] |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]],[[PinePhone]] |date_in_repo= |maemo_leste_repo=https:..."
wikitext
text/x-wiki
{{Infobox Package
|image=[[File:GpsrecorderLogo64.png|64px]]
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]],[[PinePhone]]
|date_in_repo=
|maemo_leste_repo=https://github.com/maemo-leste-extras/gpsrecorder
|category=Navigation
|packager=[[User:Wizzup]]
}}
The gpsrecorder package provides detailed GPS data, can log GPS data and can export to various GPS formats.
== Status ==
Works fine with location services.
== Screenshots ==
[[File:GpsrecorderDroid4.png|500px]]
[[Category:Extras]]
[[Category:Navigation]]
ec411c2a863fc4920d6494b2684efde0311fef40
1194
1193
2021-10-28T15:06:58Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Package
|image=[[File:Gpsrecorder.png|64px]]
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]],[[PinePhone]]
|date_in_repo=
|maemo_leste_repo=https://github.com/maemo-leste-extras/gpsrecorder
|category=Navigation
|packager=[[User:Wizzup]]
}}
The gpsrecorder package provides detailed GPS data, can log GPS data and can export to various GPS formats.
== Status ==
Works fine with location services.
== Screenshots ==
[[File:GpsrecorderDroid4.png|500px]]
[[Category:Extras]]
[[Category:Navigation]]
0bc6041be3a82721175bdda3d4f0478eeb55d797
File:GpsrecorderDroid4.png
6
171
1195
2021-10-28T15:10:51Z
Wizzup
4
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:GpsrecorderDroid4 2.png
6
172
1196
2021-10-28T15:11:08Z
Wizzup
4
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Extras/gpsrecorder
0
170
1197
1194
2021-10-28T15:12:24Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Package
|image=[[File:Gpsrecorder.png|64px]]
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]],[[PinePhone]]
|date_in_repo=
|maemo_leste_repo=https://github.com/maemo-leste-extras/gpsrecorder
|category=Navigation
|packager=[[User:Wizzup]]
}}
The gpsrecorder package provides detailed GPS data, can log GPS data and can export to various GPS formats.
== Status ==
Works fine with location services.
== Screenshots ==
<gallery widths=320px heights=173px>
GpsrecorderDroid4.png|gpsrecorder screen with active GPS lock
GpsrecorderDroid4_2.png|Sattelite overview
</gallery>
[[Category:Extras]]
[[Category:Navigation]]
6fe308a2ac4c21db88f0ae13407638685f7637af
1201
1197
2021-10-28T15:15:12Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Package
|image=[[File:Gpsrecorder.png|64px]]
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]],[[PinePhone]]
|date_in_repo=
|maemo_leste_repo=https://github.com/maemo-leste-extras/gpsrecorder
|category=Navigation
|packager=[[User:Wizzup]]
}}
The gpsrecorder package provides detailed GPS data, can log GPS data and can export to various GPS formats.
== Status ==
Works fine with location services.
== Screenshots ==
<gallery widths=320px heights=173px>
GpsrecorderDroid4.png|gpsrecorder screen with active GPS lock
GpsrecorderDroid4_2.png|Satellite overview
</gallery>
[[Category:Extras]]
[[Category:Navigation]]
ddddc0cbdbf75bcb5660ff31002df39bbe1890f5
1229
1201
2021-11-01T18:24:47Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Package
|image=[[File:Gpsrecorder.png|64px]]
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]],[[PinePhone]]
|date_in_repo=
|maemo_leste_repo=https://github.com/maemo-leste-extras/gpsrecorder
|category=Navigation
|packager=[[User:Wizzup]]
}}
The gpsrecorder package provides detailed GPS data, can log GPS data and can export to various GPS formats.
== Status ==
Works fine with location services.
== Screenshots ==
<gallery widths=320px heights=173px>
GpsrecorderDroid4.png|gpsrecorder screen with active GPS lock
GpsrecorderDroid4_2.png|Satellite overview
</gallery>
[[Category:Extras]]
1254840e5e9650b6b25869a6798d55e4a5b1b280
File:CloudgpsDroid4.png
6
173
1198
2021-10-28T15:13:31Z
Wizzup
4
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:CloudgpsDroid4 2.png
6
174
1199
2021-10-28T15:13:55Z
Wizzup
4
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:CloudgpsLogo64.png
6
175
1200
2021-10-28T15:14:53Z
Wizzup
4
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Extras/cloudgps
0
176
1202
2021-10-28T15:15:23Z
Wizzup
4
Created page with "{{Infobox Package |image=[[File:CloudgpsLogo64.png|64px]] |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]],[[PinePhone]] |date_in_repo= |maemo_leste_repo=https://g..."
wikitext
text/x-wiki
{{Infobox Package
|image=[[File:CloudgpsLogo64.png|64px]]
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]],[[PinePhone]]
|date_in_repo=
|maemo_leste_repo=https://github.com/maemo-leste-extras/cloudgps
|category=Navigation
|packager=[[User:Wizzup]]
}}
The cloudgps package provides a smooth and interactive location viewer.
== Status ==
Works fine with location services.
== Screenshots ==
<gallery widths=320px heights=173px>
CloudgpsDroid4.png|3D view
CloudgpsDroid4_2.png|2D view
</gallery>
[[Category:Extras]]
[[Category:Navigation]]
1c031ffd3277eb8967a8343cbb0b8b05f1a015ee
1234
1202
2021-11-01T18:29:48Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Package
|image=[[File:CloudgpsLogo64.png|64px]]
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]],[[PinePhone]]
|date_in_repo=
|maemo_leste_repo=https://github.com/maemo-leste-extras/cloudgps
|category=Navigation
|packager=[[User:Wizzup]]
}}
The cloudgps package provides a smooth and interactive location viewer.
== Status ==
Works fine with location services.
== Screenshots ==
<gallery widths=320px heights=173px>
CloudgpsDroid4.png|3D view
CloudgpsDroid4_2.png|2D view
</gallery>
[[Category:Extras]]
d59664813a0574740d47b36d8a07663801a5b8fc
Extras/maep
0
145
1203
1097
2021-10-28T15:16:12Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Package
|image=[[File:MaepLogo256.png|250px]]
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]],[[PinePhone]]
|date_in_repo=
|maemo_leste_repo=https://github.com/maemo-leste-extras/maep
|category=Navigation
|packager=[[User:Wizzup]]
}}
== Status ==
Works fine with location services. All map providers work, GPS tracking works.
Could be a bit snappier with faster 2D acceleration.
== Screenshots ==
<gallery widths=320px heights=173px>
File:MaepDroid4.png|main maep screen
</gallery>
[[Category:Extras]]
[[Category:Navigation]]
23964dc80265fb66904ca1287dc8c225e6a14961
1212
1203
2021-11-01T18:08:24Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Package
|image=[[File:MaepLogo256.png|250px]]
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]],[[PinePhone]]
|date_in_repo=
|maemo_leste_repo=https://github.com/maemo-leste-extras/maep
|category=[[Category:Navigation]]
|packager=[[User:Wizzup]]
}}
== Status ==
Works fine with location services. All map providers work, GPS tracking works.
Could be a bit snappier with faster 2D acceleration.
== Screenshots ==
<gallery widths=320px heights=173px>
File:MaepDroid4.png|main maep screen
</gallery>
[[Category:Extras]]
[[Category:Navigation]]
2cd02a5fdf586a706e0a8de6feb305ffed2f48fe
1213
1212
2021-11-01T18:09:15Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Package
|image=[[File:MaepLogo256.png|250px]]
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]],[[PinePhone]]
|date_in_repo=
|maemo_leste_repo=https://github.com/maemo-leste-extras/maep
|category=Category:Navigation
|packager=[[User:Wizzup]]
}}
== Status ==
Works fine with location services. All map providers work, GPS tracking works.
Could be a bit snappier with faster 2D acceleration.
== Screenshots ==
<gallery widths=320px heights=173px>
File:MaepDroid4.png|main maep screen
</gallery>
[[Category:Extras]]
[[Category:Navigation]]
ecacf7c6ce1e6cdbd8406b849802a452d534286d
1224
1213
2021-11-01T18:20:36Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Package
|image=[[File:MaepLogo256.png|250px]]
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]],[[PinePhone]]
|date_in_repo=
|maemo_leste_repo=https://github.com/maemo-leste-extras/maep
|category=Navigation
|packager=[[User:Wizzup]]
}}
== Status ==
Works fine with location services. All map providers work, GPS tracking works.
Could be a bit snappier with faster 2D acceleration.
== Screenshots ==
<gallery widths=320px heights=173px>
File:MaepDroid4.png|main maep screen
</gallery>
[[Category:Extras]]
[[Category:Navigation]]
23964dc80265fb66904ca1287dc8c225e6a14961
1225
1224
2021-11-01T18:20:50Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Package
|image=[[File:MaepLogo256.png|250px]]
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]],[[PinePhone]]
|date_in_repo=
|maemo_leste_repo=https://github.com/maemo-leste-extras/maep
|category=Navigation
|packager=[[User:Wizzup]]
}}
== Status ==
Works fine with location services. All map providers work, GPS tracking works.
Could be a bit snappier with faster 2D acceleration.
== Screenshots ==
<gallery widths=320px heights=173px>
File:MaepDroid4.png|main maep screen
</gallery>
[[Category:Extras]]
aa29bb4001dfeda83eef25d1f7c553411be5fa42
File:ModranaDroid4.png
6
177
1204
2021-10-28T15:16:48Z
Wizzup
4
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:ModranaDroid4 2.png
6
178
1205
2021-10-28T15:17:09Z
Wizzup
4
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:ModranaLogo256.png
6
179
1206
2021-10-28T15:18:57Z
Wizzup
4
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Extras/modrana
0
180
1207
2021-10-28T15:19:14Z
Wizzup
4
Created page with "{{Infobox Package |image=[[File:ModranaLogo256.png|256px]] |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]],[[PinePhone]] |date_in_repo= |maemo_leste_repo=https://..."
wikitext
text/x-wiki
{{Infobox Package
|image=[[File:ModranaLogo256.png|256px]]
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]],[[PinePhone]]
|date_in_repo=
|maemo_leste_repo=https://github.com/maemo-leste-extras/modrana
|category=Navigation
|packager=[[User:Wizzup]]
}}
The Modrana package provides detailed GPS data, routing services, navigation and more...
== Status ==
Works fine with location services.
== Screenshots ==
<gallery widths=320px heights=173px>
ModranaDroid4.png|Main screen
ModranaDroid4_2.png|Options
</gallery>
[[Category:Extras]]
[[Category:Navigation]]
e499111a8adeb680a10441bb803fb9a151dd0dac
1233
1207
2021-11-01T18:29:25Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Package
|image=[[File:ModranaLogo256.png|256px]]
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]],[[PinePhone]]
|date_in_repo=
|maemo_leste_repo=https://github.com/maemo-leste-extras/modrana
|category=Navigation
|packager=[[User:Wizzup]]
}}
The Modrana package provides detailed GPS data, routing services, navigation and more...
== Status ==
Works fine with location services.
== Screenshots ==
<gallery widths=320px heights=173px>
ModranaDroid4.png|Main screen
ModranaDroid4_2.png|Options
</gallery>
[[Category:Extras]]
78690f4665b48a2d06a1c3fa5a5d22402a9f165d
File:Dorian-1.png
6
181
1208
2021-11-01T18:06:44Z
Wizzup
4
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Dorian-2.png
6
182
1209
2021-11-01T18:06:54Z
Wizzup
4
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Dorian-3.png
6
183
1210
2021-11-01T18:07:01Z
Wizzup
4
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Extras/Dorian
0
184
1211
2021-11-01T18:08:14Z
Wizzup
4
Created page with "{{Infobox Package |image=[[File:MaepLogo256.png|250px]] |status=Working |devices=all |date_in_repo= |maemo_leste_repo=https://github.com/maemo-leste-extras/dorian |category=..."
wikitext
text/x-wiki
{{Infobox Package
|image=[[File:MaepLogo256.png|250px]]
|status=Working
|devices=all
|date_in_repo=
|maemo_leste_repo=https://github.com/maemo-leste-extras/dorian
|category=[[Category:Education]]
|packager=[[User:Wizzup]]
}}
== Status ==
Supports portrait mode as well as landscape, fullscreen mode.
== Screenshots ==
<gallery widths=320px heights=173px>
File:Dorian-1.png|
File:Dorian-2.png|
File:Dorian-3.png|
</gallery>
[[Category:Extras]]
[[Category:Navigation]]
c6ecc8ddce561d3f737a79f9bbd2d1c4344ed56e
1214
1211
2021-11-01T18:09:27Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Package
|image=[[File:MaepLogo256.png|250px]]
|status=Working
|devices=all
|date_in_repo=
|maemo_leste_repo=https://github.com/maemo-leste-extras/dorian
|category=Category:Education
|packager=[[User:Wizzup]]
}}
== Status ==
Supports portrait mode as well as landscape, fullscreen mode.
== Screenshots ==
<gallery widths=320px heights=173px>
File:Dorian-1.png|
File:Dorian-2.png|
File:Dorian-3.png|
</gallery>
[[Category:Extras]]
[[Category:Education]]
abdcdb504f2f35a8296967db2cdfa895e697beea
1216
1214
2021-11-01T18:11:08Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Package
|image=[[File:Dorian256px.png|250px]]
|status=Working
|devices=all
|date_in_repo=
|maemo_leste_repo=https://github.com/maemo-leste-extras/dorian
|category=Category:Education
|packager=[[User:Wizzup]]
}}
== Status ==
Supports portrait mode as well as landscape, fullscreen mode.
== Screenshots ==
<gallery widths=320px heights=173px>
File:Dorian-1.png|
File:Dorian-2.png|
File:Dorian-3.png|
</gallery>
[[Category:Extras]]
[[Category:Education]]
9bb64dc8a5bf9424e75ca923851ff09202dc022b
1223
1216
2021-11-01T18:20:17Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Package
|image=[[File:Dorian256px.png|250px]]
|status=Working
|devices=all
|date_in_repo=
|maemo_leste_repo=https://github.com/maemo-leste-extras/dorian
|category=Education
|packager=[[User:Wizzup]]
}}
== Status ==
Supports portrait mode as well as landscape, fullscreen mode.
== Screenshots ==
<gallery widths=320px heights=173px>
File:Dorian-1.png|
File:Dorian-2.png|
File:Dorian-3.png|
</gallery>
[[Category:Extras]]
eb6d8fbc1345e9dc997e23f7b73bacfefde49418
File:Dorian256px.png
6
185
1215
2021-11-01T18:10:58Z
Wizzup
4
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Template:Infobox Package
10
139
1217
1090
2021-11-01T18:17:43Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox
| abovestyle = background: #dedede;
| headerstyle = background: #dedede;
| above = {{{name|<includeonly>{{PAGENAME}}</includeonly>}}}
| image = {{{image|}}}
| caption = {{{caption|}}}
| header2 =
| label2 = Status
| data2 = {{{status|}}}
| header3 =
| label3 = Devices
| data3 = {{{devices|}}}
| header4 =
| label4 = Import date
| data4 = {{{date_in_repo|}}}
| header5 =
| label5 = Website
| data5 = {{{website|}}}
| header6 =
| label6 = Leste repo
| data6 = {{{maemo_leste_repo|}}}
| header7 =
| label7 = Category
| data7 = {{{category|}}}
| header8 =
| label8 = Maintainer
| data8 = {{{maintainer|}}}
| header9 =
| label9 = Packager
| data9 = {{{packager|}}}
[[Category:Packages]]
}}
d95c81069ec9cb5a9c3953c2cb104609071eadbb
1219
1217
2021-11-01T18:18:44Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox
| abovestyle = background: #dedede;
| headerstyle = background: #dedede;
| above = {{{name|<includeonly>{{PAGENAME}}</includeonly>}}}
| image = {{{image|}}}
| caption = {{{caption|}}}
| header2 =
| label2 = Status
| data2 = {{{status|}}}
| header3 =
| label3 = Devices
| data3 = {{{devices|}}}
| header4 =
| label4 = Import date
| data4 = {{{date_in_repo|}}}
| header5 =
| label5 = Website
| data5 = {{{website|}}}
| header6 =
| label6 = Leste repo
| data6 = {{{maemo_leste_repo|}}}
| header7 =
| label7 = Category
| data7 = {{{category|}}}
| header8 =
| label8 = Maintainer
| data8 = {{{maintainer|}}}
| header9 =
| label9 = Packager
| data9 = {{{packager|}}}
[[Category:Packages]]
[[Category::{{{category}}}]
}}
bc99590087b82fe984ae0d74aa8c6e4d19e1becc
1220
1219
2021-11-01T18:19:04Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox
| abovestyle = background: #dedede;
| headerstyle = background: #dedede;
| above = {{{name|<includeonly>{{PAGENAME}}</includeonly>}}}
| image = {{{image|}}}
| caption = {{{caption|}}}
| header2 =
| label2 = Status
| data2 = {{{status|}}}
| header3 =
| label3 = Devices
| data3 = {{{devices|}}}
| header4 =
| label4 = Import date
| data4 = {{{date_in_repo|}}}
| header5 =
| label5 = Website
| data5 = {{{website|}}}
| header6 =
| label6 = Leste repo
| data6 = {{{maemo_leste_repo|}}}
| header7 =
| label7 = Category
| data7 = {{{category|}}}
| header8 =
| label8 = Maintainer
| data8 = {{{maintainer|}}}
| header9 =
| label9 = Packager
| data9 = {{{packager|}}}
[[Category:Packages]]
[[Category::{{{category}}}]]
}}
c6453774aaef34aa70ec77fbe1e23be6fc3933d5
1221
1220
2021-11-01T18:19:43Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox
| abovestyle = background: #dedede;
| headerstyle = background: #dedede;
| above = {{{name|<includeonly>{{PAGENAME}}</includeonly>}}}
| image = {{{image|}}}
| caption = {{{caption|}}}
| header2 =
| label2 = Status
| data2 = {{{status|}}}
| header3 =
| label3 = Devices
| data3 = {{{devices|}}}
| header4 =
| label4 = Import date
| data4 = {{{date_in_repo|}}}
| header5 =
| label5 = Website
| data5 = {{{website|}}}
| header6 =
| label6 = Leste repo
| data6 = {{{maemo_leste_repo|}}}
| header7 =
| label7 = Category
| data7 = {{{category|}}}
| header8 =
| label8 = Maintainer
| data8 = {{{maintainer|}}}
| header9 =
| label9 = Packager
| data9 = {{{packager|}}}
[[Category:Packages]]
[[Category:{{{category}}}]]
}}
2a2a26191a2cf3d02bd25d5d4962200142ec377e
1226
1221
2021-11-01T18:22:39Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox
| abovestyle = background: #dedede;
| headerstyle = background: #dedede;
| above = {{{name|<includeonly>{{PAGENAME}}</includeonly>}}}
| image = {{{image|}}}
| caption = {{{caption|}}}
| header2 =
| label2 = Status
| data2 = {{{status|}}}
| header3 =
| label3 = Devices
| data3 = {{{devices|}}}
| header4 =
| label4 = Import date
| data4 = {{{date_in_repo|}}}
| header5 =
| label5 = Website
| data5 = {{{website|}}}
| header6 =
| label6 = Leste repo
| data6 = {{{maemo_leste_repo|}}}
| header7 =
| label7 = Category
| data7 = [[:Category:{{{category}}}]]
| header8 =
| label8 = Maintainer
| data8 = {{{maintainer|}}}
| header9 =
| label9 = Packager
| data9 = {{{packager|}}}
[[Category:Packages]]
[[Category:{{{category}}}]]
}}
fe64ddeb016a3700cfdfda6974614a262b283358
1227
1226
2021-11-01T18:23:06Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox
| abovestyle = background: #dedede;
| headerstyle = background: #dedede;
| above = {{{name|<includeonly>{{PAGENAME}}</includeonly>}}}
| image = {{{image|}}}
| caption = {{{caption|}}}
| header2 =
| label2 = Status
| data2 = {{{status|}}}
| header3 =
| label3 = Devices
| data3 = {{{devices|}}}
| header4 =
| label4 = Import date
| data4 = {{{date_in_repo|}}}
| header5 =
| label5 = Website
| data5 = {{{website|}}}
| header6 =
| label6 = Leste repo
| data6 = {{{maemo_leste_repo|}}}
| header7 =
| label7 = Category
| data7 = [[:Category:{{{category}}}|{{{category}}}]]
| header8 =
| label8 = Maintainer
| data8 = {{{maintainer|}}}
| header9 =
| label9 = Packager
| data9 = {{{packager|}}}
[[Category:Packages]]
[[Category:{{{category}}}]]
}}
176971c75655868c3e376acbdcdbbce3fff44f98
1228
1227
2021-11-01T18:23:53Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox
| abovestyle = background: #dedede;
| headerstyle = background: #dedede;
| above = {{{name|<includeonly>{{PAGENAME}}</includeonly>}}}
| image = {{{image|}}}
| caption = {{{caption|}}}
| header2 =
| label2 = Status
| data2 = {{{status|}}}
| header3 =
| label3 = Devices
| data3 = {{{devices|}}}
| header4 =
| label4 = Import date
| data4 = {{{date_in_repo|}}}
| header5 =
| label5 = Website
| data5 = {{{website|}}}
| header6 =
| label6 = Leste repo
| data6 = {{{maemo_leste_repo|}}}
| header7 =
| label7 = Category
| data7 = [[:Category:{{{category}}}]]
| header8 =
| label8 = Maintainer
| data8 = {{{maintainer|}}}
| header9 =
| label9 = Packager
| data9 = {{{packager|}}}
[[Category:Packages]]
[[Category:{{{category}}}]]
}}
fe64ddeb016a3700cfdfda6974614a262b283358
Calendar
0
109
1218
1121
2021-11-01T18:18:19Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Package
|image=
|status=Working
|devices=all
|date_in_repo=
|maemo_leste_repo=https://github.com/maemo-leste/qalendar
|category=user/office
|packager=[[User:Wizzup]]
}}
= Calendar =
Data is stored in /home/user/.calendar/calendardb - in SQLite3 format.
== Qalendar ==
Qalendar is Qt5 implementation of the Maemo Calendar, source is here: https://github.com/maemo-leste/qalendar
It should mostly function as the Maemo calendar, see the feature comparison here: https://wiki.maemo.org/Qalendar
* cal-home-widget has also been ported
== Improvements over Fremantle Qalendar ==
* Supports landscape at dynamic resolutions (vs only 800x480)
Planned:
* Portrait support
== Synchronising ==
you can try this script
it currently only syncs the calendar
# Install syncevolution first via 'apt install syncevolution'
# Grab the script at: http://uvos.xyz/maserati/maemo-calendar-sync.sh
# Open it and change the vars to reflect your server
# Run it
if that dosent work try the section below
== Synchronising manually ==
Install:
<pre>
apt install syncevolution
</pre>
Example URL is <b>http://localhost:5223</b> - using ssh tunneling to forward the remote radicale port to a local port. This is no by means required for operation - just pick any host that works for you.
For reference, this can be used to set up the ssh port forward if you're keen on using it (but again, just pick whatever host you want to use):
<pre>
ssh myhost -L 5223:localhost:5223
</pre>
OK, so let's configure syncevolution and do the initial sync:
<pre>
syncevolution --configure \
--template webdav \
username=USER \
password=PASS \
syncURL=http://localhost:5223/ \
target-config@radicale
syncevolution --configure \
database=http://localhost:5223/USER/UUID/ \
backend=caldavtodo \
target-config@radicale radicaletodo
syncevolution --configure \
database=http://localhost:5223/USER/UUID/ \
backend=caldavjournal \
target-config@radicale radicalejournal
syncevolution --configure \
database=http://localhost:5223/USER/UUID/ \
backend=caldav \
target-config@radicale radicalecal
syncevolution --configure \
--template SyncEvolution_Client \
sync=none \
syncURL=local://@radicale \
username= \
password= \
radicale
syncevolution --configure \
sync=two-way \
backend=maemo-tasks \
database= \
radicale radicaletodo
syncevolution --configure \
sync=two-way \
backend=maemo-notes\
database= \
radicale radicalejournal
syncevolution --configure \
sync=two-way \
backend=maemo-events \
database= \
radicale radicalecal
syncevolution --sync refresh-from-client radicale radicalejournal
syncevolution --sync refresh-from-client radicale radicaletodo
syncevolution --sync refresh-from-client radicale radicalecal
</pre>
And the next time you want to synchronise, just call:
<pre>
syncevolution --sync two-way radicale radicalejournal
syncevolution --sync two-way radicale radicaletodo
syncevolution --sync two-way radicale radicalecal
</pre>
== Syncevolution-frontend ==
The custom Maemo Syncevolution frontend has also been ported and is available in the application manager; which can be used to set up scheduled synchronisation.
Random resources:
* https://www.mail-archive.com/syncevolution@syncevolution.org/msg03379.html
* https://wiki.maemo.org/Calendar_database
* https://wiki.maemo.org/Sync
* http://maemo.org/packages/source/view/fremantle_extras-devel_free_source/syncevolution-frontend/0.12/
* https://talk.maemo.org/showthread.php?t=75810
d79714b54454d9fcde20e0c194647d6ebef407f8
1222
1218
2021-11-01T18:20:04Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Package
|image=
|status=Working
|devices=all
|date_in_repo=
|maemo_leste_repo=https://github.com/maemo-leste/qalendar
|category=Office
|packager=[[User:Wizzup]]
}}
= Calendar =
Data is stored in /home/user/.calendar/calendardb - in SQLite3 format.
== Qalendar ==
Qalendar is Qt5 implementation of the Maemo Calendar, source is here: https://github.com/maemo-leste/qalendar
It should mostly function as the Maemo calendar, see the feature comparison here: https://wiki.maemo.org/Qalendar
* cal-home-widget has also been ported
== Improvements over Fremantle Qalendar ==
* Supports landscape at dynamic resolutions (vs only 800x480)
Planned:
* Portrait support
== Synchronising ==
you can try this script
it currently only syncs the calendar
# Install syncevolution first via 'apt install syncevolution'
# Grab the script at: http://uvos.xyz/maserati/maemo-calendar-sync.sh
# Open it and change the vars to reflect your server
# Run it
if that dosent work try the section below
== Synchronising manually ==
Install:
<pre>
apt install syncevolution
</pre>
Example URL is <b>http://localhost:5223</b> - using ssh tunneling to forward the remote radicale port to a local port. This is no by means required for operation - just pick any host that works for you.
For reference, this can be used to set up the ssh port forward if you're keen on using it (but again, just pick whatever host you want to use):
<pre>
ssh myhost -L 5223:localhost:5223
</pre>
OK, so let's configure syncevolution and do the initial sync:
<pre>
syncevolution --configure \
--template webdav \
username=USER \
password=PASS \
syncURL=http://localhost:5223/ \
target-config@radicale
syncevolution --configure \
database=http://localhost:5223/USER/UUID/ \
backend=caldavtodo \
target-config@radicale radicaletodo
syncevolution --configure \
database=http://localhost:5223/USER/UUID/ \
backend=caldavjournal \
target-config@radicale radicalejournal
syncevolution --configure \
database=http://localhost:5223/USER/UUID/ \
backend=caldav \
target-config@radicale radicalecal
syncevolution --configure \
--template SyncEvolution_Client \
sync=none \
syncURL=local://@radicale \
username= \
password= \
radicale
syncevolution --configure \
sync=two-way \
backend=maemo-tasks \
database= \
radicale radicaletodo
syncevolution --configure \
sync=two-way \
backend=maemo-notes\
database= \
radicale radicalejournal
syncevolution --configure \
sync=two-way \
backend=maemo-events \
database= \
radicale radicalecal
syncevolution --sync refresh-from-client radicale radicalejournal
syncevolution --sync refresh-from-client radicale radicaletodo
syncevolution --sync refresh-from-client radicale radicalecal
</pre>
And the next time you want to synchronise, just call:
<pre>
syncevolution --sync two-way radicale radicalejournal
syncevolution --sync two-way radicale radicaletodo
syncevolution --sync two-way radicale radicalecal
</pre>
== Syncevolution-frontend ==
The custom Maemo Syncevolution frontend has also been ported and is available in the application manager; which can be used to set up scheduled synchronisation.
Random resources:
* https://www.mail-archive.com/syncevolution@syncevolution.org/msg03379.html
* https://wiki.maemo.org/Calendar_database
* https://wiki.maemo.org/Sync
* http://maemo.org/packages/source/view/fremantle_extras-devel_free_source/syncevolution-frontend/0.12/
* https://talk.maemo.org/showthread.php?t=75810
a2c1b294014f0ccae3b73f2f9b6dbe433bf836d5
Category:Packages
14
186
1230
2021-11-01T18:25:58Z
Wizzup
4
Created page with "= Packages = This page lists packages that have their own wiki page, Maemo Leste contains far more packages than listed on this page. To search for the debian packages, cons..."
wikitext
text/x-wiki
= Packages =
This page lists packages that have their own wiki page, Maemo Leste contains far more packages than listed on this page.
To search for the debian packages, consider using our pkgweb: https://maedevu.maemo.org/pkgweb/
5c8427938feeef67dcb19b12cf33deebf6d1118f
1231
1230
2021-11-01T18:26:08Z
Wizzup
4
wikitext
text/x-wiki
This page lists packages that have their own wiki page, Maemo Leste contains far more packages than listed on this page.
To search for the debian packages, consider using our pkgweb: https://maedevu.maemo.org/pkgweb/
80cf98a8b880f7501733255df29b76c000919e38
Extras/ScummVM
0
137
1232
1134
2021-11-01T18:29:14Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Package
|image=[[File:ScummVM_Logo.png|250px]]
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]
|date_in_repo=2021-05-21
|website=https://www.scummvm.org/
|maemo_leste_repo=https://github.com/maemo-leste-extras/scummvm
|category=Games
|packager=[[User:Wizzup]]
}}
ScummVM is a program which allows you to run certain classic graphical adventure and role-playing games, provided you already have their data files. The clever part about this: ScummVM just replaces the executables shipped with the games, allowing you to play them on systems for which they were never designed! ScummVM is a complete rewrite of these games' executables and is not an emulator. (From ScummVM website)
Relevant issue: https://github.com/maemo-leste/bugtracker/issues/269
Also see this page for more info: https://wiki.scummvm.org/index.php/Maemo
== Status ==
* Games seems to be playable, with sound and input
* GUI with default theme is too small to be clickable/visable. WIth theme scummvm-remastered (scummremastered.zip) it is possible to set GUI scale to 'Large' and get a readable GUI:
[[File:Leste-scummvm-bigtheme.jpg|500px]]
To get large readable GUI:
<code>edit ~/.config/scummvm.ini
change gui_base=0 to gui_base=240</code>
=== Tested games ===
Neverhood, Ultima 4, Ultima 6, Grim Fandango, Broken Sword 1
==== The Neverhood ====
Change keymap as appropriate, works well.
[[File:ScummVMNeverhood.png|500px]]
== TODO ==
* Implement sane default keys for the devices (there is rudimentary detection for the N900, but we support more devices)
* Use libsdl2 build, didn't compile when [[User:Wizzup]] tried.
* Revise Maemo-Leste configure backend/target to remove 'optification'
* Create Widescreen readable theme
* Fix touchscreen to pointer position de-synchronization. (Starts okay, goes bad).
* Find rendering and build options for low battery use (adventure game sessions can be long)
* Get Maemo-Leste target into upstream SCUMMVM
[[Category:Extras]]
38713ed6f851e954abe2370bc4be0477bf4efee2
Extras/braek
0
147
1235
1096
2021-11-01T18:30:09Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Package
|status=Working
|devices=All
|date_in_repo=
|maemo_leste_repo=https://github.com/maemo-leste-extras/braek
|packager=[[User:Wizzup]]
|category=Games
}}
== Status ==
Seems to break the screen
== Screenshots ==
[[File:BraekDroid4.png|500px]]
[[Category:Extras]]
2154bbadb48fc13821c80e830a31904a539d496b
Tor
0
168
1236
1181
2021-11-01T18:31:24Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Package
|image=
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]],[[PinePhone]]
|date_in_repo=2021-11-01
|maemo_leste_repo=https://github.com/maemo-leste/libicd-tor
|category=Network
|packager=[[User:Wizzup]]
}}
= Tor in Maemo Leste =
[https://www.torproject.org/ Tor] support is integrated in Maemo Leste (through ICD2) and is available for installation using the package manager. Once you've installed the package, restart the device. You should now see a Tor applet in the control panel, and a Tor applet in the status applet.
Tor is widely used to defend against and fight surveillance and tracking and circumvent censorship. It can be used on Maemo Leste in two ways, either by tunnelling all your traffic over Tor (much like [https://tails.boum.org/ Tails] does), or by having Tor run on the side, allowing access to hidden services. Hidden bridges are also supported.
== Configuring Tor using the UI ==
In the control panel, you should be able to create a new configuration. You can choose between transparent proxying or not, and optionally select bridges and configure some other advanced settings.
Then, in the status applet, select the config you'd like, and enable system wide Tor mode. At this point, connecting to any IAP should cause the Tor connection to start. If the Tor connection fails to start in system wide mode, the IAP will be disconnected. If the IAP has Tor configured as service provider, then Tor failing to start will cause the connection to abort.
== Obligatory word of warning ==
If you rely on Tor to keep you safe, please realise that Maemo Leste (and the Tor integration) are alpha software - they are not necessarily stable and you should not rely on it to keep yourself safe at this point in time.
Tunnelling all your traffic over Tor also doesn't automatically anonymise you - for example, if you share your GPS location (or personal information) using your browser over Tor, you are still sharing your location.
Maemo Leste does not (yet) provide many of the features that Tails provides, such as the Amnesia mode and encrypted persistent storage.
== Gallery ==
<gallery widths=320px heights=173px>
TorAppMgr.png|Tor is installable from the application manager
TorAppMgr2.png
TorCheck.png|Checking system wide support
TorProvider.png|Setting a per connection (IAP) Wireguard configuration
TorProvider2.png|
TorConnected.png|Tor is connected
TorCPA.png|Tor control panel applet icon
TorCPA2.png|Tor control panel, editing a configuration
</gallery>
[[Category:Extras]]
db04b2b0a9a056f7385e4d65bc82ddb499001ddb
Wireguard
0
153
1237
1182
2021-11-01T18:32:11Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Package
|image=
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]],[[PinePhone]]
|date_in_repo=2021-11-01
|maemo_leste_repo=https://github.com/maemo-leste/libicd-wireguard
|category=Network
|packager=[[User:Wizzup]]
}}
= Wireguard in Maemo Leste =
[https://www.wireguard.com/ Wireguard] support is integrated in Maemo Leste (through ICD2) and is available for installation using the package manager. Once you've installed the package, restart the device. You should now see a Wireguard applet in the control panel, and a Wireguard applet in the status applet.
There is also support to enable Wireguard only for specific IAPs. To do this, go to the advanced settings of any IAP in the Internet Connections control applet, and navigate to the "Providers" tab. In this tab, select Wireguard as the provider tab, and select your preferred config.
== Configuring Wireguard using the UI ==
In the control panel, you should be able to create a new configuration. Make sure to share get the public key from the other endpoints (and other peers, if applicable), and make sure to copy the public key of your device to the endpoint (and/or peers).
Then, in the status applet, select the config you'd like, and enable system wide mode. At this point, connecting to any IAP should cause the wireguard connection to start. If the Wireguard connection fails to start in system wide mode, the IAP will be disconnected. See the "Debugging" section of this article to debug potential problems.
=== Using a config file ===
For sophisticated setups that are potentially not supported in our configuration user interface, it is possible to create a configuration using the "Load" button in the Wireguard control panel applet. This allows you select a file (path!) to a pre-generated configuration. When the configuration associated with this file is loaded, the contents will be used verbatim. (This may be replaced in the future, as the PostUp and such lines could potentially be edited by non-root users but run as root!)
=== Tunnelling all traffic over Wireguard ===
Typically, setting <code>Allowed IPs</code> to <code>0.0.0.0/0</code> (for one of the peers) and allowing packet forwarding on the endpoint ought to be enough to make all Maemo traffic go over Wireguard - but keep in mind you might need to set a DNS server (in the Wireguard configuration) that is outside of your LAN.
== Debugging ==
ICD2 will create the <code>/etc/wireguard/icdwg0.conf</code> file, so if the Wireguard connection fails to start for you, try running <code>sudo wg-quick up icdwg0</code> and look for any errors.
Most other errors beyond wg-quick will require the usual network knowledge to debug (and are not specific to Maemo).
== Gallery ==
<gallery widths=320px heights=173px>
WireguardAppMgr.png|Wireguard is installable from the application manager
WireguardProvider2.png|It is possible to specify using Wireguard per connection (IAP)
WireguardConnected.png|Wireguard is connected
WireguardCPA.png|Wireguard control panel applet icon
WireguardCPA2.png|Wireguard control panel, editing a configuration
WireguardProvider.png|Setting a per connection (IAP) Wireguard configuration
</gallery>
[[Category:Extras]]
2343e743f6231284144fe7ad034861f61748f37d
Motorola Droid 4
0
50
1238
1148
2021-11-13T18:24:48Z
Pavel
9
/* Phone Call */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati XT894
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
|category=Supported
|sw_kernel=5.11.0
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Yes
|sw_usb_host=Yes
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=Yes
|sw_tv=
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=Yes
|sw_4g=No
|sw_bluetooth=Yes, [[#Bluetooth|see notes]]
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=120mW
|sw_standbytime=
}}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
=== Updating Android ===
This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
=== Setting up kexecboot ===
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
=== Install Maemo Leste to the sdcard ===
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab the latest image from https://phoenix.maemo.org/view/Images/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
The keyboard layout is extended to provide more standard keys.
[[File:Maemo-leste-droid4-kbd-2021-07.png|center|620px|thumb|maemo-leste droid4 keyboard]]
Key mapping can be tested with the 'xev' program.
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Bluetooth ==
Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
== Stuff to try ==
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Wifi ====
The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== Phone Call ====
These can be used to talk to the modem manually... But we really should have ofono and sphone GUI doing that job. [[Status/Phone]] mentions current status. Make sure there is a SIM in the phone.
Run this:
Read modem output:
<pre>
cat /dev/motmdm1 &
</pre>
Online modem:
<pre>
printf "AT+CFUN=1\r" > /dev/motmdm1
</pre>
Connect to network:
<pre>
printf "AT+COPS=1\r" > /dev/motmdm1
</pre>
Print connected network:
</pre>
printf "AT+COPS?\r" > /dev/motmdm1
Turn off signal reporting:
<pre>
# printf "AT+SCRN=0\r" > /dev/motmdm1
</pre>
Dial a number:
<pre>
printf "ATD+1234567890\r" > /dev/motmdm1
</pre>
Hang up:
<pre>
printf "ATH\r" > /dev/motmdm1
</pre>
Answer incoming call:
<pre>
printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired.
==== 3G Internet ====
Using qmicli:
qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
route del default
sudo ifconfig wwan0 up
dhclient wwan0
Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed.
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
==== HDMI ====
Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier.
<pre>
xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off
</pre>
Return to internal touchscreen display.
<pre>
xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off
</pre>
==== Keyboard / Mouse sharing with PC ====
To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4.
<pre>
[https://github.com/debauchee/barrier Barrier software-KVM switch]
</pre>
Developers and testers may wish to disable the googley bits before compiling.
==== BT Audio headset ====
sudo apt install pulseaudio-module-bluetooth blueman bluez
sudo modprobe hci_uart
pactl load-module module-bluetooth-discover
blueman-manager
Pair & trust your device in blueman, connect audiosink. You can close blueman now. The quality seems a bit better in 'offline mode'.
== Using a configured Leste sdcard in a different Droid4 ==
A configured Droid4 Leste installation is unique to the device that it was calibrated on. Particularly the wlan firmware calibration will be incorrect if an existing Leste installation is transferred to a different device.
The wifi calibration script requires a system set to stock settings to calibrate-from. It cannot just be re-run on an already calibrated system.
To recalibrate the wifi firmware on a different Droid4, you must reset the FEM parameters to stock settings on the new device, then recalibrate.
If you can get the device online (usb networking or moving close to the WLAN AP) this can be done with.
apt reinstall firmware-ti-connectivity
If not, you can download the firmware-ti-connectivity_[version]_all.deb on another Leste device
apt download firmware-ti-connectivity
Then copy the .deb to your new device and install that (as root) with
dpkg -i firmware-ti-connectivity_[version]_all.deb
Then (as root) re-calibrate the wifi chip by running
/usr/bin/maserati-calibrate
Then reboot.
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
Cant_have_2_much_leste.jpg
Leste-neverball.jpg
Statsfun.jpg
Leste-glmatrix.png
Droid4-leste-utox2.jpg
Droid4-leste-pcsx.jpg
Droid4-leste-surf_master.jpg
Droid4_Daimonin_Hdmi.jpg
</gallery>
== Old status overview ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Implemented with Pulseaudio and UCM files
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || Yes || Available in /sys, and as input device via iio-uinput
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)
|-
| Gyro || N/A ||
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/
|-
| Idle power consumption || ~120mW || Needs sim inserted
|}
[[Category:Device]]
b985d1750dda44759c57ebdde0719963e7831a14
1243
1238
2021-11-28T18:49:05Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati XT894
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
|category=Supported
|sw_kernel=5.11.0
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Yes
|sw_usb_host=Yes
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=Yes
|sw_tv=
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=Yes
|sw_4g=No
|sw_bluetooth=Yes, [[#Bluetooth|see notes]]
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=120mW
|sw_standbytime=
}}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
=== Updating Android ===
This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
=== Setting up kexecboot ===
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
=== Install Maemo Leste to the sdcard ===
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab the latest image from https://phoenix.maemo.org/view/Images/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
The keyboard layout is extended to provide more standard keys.
[[File:Maemo-leste-droid4-kbd-2021-07.png|center|620px|thumb|maemo-leste droid4 keyboard]]
Key mapping can be tested with the 'xev' program.
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Bluetooth ==
Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
== Stuff to try ==
==== Flashing the boot logo ====
<pre>
15:04 < tmlind> Wizzup: i think the logo on droid4 can be flashed with fastboot flash logo logo.bin or something, can also be just written to logo partition from m-l
09:24 < xsetiadi> https://github.com/xsetiadi/droid4-kexecboot/blob/master/logo.bin
09:25 < xsetiadi> becarefull, you can bootloop droid4 if you wrong flash partition
09:26 < xsetiadi> like i do last year
09:26 < xsetiadi> instead of flashing using command: fastboot flash logo.bin logo.bin i just flash it with command: fastboot flash logo logo.bin
</pre>
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Wifi ====
The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== Phone Call ====
These can be used to talk to the modem manually... But we really should have ofono and sphone GUI doing that job. [[Status/Phone]] mentions current status. Make sure there is a SIM in the phone.
Run this:
Read modem output:
<pre>
cat /dev/motmdm1 &
</pre>
Online modem:
<pre>
printf "AT+CFUN=1\r" > /dev/motmdm1
</pre>
Connect to network:
<pre>
printf "AT+COPS=1\r" > /dev/motmdm1
</pre>
Print connected network:
</pre>
printf "AT+COPS?\r" > /dev/motmdm1
Turn off signal reporting:
<pre>
# printf "AT+SCRN=0\r" > /dev/motmdm1
</pre>
Dial a number:
<pre>
printf "ATD+1234567890\r" > /dev/motmdm1
</pre>
Hang up:
<pre>
printf "ATH\r" > /dev/motmdm1
</pre>
Answer incoming call:
<pre>
printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired.
==== 3G Internet ====
Using qmicli:
qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
route del default
sudo ifconfig wwan0 up
dhclient wwan0
Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed.
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
==== HDMI ====
Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier.
<pre>
xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off
</pre>
Return to internal touchscreen display.
<pre>
xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off
</pre>
==== Keyboard / Mouse sharing with PC ====
To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4.
<pre>
[https://github.com/debauchee/barrier Barrier software-KVM switch]
</pre>
Developers and testers may wish to disable the googley bits before compiling.
==== BT Audio headset ====
sudo apt install pulseaudio-module-bluetooth blueman bluez
sudo modprobe hci_uart
pactl load-module module-bluetooth-discover
blueman-manager
Pair & trust your device in blueman, connect audiosink. You can close blueman now. The quality seems a bit better in 'offline mode'.
== Using a configured Leste sdcard in a different Droid4 ==
A configured Droid4 Leste installation is unique to the device that it was calibrated on. Particularly the wlan firmware calibration will be incorrect if an existing Leste installation is transferred to a different device.
The wifi calibration script requires a system set to stock settings to calibrate-from. It cannot just be re-run on an already calibrated system.
To recalibrate the wifi firmware on a different Droid4, you must reset the FEM parameters to stock settings on the new device, then recalibrate.
If you can get the device online (usb networking or moving close to the WLAN AP) this can be done with.
apt reinstall firmware-ti-connectivity
If not, you can download the firmware-ti-connectivity_[version]_all.deb on another Leste device
apt download firmware-ti-connectivity
Then copy the .deb to your new device and install that (as root) with
dpkg -i firmware-ti-connectivity_[version]_all.deb
Then (as root) re-calibrate the wifi chip by running
/usr/bin/maserati-calibrate
Then reboot.
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4 leste logo.jpg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
Cant_have_2_much_leste.jpg
Leste-neverball.jpg
Statsfun.jpg
Leste-glmatrix.png
Droid4-leste-utox2.jpg
Droid4-leste-pcsx.jpg
Droid4-leste-surf_master.jpg
Droid4_Daimonin_Hdmi.jpg
</gallery>
== Old status overview ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Implemented with Pulseaudio and UCM files
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || Yes || Available in /sys, and as input device via iio-uinput
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)
|-
| Gyro || N/A ||
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/
|-
| Idle power consumption || ~120mW || Needs sim inserted
|}
[[Category:Device]]
d93baa0620a509a38d02e1705dc42a7b0efe19e7
1244
1243
2021-11-28T18:49:55Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati XT894
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
|category=Supported
|sw_kernel=5.11.0
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Yes
|sw_usb_host=Yes
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=Yes
|sw_tv=
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=Yes
|sw_4g=No
|sw_bluetooth=Yes, [[#Bluetooth|see notes]]
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=120mW
|sw_standbytime=
}}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
=== Updating Android ===
This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
=== Setting up kexecboot ===
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
=== Install Maemo Leste to the sdcard ===
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab the latest image from https://phoenix.maemo.org/view/Images/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
The keyboard layout is extended to provide more standard keys.
[[File:Maemo-leste-droid4-kbd-2021-07.png|center|620px|thumb|maemo-leste droid4 keyboard]]
Key mapping can be tested with the 'xev' program.
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Bluetooth ==
Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
== Stuff to try ==
==== Flashing the boot logo ====
More info: https://github.com/xsetiadi/droid4-kexecboot/blob/master/LOGO
<pre>
15:04 < tmlind> Wizzup: i think the logo on droid4 can be flashed with fastboot flash logo logo.bin or something, can also be just written to logo partition from m-l
[snip]
09:24 < xsetiadi> https://github.com/xsetiadi/droid4-kexecboot/blob/master/logo.bin
09:25 < xsetiadi> becarefull, you can bootloop droid4 if you wrong flash partition
09:26 < xsetiadi> like i do last year
09:26 < xsetiadi> instead of flashing using command: fastboot flash logo.bin logo.bin i just flash it with command: fastboot flash logo logo.bin
</pre>
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Wifi ====
The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== Phone Call ====
These can be used to talk to the modem manually... But we really should have ofono and sphone GUI doing that job. [[Status/Phone]] mentions current status. Make sure there is a SIM in the phone.
Run this:
Read modem output:
<pre>
cat /dev/motmdm1 &
</pre>
Online modem:
<pre>
printf "AT+CFUN=1\r" > /dev/motmdm1
</pre>
Connect to network:
<pre>
printf "AT+COPS=1\r" > /dev/motmdm1
</pre>
Print connected network:
</pre>
printf "AT+COPS?\r" > /dev/motmdm1
Turn off signal reporting:
<pre>
# printf "AT+SCRN=0\r" > /dev/motmdm1
</pre>
Dial a number:
<pre>
printf "ATD+1234567890\r" > /dev/motmdm1
</pre>
Hang up:
<pre>
printf "ATH\r" > /dev/motmdm1
</pre>
Answer incoming call:
<pre>
printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired.
==== 3G Internet ====
Using qmicli:
qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
route del default
sudo ifconfig wwan0 up
dhclient wwan0
Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed.
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
==== HDMI ====
Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier.
<pre>
xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off
</pre>
Return to internal touchscreen display.
<pre>
xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off
</pre>
==== Keyboard / Mouse sharing with PC ====
To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4.
<pre>
[https://github.com/debauchee/barrier Barrier software-KVM switch]
</pre>
Developers and testers may wish to disable the googley bits before compiling.
==== BT Audio headset ====
sudo apt install pulseaudio-module-bluetooth blueman bluez
sudo modprobe hci_uart
pactl load-module module-bluetooth-discover
blueman-manager
Pair & trust your device in blueman, connect audiosink. You can close blueman now. The quality seems a bit better in 'offline mode'.
== Using a configured Leste sdcard in a different Droid4 ==
A configured Droid4 Leste installation is unique to the device that it was calibrated on. Particularly the wlan firmware calibration will be incorrect if an existing Leste installation is transferred to a different device.
The wifi calibration script requires a system set to stock settings to calibrate-from. It cannot just be re-run on an already calibrated system.
To recalibrate the wifi firmware on a different Droid4, you must reset the FEM parameters to stock settings on the new device, then recalibrate.
If you can get the device online (usb networking or moving close to the WLAN AP) this can be done with.
apt reinstall firmware-ti-connectivity
If not, you can download the firmware-ti-connectivity_[version]_all.deb on another Leste device
apt download firmware-ti-connectivity
Then copy the .deb to your new device and install that (as root) with
dpkg -i firmware-ti-connectivity_[version]_all.deb
Then (as root) re-calibrate the wifi chip by running
/usr/bin/maserati-calibrate
Then reboot.
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4 leste logo.jpg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
Cant_have_2_much_leste.jpg
Leste-neverball.jpg
Statsfun.jpg
Leste-glmatrix.png
Droid4-leste-utox2.jpg
Droid4-leste-pcsx.jpg
Droid4-leste-surf_master.jpg
Droid4_Daimonin_Hdmi.jpg
</gallery>
== Old status overview ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Implemented with Pulseaudio and UCM files
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || Yes || Available in /sys, and as input device via iio-uinput
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)
|-
| Gyro || N/A ||
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/
|-
| Idle power consumption || ~120mW || Needs sim inserted
|}
[[Category:Device]]
20c7ac1ada917d55ec365b71fbd4484e4db63ffb
1245
1244
2021-11-28T18:50:46Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati XT894
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
|category=Supported
|sw_kernel=5.11.0
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Yes
|sw_usb_host=Yes
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=Yes
|sw_tv=
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=Yes
|sw_4g=No
|sw_bluetooth=Yes, [[#Bluetooth|see notes]]
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=120mW
|sw_standbytime=
}}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
=== Updating Android ===
This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
=== Setting up kexecboot ===
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
=== Install Maemo Leste to the sdcard ===
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab the latest image from https://phoenix.maemo.org/view/Images/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
The keyboard layout is extended to provide more standard keys.
[[File:Maemo-leste-droid4-kbd-2021-07.png|center|620px|thumb|maemo-leste droid4 keyboard]]
Key mapping can be tested with the 'xev' program.
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Bluetooth ==
Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
== Stuff to try ==
==== Flashing the boot logo ====
More info: https://github.com/xsetiadi/droid4-kexecboot/blob/master/LOGO
<pre>
15:04 < tmlind> Wizzup: i think the logo on droid4 can be flashed with fastboot flash logo logo.bin or something, can also be just written to logo partition from m-l
[snip]
09:24 < xsetiadi> https://github.com/xsetiadi/droid4-kexecboot/blob/master/logo.bin
09:25 < xsetiadi> becarefull, you can bootloop droid4 if you wrong flash partition
09:26 < xsetiadi> like i do last year
09:26 < xsetiadi> instead of flashing using command: fastboot flash logo.bin logo.bin i just flash it with command: fastboot flash logo logo.bin
</pre>
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Wifi ====
The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== Phone Call ====
These can be used to talk to the modem manually... But we really should have ofono and sphone GUI doing that job. [[Status/Phone]] mentions current status. Make sure there is a SIM in the phone.
Run this:
Read modem output:
<pre>
cat /dev/motmdm1 &
</pre>
Online modem:
<pre>
printf "AT+CFUN=1\r" > /dev/motmdm1
</pre>
Connect to network:
<pre>
printf "AT+COPS=1\r" > /dev/motmdm1
</pre>
Print connected network:
</pre>
printf "AT+COPS?\r" > /dev/motmdm1
Turn off signal reporting:
<pre>
# printf "AT+SCRN=0\r" > /dev/motmdm1
</pre>
Dial a number:
<pre>
printf "ATD+1234567890\r" > /dev/motmdm1
</pre>
Hang up:
<pre>
printf "ATH\r" > /dev/motmdm1
</pre>
Answer incoming call:
<pre>
printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired.
==== 3G Internet ====
Using qmicli:
qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
route del default
sudo ifconfig wwan0 up
dhclient wwan0
Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed.
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
==== HDMI ====
Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier.
<pre>
xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off
</pre>
Return to internal touchscreen display.
<pre>
xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off
</pre>
==== Keyboard / Mouse sharing with PC ====
To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4.
<pre>
[https://github.com/debauchee/barrier Barrier software-KVM switch]
</pre>
Developers and testers may wish to disable the googley bits before compiling.
==== BT Audio headset ====
sudo apt install pulseaudio-module-bluetooth blueman bluez
sudo modprobe hci_uart
pactl load-module module-bluetooth-discover
blueman-manager
Pair & trust your device in blueman, connect audiosink. You can close blueman now. The quality seems a bit better in 'offline mode'.
== Using a configured Leste sdcard in a different Droid4 ==
A configured Droid4 Leste installation is unique to the device that it was calibrated on. Particularly the wlan firmware calibration will be incorrect if an existing Leste installation is transferred to a different device.
The wifi calibration script requires a system set to stock settings to calibrate-from. It cannot just be re-run on an already calibrated system.
To recalibrate the wifi firmware on a different Droid4, you must reset the FEM parameters to stock settings on the new device, then recalibrate.
If you can get the device online (usb networking or moving close to the WLAN AP) this can be done with.
apt reinstall firmware-ti-connectivity
If not, you can download the firmware-ti-connectivity_[version]_all.deb on another Leste device
apt download firmware-ti-connectivity
Then copy the .deb to your new device and install that (as root) with
dpkg -i firmware-ti-connectivity_[version]_all.deb
Then (as root) re-calibrate the wifi chip by running
/usr/bin/maserati-calibrate
Then reboot.
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
Cant_have_2_much_leste.jpg
Leste-neverball.jpg
Statsfun.jpg
Leste-glmatrix.png
Droid4-leste-utox2.jpg
Droid4-leste-pcsx.jpg
Droid4-leste-surf_master.jpg
Droid4_Daimonin_Hdmi.jpg
</gallery>
== Old status overview ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Implemented with Pulseaudio and UCM files
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || Yes || Available in /sys, and as input device via iio-uinput
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)
|-
| Gyro || N/A ||
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/
|-
| Idle power consumption || ~120mW || Needs sim inserted
|}
[[Category:Device]]
5b06e8c9696c7b62e6813beedce71dab4a1f679a
Status/Phone
0
187
1239
2021-11-13T18:32:34Z
Pavel
9
Created page with "= Devel repository = As of 11/2021, this is bleeding edge development. You need to switch to devel repositories which may break your system. To do that place deb https://maed..."
wikitext
text/x-wiki
= Devel repository =
As of 11/2021, this is bleeding edge development. You need to switch to devel repositories which may break your system. To do that place deb https://maedevu.maemo.org/leste beowulf-devel main contrib non-free into /etc/apt/sources.list and run sudo apt update.
= Phone calls =
Voice calls should be working, or close to working, on Motorola Droid 4. Ofonod is handling the modem, and it is configured and running by default. Modem is not enabled by default. enable-modem and online-modem scripts from ofono/test can be used to put modem online. sphone can be used as an UI to place and receive calls, it can be installed using sudo apt install sphone.
e4ffe1ffb7bd7d55ce8690742e31b9edf925255f
1240
1239
2021-11-13T18:40:13Z
Pavel
9
/* Devel repository */
wikitext
text/x-wiki
= Devel repository =
As of 11/2021, this is bleeding edge development. You need to switch to devel repositories which may break your system. To do that append line <pre>deb https://maedevu.maemo.org/leste beowulf-devel main contrib non-free</pre> into /etc/apt/sources.list and run sudo apt update.
= Phone calls =
Voice calls should be working, or close to working, on Motorola Droid 4. Ofonod is handling the modem, and it is configured and running by default. Modem is not enabled by default. enable-modem and online-modem scripts from ofono/test can be used to put modem online. sphone can be used as an UI to place and receive calls, it can be installed using sudo apt install sphone.
b2554fe96c8237cc877fb4de4245ebacc88d2f41
Nokia N900
0
48
1241
1135
2021-11-27T23:29:30Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=5.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=300mW (needs kernel work)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them
Also see: https://elinux.org/N900
== Power Management ==
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch
<pre>
$ cat idlest.py
"""
00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000
f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046
0000000d 48004a28 (f7aa95e6) cm_idlest3_core
"""
# 31 to 0
cm_idlest1_core_bits = [
'RESERVED',
'ST_MMC3',
'ST_ICR',
'RESERVED',
'RESERVED',
'RESERVED',
'ST_MMC2',
'ST_MMC1',
'RESERVED',
'ST_HDQ',
'ST_MCSPI4',
'ST_MCSPI3',
'ST_MCSPI2',
'ST_MCSPI1',
'ST_I2C3',
'ST_I2C2',
'ST_I2C1',
'ST_UART2',
'ST_UART1',
'ST_GPT11',
'ST_GPT10',
'ST_MCBSP5',
'ST_MCBSP1',
'RESERVED',
'ST_MAILBOXES',
'ST_OMAPCTRL',
'ST_HSOTGUSB_IDLE',
'ST_HSOTGUSB_STDBY',
'RESERVED',
'ST_SDMA',
'ST_SDRC',
'RESERVED',
]
cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits))
#inp = '0020c046'
inp = '00208042' # after rmmod hci_nokia and hci_uart
v = int(inp, 16)
#print(v)
b= "{0:b}".format(v)
print((32-len(b))*'0' + b)
for i in range(0, 32):
is_set = (v & (1 << i)) >> i
if is_set:
print(cm_idlest1_core_bits[i])
</pre>
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Old status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || Yes || TX only (hardware limitation).
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode
|}
[[Category:Device]]
f08bcf4eac2a5fd29e6f2a337b9aab25acdeafe7
1242
1241
2021-11-28T14:00:56Z
Wizzup
4
/* Power Management */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=5.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=300mW (needs kernel work)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them
Also see: https://elinux.org/N900
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Old status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || Yes || TX only (hardware limitation).
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode
|}
[[Category:Device]]
392e0dcdd10b06b3f2a7d05d6a77ab4c149dbab1
Motorola Droid 3
0
151
1246
1191
2021-11-29T01:45:18Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Device
|image=
|manufacturer=Motorola
|codename=Solana XT862 / XT860
|dimensions=todo
|release_date=todo
|soc=TI OMAP4430
|dram=512MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=todo
|other=
|category=Supported
|sw_kernel=5.11.0
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Yes
|sw_usb_host=Yes
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=Untested
|sw_tv=
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=No (needs modem work)
|sw_sms=No (needs modem work)
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=
|sw_4g=No
|sw_bluetooth=todo
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=No (needs modem work)
|sw_agps=No
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=
|sw_standbytime=
}}
'''This device is called "Motorola Milestone 3" outside of the US.'''
== Installation ==
Hardware requirements:
* Droid 3 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux system
* Android Tools: fastboot adb
Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
# Latest maemo-leste-1.0-armhf-bionic-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# droid4-kexecboot.img
Download or clone https://github.com/MerlijnWajer/bionic-clown-boot/tree/solana (solana branch!)
Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device.
Now, flash the Maemo Leste image to your sdcard.
== Notes ==
Device is still heavy work in the progress. The following is known not to work:
* Brightness control (screen is always max brightness)
* Keyboard backlight
* Modem interrupts, it is visible on USB but other communication with it doesn't work
* pstore (needs figuring out what the reserved memory is on Android)
* See if we can use 512MB ram instead of 509MB (see dts)
* 3d shows some frame lag / misdrawing, so probably powervr clock needs adjusting (seems solved on kernel 5.15)
* <s>touchscreen buttons do not work yet</s> (fixed on 5.15)
* keyboard layout in Leste is not faithful to the icons on the keyboard, but rather mostly mimic droid 4
<s>Additionally, the device suffers from random hangs while in use, causing resets. When pstore works, we can hopefully figure this out.</s> (Haven't seen them on 5.15)
Also, the device often comes network locked. [[User:Wizzup]] has access to Sigmakey software and can help remotely remove the network lock.
[[Category:Device]]
70afefaa3c459d019574d50d718fd50eaeb77bbb
1247
1246
2021-11-29T01:45:53Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Device
|image=
|manufacturer=Motorola
|codename=Solana XT862 / XT860
|dimensions=todo
|release_date=todo
|soc=TI OMAP4430
|dram=512MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=todo
|other=
|category=Supported
|sw_kernel=5.11.0
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Yes
|sw_usb_host=Yes
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=Untested
|sw_tv=
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=No (needs modem work)
|sw_sms=No (needs modem work)
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=
|sw_4g=No
|sw_bluetooth=todo
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=No (needs modem work)
|sw_agps=No
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=
|sw_standbytime=
}}
'''This device is called "Motorola Milestone 3" outside of the US.'''
== Installation ==
Hardware requirements:
* Droid 3 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux system
* Android Tools: fastboot adb
Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
# Latest maemo-leste-1.0-armhf-bionic-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# droid4-kexecboot.img
Download or clone https://github.com/MerlijnWajer/bionic-clown-boot/tree/solana (solana branch!)
Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device.
Now, flash the Maemo Leste image to your sdcard.
== Notes ==
Device is still heavy work in the progress. The following is known not to work:
* Brightness control (screen is always max brightness)
* Keyboard backlight
* Modem interrupts, it is visible on USB but other communication with it doesn't work
* pstore (needs figuring out what the reserved memory is on Android)
* See if we can use 512MB ram instead of 509MB (see dts)
* <s>3d shows some frame lag / misdrawing, so probably powervr clock needs adjusting</s> (seems solved on kernel 5.15)
* <s>touchscreen buttons do not work yet</s> (fixed on 5.15)
* keyboard layout in Leste is not faithful to the icons on the keyboard, but rather mostly mimic droid 4
<s>Additionally, the device suffers from random hangs while in use, causing resets. When pstore works, we can hopefully figure this out.</s> (Haven't seen them on 5.15)
Also, the device often comes network locked. [[User:Wizzup]] has access to Sigmakey software and can help remotely remove the network lock.
[[Category:Device]]
15543ef8d4ced33ef2b7498f44a332019d24ebff
1249
1247
2021-12-12T23:37:49Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Device
|image=
|manufacturer=Motorola
|codename=Solana XT862 / XT860
|dimensions=todo
|release_date=todo
|soc=TI OMAP4430
|dram=512MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=todo
|other=
|category=Supported
|sw_kernel=5.15.0
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Yes
|sw_usb_host=Yes
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=Untested
|sw_tv=
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=No (needs modem work)
|sw_sms=No (needs modem work)
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=
|sw_4g=No
|sw_bluetooth=todo
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=No (needs modem work)
|sw_agps=No
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=
|sw_standbytime=
}}
'''This device is called "Motorola Milestone 3" outside of the US.'''
== Installation ==
Hardware requirements:
* Droid 3 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux system
* Android Tools: fastboot adb
Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
# Latest maemo-leste-1.0-armhf-bionic-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# droid4-kexecboot.img
Download or clone https://github.com/MerlijnWajer/bionic-clown-boot/tree/solana (solana branch!)
Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device.
Now, flash the Maemo Leste image to your sdcard.
== Notes ==
Device is still heavy work in the progress. The following is known not to work:
* Brightness control (screen is always max brightness)
* Keyboard backlight
* Modem interrupts, it is visible on USB but other communication with it doesn't work
* pstore (needs figuring out what the reserved memory is on Android)
* See if we can use 512MB ram instead of 509MB (see dts)
* <s>3d shows some frame lag / misdrawing, so probably powervr clock needs adjusting</s> (seems solved on kernel 5.15)
* <s>touchscreen buttons do not work yet</s> (fixed on 5.15)
* keyboard layout in Leste is not faithful to the icons on the keyboard, but rather mostly mimic droid 4
<s>Additionally, the device suffers from random hangs while in use, causing resets. When pstore works, we can hopefully figure this out.</s> (Haven't seen them on 5.15)
Also, the device often comes network locked. [[User:Wizzup]] has access to Sigmakey software and can help remotely remove the network lock.
[[Category:Device]]
6106267169b99669a82269d6f6abe3317976538f
Wishlist
0
89
1248
1149
2021-12-09T13:56:25Z
Dsc
51
/* Applications */
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
{| class="wikitable"http://maemo.org/packages/view/orecchiette/
! Package name
! Done
! Reason
! User
! URL
! Notes
|-
| osso-notes || Yes (quicknote) || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Quicknote currently packaged. Usage notes - http://wiki.maemo.org/Quicknote
|-
| pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation.
|-
| scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please
|-
| [[Games/Brainparty|brainparty]] || Yes || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ ||
|-
| Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || http://maemo.org/packages/view/orecchiette/(has also Psycho Pinball installable)
|-
| Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||http://maemo.org/packages/view/orecchiette/
|-
| Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend
|-
| PDF reader || Yes || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || libhildonfm has bugs regarding file opening dialogs that need to be fixed
|-
| Calendar app || Yes || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port.
|-
| Alarm clock || Yes || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI
|-
| Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/
|-
| Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel
|-
|Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0
|-
| Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ ||
|-
| Image viewer/editor || Yes || || [[User:Maemish]] || https://github.com/maemo-leste-extras/mihphoto ||
|-
| Mail with imap support || No || || [[User:Maemish]] || ||
|-
| RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || ||
|-
| Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ ||
|-
| OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer ||
|-
| SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net ||
|-
| Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ ||
|-
| D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ ||
|-
| Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ ||
|-
| MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms ||
|-
| Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ ||
|-
| Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed.
|-
| Firewall || No || || [[User:Maemish]] || || Something with easy configuration.
|-
| Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ ||
|-
|bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ ||
|-
| cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ ||
|-
| gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ ||
|-|-
| alarmed (or cron?) || No || utilities || [[User:ric9k]] || http://maemo.org/packages/view/alarmed/ ||
|-|-
| user friendly tracker || No || utilities? || [[User:ric9k]] || n/a :-) ||
|-|-
| Maps (offline) || Yes || Navigation || [[User:Sicelo]] || || (maep, modrana, cloudgps are all packaged). Ideally something like https://f-droid.org/en/packages/com.github.axet.maps/ from Android, but Modrana, https://github.com/M4rtinK/modrana may be easier as a start. [FoxtrotGPS https://www.foxtrotgps.org] might be the easiest to adapt, it is already packaged in Devuan.
|-
| Orecchiette || No || calls recording || [[User:capitannemo]] || http://maemo.org/packages/view/orecchiette/ ||
|-
| Panucci || No || audiobook || [[User:capitannemo]] || http://maemo.org/packages/view/panucci/ ||
|-
| gPodder || No || podcast || [[User:capitannemo]] || http://maemo.org/packages/view/gpodder/ ||
|-
| Symfonie || No || directory-based audioplayer || [[User:capitannemo]] || http://maemo.org/packages/view/symfonie/ ||
|-
| osso-clock || Yes (clock-ui) || clock and alarms application || pavel || ||
|-
| freecell4maemo || No || freecell game || pavel || ||
|-
| [http://festvox.org/index.html CMU Flite] || In Repo || Accessibility (TTS) || [[User:Buffer|Buffer]] ([[User talk:Buffer|talk]]) 21:48, 2 March 2020 (UTC) || https://github.com/festvox/flite ||
|-
| Cooktimer || No || feature-rich timers || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cooktimer/0.0.4-24/ || latest from extras-devel
|-
| OpenSSH Status Widget || No || openSSH monitor and config. || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/openssh-status-widget/2.2-12/ || Installing this package is the only step required on a fresh n900 to have openssh working
|-
| Recaller || No || record with one tap || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/recaller/2.1.0-5/ ||
|-
| NecroPlayer2 || No || directory-based audioplayer, easy playlist edit, multiple directories, very useful with recaller widget || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/necroplayer2/0.2.3/ ||
|-
| Simpler Brightness Applet || Yes || simple brightness applet with single tap for backlight and long tap for settings || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/simpler-brightness-applet/1.0/ ||
|)
|-
| telepathy-signal || No || The best open source alternative to WhatsApp should be ready for use with Maemo Leste || [[User:Derby]] || https://github.com/signalapp/Signal-Desktop ; https://github.com/AsamK/signal-cli || This is a suggestion to create a Telepathy connection manager for Signal. Although the Signal [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=842943 Desktop] and [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=926807 CLI] can be installed, they are not yet available in Debian. In any case, it would be great to have a Telepathy connection manager for Signal to provide seamless integration with Maemo.
ef02ea3f2a3839ae7cc9ab2a49ce6700998ecbf2
1251
1248
2021-12-13T19:29:24Z
Ashley
52
/* Applications */ rm superfluous column
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
{| class="wikitable"http://maemo.org/packages/view/orecchiette/
! Package name
! Done
! Reason
! User
! URL
! Notes
|-
| osso-notes || Yes (quicknote) || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Quicknote currently packaged. Usage notes - http://wiki.maemo.org/Quicknote
|-
| pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation.
|-
| scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please
|-
| [[Games/Brainparty|brainparty]] || Yes || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ ||
|-
| Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || http://maemo.org/packages/view/orecchiette/(has also Psycho Pinball installable)
|-
| Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||http://maemo.org/packages/view/orecchiette/
|-
| Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend
|-
| PDF reader || Yes || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || libhildonfm has bugs regarding file opening dialogs that need to be fixed
|-
| Calendar app || Yes || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port.
|-
| Alarm clock || Yes || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI
|-
| Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/
|-
| Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel
|-
|Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0
|-
| Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ ||
|-
| Image viewer/editor || Yes || || [[User:Maemish]] || https://github.com/maemo-leste-extras/mihphoto ||
|-
| Mail with imap support || No || || [[User:Maemish]] || ||
|-
| RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || ||
|-
| Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ ||
|-
| OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer ||
|-
| SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net ||
|-
| Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ ||
|-
| D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ ||
|-
| Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ ||
|-
| MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms ||
|-
| Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ ||
|-
| Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed.
|-
| Firewall || No || || [[User:Maemish]] || || Something with easy configuration.
|-
| Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ ||
|-
|bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ ||
|-
| cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ ||
|-
| gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ ||
|-|-
| alarmed (or cron?) || No || utilities || [[User:ric9k]] || http://maemo.org/packages/view/alarmed/ ||
|-|-
| user friendly tracker || No || utilities? || [[User:ric9k]] || n/a :-) ||
|-|-
| Maps (offline) || Yes || Navigation || [[User:Sicelo]] || || (maep, modrana, cloudgps are all packaged). Ideally something like https://f-droid.org/en/packages/com.github.axet.maps/ from Android, but Modrana, https://github.com/M4rtinK/modrana may be easier as a start. [FoxtrotGPS https://www.foxtrotgps.org] might be the easiest to adapt, it is already packaged in Devuan.
|-
| Orecchiette || No || calls recording || [[User:capitannemo]] || http://maemo.org/packages/view/orecchiette/ ||
|-
| Panucci || No || audiobook || [[User:capitannemo]] || http://maemo.org/packages/view/panucci/ ||
|-
| gPodder || No || podcast || [[User:capitannemo]] || http://maemo.org/packages/view/gpodder/ ||
|-
| Symfonie || No || directory-based audioplayer || [[User:capitannemo]] || http://maemo.org/packages/view/symfonie/ ||
|-
| osso-clock || Yes (clock-ui) || clock and alarms application || pavel || ||
|-
| freecell4maemo || No || freecell game || pavel || ||
|-
| [http://festvox.org/index.html CMU Flite] || In Repo || Accessibility (TTS) || [[User:Buffer|Buffer]] ([[User talk:Buffer|talk]]) 21:48, 2 March 2020 (UTC) || https://github.com/festvox/flite ||
|-
| Cooktimer || No || feature-rich timers || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cooktimer/0.0.4-24/ || latest from extras-devel
|-
| OpenSSH Status Widget || No || openSSH monitor and config. || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/openssh-status-widget/2.2-12/ || Installing this package is the only step required on a fresh n900 to have openssh working
|-
| Recaller || No || record with one tap || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/recaller/2.1.0-5/ ||
|-
| NecroPlayer2 || No || directory-based audioplayer, easy playlist edit, multiple directories, very useful with recaller widget || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/necroplayer2/0.2.3/ ||
|-
| Simpler Brightness Applet || Yes || simple brightness applet with single tap for backlight and long tap for settings || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/simpler-brightness-applet/1.0/ ||
|-
| telepathy-signal || No || The best open source alternative to WhatsApp should be ready for use with Maemo Leste || [[User:Derby]] || https://github.com/signalapp/Signal-Desktop ; https://github.com/AsamK/signal-cli || This is a suggestion to create a Telepathy connection manager for Signal. Although the Signal [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=842943 Desktop] and [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=926807 CLI] can be installed, they are not yet available in Debian. In any case, it would be great to have a Telepathy connection manager for Signal to provide seamless integration with Maemo.
e5ad0f5fc1e71e0ac3f2183d44314ee3922dd027
1252
1251
2021-12-13T19:31:52Z
Ashley
52
/* Applications */ fix two links
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
{| class="wikitable"http://maemo.org/packages/view/orecchiette/
! Package name
! Done
! Reason
! User
! URL
! Notes
|-
| osso-notes || Yes (quicknote) || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Quicknote currently packaged. Usage notes - http://wiki.maemo.org/Quicknote
|-
| pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation.
|-
| scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please
|-
| [[Games/Brainparty|brainparty]] || Yes || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ ||
|-
| Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || http://maemo.org/packages/view/orecchiette/ (has also Psycho Pinball installable)
|-
| Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||http://maemo.org/packages/view/orecchiette/
|-
| Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend
|-
| PDF reader || Yes || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || libhildonfm has bugs regarding file opening dialogs that need to be fixed
|-
| Calendar app || Yes || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port.
|-
| Alarm clock || Yes || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI
|-
| Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/
|-
| Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel
|-
|Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0
|-
| Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ ||
|-
| Image viewer/editor || Yes || || [[User:Maemish]] || https://github.com/maemo-leste-extras/mihphoto ||
|-
| Mail with imap support || No || || [[User:Maemish]] || ||
|-
| RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || ||
|-
| Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ ||
|-
| OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer ||
|-
| SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net ||
|-
| Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ ||
|-
| D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ ||
|-
| Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ ||
|-
| MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms ||
|-
| Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ ||
|-
| Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed.
|-
| Firewall || No || || [[User:Maemish]] || || Something with easy configuration.
|-
| Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ ||
|-
|bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ ||
|-
| cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ ||
|-
| gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ ||
|-|-
| alarmed (or cron?) || No || utilities || [[User:ric9k]] || http://maemo.org/packages/view/alarmed/ ||
|-|-
| user friendly tracker || No || utilities? || [[User:ric9k]] || n/a :-) ||
|-|-
| Maps (offline) || Yes || Navigation || [[User:Sicelo]] || || (maep, modrana, cloudgps are all packaged). Ideally something like https://f-droid.org/en/packages/com.github.axet.maps/ from Android, but Modrana, https://github.com/M4rtinK/modrana may be easier as a start. [https://www.foxtrotgps.org FoxtrotGPS] might be the easiest to adapt, it is already packaged in Devuan.
|-
| Orecchiette || No || calls recording || [[User:capitannemo]] || http://maemo.org/packages/view/orecchiette/ ||
|-
| Panucci || No || audiobook || [[User:capitannemo]] || http://maemo.org/packages/view/panucci/ ||
|-
| gPodder || No || podcast || [[User:capitannemo]] || http://maemo.org/packages/view/gpodder/ ||
|-
| Symfonie || No || directory-based audioplayer || [[User:capitannemo]] || http://maemo.org/packages/view/symfonie/ ||
|-
| osso-clock || Yes (clock-ui) || clock and alarms application || pavel || ||
|-
| freecell4maemo || No || freecell game || pavel || ||
|-
| [http://festvox.org/index.html CMU Flite] || In Repo || Accessibility (TTS) || [[User:Buffer|Buffer]] ([[User talk:Buffer|talk]]) 21:48, 2 March 2020 (UTC) || https://github.com/festvox/flite ||
|-
| Cooktimer || No || feature-rich timers || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cooktimer/0.0.4-24/ || latest from extras-devel
|-
| OpenSSH Status Widget || No || openSSH monitor and config. || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/openssh-status-widget/2.2-12/ || Installing this package is the only step required on a fresh n900 to have openssh working
|-
| Recaller || No || record with one tap || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/recaller/2.1.0-5/ ||
|-
| NecroPlayer2 || No || directory-based audioplayer, easy playlist edit, multiple directories, very useful with recaller widget || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/necroplayer2/0.2.3/ ||
|-
| Simpler Brightness Applet || Yes || simple brightness applet with single tap for backlight and long tap for settings || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/simpler-brightness-applet/1.0/ ||
|-
| telepathy-signal || No || The best open source alternative to WhatsApp should be ready for use with Maemo Leste || [[User:Derby]] || https://github.com/signalapp/Signal-Desktop ; https://github.com/AsamK/signal-cli || This is a suggestion to create a Telepathy connection manager for Signal. Although the Signal [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=842943 Desktop] and [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=926807 CLI] can be installed, they are not yet available in Debian. In any case, it would be great to have a Telepathy connection manager for Signal to provide seamless integration with Maemo.
5990ea3ab18f6665ed8fcfd867354abcde713d4d
1294
1252
2022-05-30T04:34:08Z
JvwN900
56
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
{| class="wikitable"http://maemo.org/packages/view/orecchiette/
! Package name
! Done
! Reason
! User
! URL
! Notes
|-
| osso-notes || Yes (quicknote) || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Quicknote currently packaged. Usage notes - http://wiki.maemo.org/Quicknote
|-
| pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation.
|-
| scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please
|-
| [[Games/Brainparty|brainparty]] || Yes || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ ||
|-
| Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || http://maemo.org/packages/view/orecchiette/ (has also Psycho Pinball installable)
|-
| Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||http://maemo.org/packages/view/orecchiette/
|-
| Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend
|-
| PDF reader || Yes || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || libhildonfm has bugs regarding file opening dialogs that need to be fixed
|-
| Calendar app || Yes || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port.
|-
| Alarm clock || Yes || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI
|-
| Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/
|-
| Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel
|-
|Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0
|-
| Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ ||
|-
| Image viewer/editor || Yes || || [[User:Maemish]] || https://github.com/maemo-leste-extras/mihphoto ||
|-
| Mail with imap support || No || || [[User:Maemish]] || ||
|-
| RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || ||
|-
| Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ ||
|-
| OpenMediaPlayer || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer ||
|-
| SMPlayer || Yes || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net || in Devuan repos
|-
| Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ ||
|-
| D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ ||
|-
| Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ ||
|-
| MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms ||
|-
| Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ ||
|-
| Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed.
|-
| Firewall || No || || [[User:Maemish]] || || Something with easy configuration.
|-
| Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ ||
|-
|bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ ||
|-
| cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ ||
|-
| gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ ||
|-|-
| alarmed (or cron?) || No || utilities || [[User:ric9k]] || http://maemo.org/packages/view/alarmed/ ||
|-|-
| user friendly tracker || No || utilities? || [[User:ric9k]] || n/a :-) ||
|-|-
| Maps (offline) || Yes || Navigation || [[User:Sicelo]] || || (maep, modrana, cloudgps are all packaged). Ideally something like https://f-droid.org/en/packages/com.github.axet.maps/ from Android, but Modrana, https://github.com/M4rtinK/modrana may be easier as a start. [https://www.foxtrotgps.org FoxtrotGPS] might be the easiest to adapt, it is already packaged in Devuan and works well on the Pinephone at least.
|-
| Orecchiette || No || calls recording || [[User:capitannemo]] || http://maemo.org/packages/view/orecchiette/ ||
|-
| Panucci || No || audiobook || [[User:capitannemo]] || http://maemo.org/packages/view/panucci/ ||
|-
| gPodder || No || podcast || [[User:capitannemo]] || http://maemo.org/packages/view/gpodder/ ||
|-
| Symfonie || No || directory-based audioplayer || [[User:capitannemo]] || http://maemo.org/packages/view/symfonie/ ||
|-
| osso-clock || Yes (clock-ui) || clock and alarms application || pavel || ||
|-
| freecell4maemo || No || freecell game || pavel || ||
|-
| [http://festvox.org/index.html CMU Flite] || In Repo || Accessibility (TTS) || [[User:Buffer|Buffer]] ([[User talk:Buffer|talk]]) 21:48, 2 March 2020 (UTC) || https://github.com/festvox/flite ||
|-
| Cooktimer || No || feature-rich timers || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cooktimer/0.0.4-24/ || latest from extras-devel
|-
| OpenSSH Status Widget || No || openSSH monitor and config. || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/openssh-status-widget/2.2-12/ || Installing this package is the only step required on a fresh n900 to have openssh working
|-
| Recaller || No || record with one tap || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/recaller/2.1.0-5/ ||
|-
| NecroPlayer2 || No || directory-based audioplayer, easy playlist edit, multiple directories, very useful with recaller widget || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/necroplayer2/0.2.3/ ||
|-
| Simpler Brightness Applet || Yes || simple brightness applet with single tap for backlight and long tap for settings || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/simpler-brightness-applet/1.0/ ||
|-
| telepathy-signal || No || The best open source alternative to WhatsApp should be ready for use with Maemo Leste || [[User:Derby]] || https://github.com/signalapp/Signal-Desktop ; https://github.com/AsamK/signal-cli || This is a suggestion to create a Telepathy connection manager for Signal. Although the Signal [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=842943 Desktop] and [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=926807 CLI] can be installed, they are not yet available in Debian. In any case, it would be great to have a Telepathy connection manager for Signal to provide seamless integration with Maemo.
16fd5ab208f43f662b7faea218c95aed5c7d3947
1295
1294
2022-06-03T18:43:34Z
JvwN900
56
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
{| class="wikitable"http://maemo.org/packages/view/orecchiette/
! Package name
! Done
! Reason
! User
! URL
! Notes
|-
| osso-notes || Yes (quicknote) || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Quicknote currently packaged. Usage notes - http://wiki.maemo.org/Quicknote
|-
| pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation.
|-
| scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please
|-
| [[Games/Brainparty|brainparty]] || Yes || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ ||
|-
| Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || http://maemo.org/packages/view/orecchiette/ (has also Psycho Pinball installable)
|-
| Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||http://maemo.org/packages/view/orecchiette/
|-
| Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend
|-
| PDF reader || Yes || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || libhildonfm has bugs regarding file opening dialogs that need to be fixed
|-
| Calendar app || Yes || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port.
|-
| Alarm clock || Yes || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI
|-
| Word processor / Abiword || Yes || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ || in Devuan repos
|-
| Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel
|-
|Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0
|-
| Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ ||
|-
| Image viewer/editor || Yes || || [[User:Maemish]] || https://github.com/maemo-leste-extras/mihphoto ||
|-
| Mail with imap support || No || || [[User:Maemish]] || ||
|-
| RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || ||
|-
| Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ ||
|-
| OpenMediaPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer ||
|-
| SMPlayer || Yes || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net || in Devuan repos; "maemo5" UI style is currently broken
|-
| Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ ||
|-
| D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ ||
|-
| Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ ||
|-
| MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms ||
|-
| Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ ||
|-
| Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed.
|-
| Firewall || No || || [[User:Maemish]] || || Something with easy configuration.
|-
| Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ ||
|-
|bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ ||
|-
| cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ ||
|-
| gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ ||
|-|-
| alarmed (or cron?) || No || utilities || [[User:ric9k]] || http://maemo.org/packages/view/alarmed/ ||
|-|-
| user friendly tracker || No || utilities? || [[User:ric9k]] || n/a :-) ||
|-|-
| Maps (offline) || Yes || Navigation || [[User:Sicelo]] || || (maep, modrana, cloudgps are all packaged). Ideally something like https://f-droid.org/en/packages/com.github.axet.maps/ from Android, but Modrana, https://github.com/M4rtinK/modrana may be easier as a start. [https://www.foxtrotgps.org FoxtrotGPS] might be the easiest to adapt, it is already packaged in Devuan and works well on the Pinephone at least.
|-
| Orecchiette || No || calls recording || [[User:capitannemo]] || http://maemo.org/packages/view/orecchiette/ ||
|-
| Panucci || No || audiobook || [[User:capitannemo]] || http://maemo.org/packages/view/panucci/ ||
|-
| gPodder || No || podcast || [[User:capitannemo]] || http://maemo.org/packages/view/gpodder/ ||
|-
| Symfonie || No || directory-based audioplayer || [[User:capitannemo]] || http://maemo.org/packages/view/symfonie/ ||
|-
| osso-clock || Yes (clock-ui) || clock and alarms application || pavel || ||
|-
| freecell4maemo || No || freecell game || pavel || ||
|-
| [http://festvox.org/index.html CMU Flite] || In Repo || Accessibility (TTS) || [[User:Buffer|Buffer]] ([[User talk:Buffer|talk]]) 21:48, 2 March 2020 (UTC) || https://github.com/festvox/flite ||
|-
| Cooktimer || No || feature-rich timers || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cooktimer/0.0.4-24/ || latest from extras-devel
|-
| OpenSSH Status Widget || No || openSSH monitor and config. || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/openssh-status-widget/2.2-12/ || Installing this package is the only step required on a fresh n900 to have openssh working
|-
| Recaller || No || record with one tap || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/recaller/2.1.0-5/ ||
|-
| NecroPlayer2 || No || directory-based audioplayer, easy playlist edit, multiple directories, very useful with recaller widget || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/necroplayer2/0.2.3/ ||
|-
| Simpler Brightness Applet || Yes || simple brightness applet with single tap for backlight and long tap for settings || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/simpler-brightness-applet/1.0/ ||
|-
| telepathy-signal || No || The best open source alternative to WhatsApp should be ready for use with Maemo Leste || [[User:Derby]] || https://github.com/signalapp/Signal-Desktop ; https://github.com/AsamK/signal-cli || This is a suggestion to create a Telepathy connection manager for Signal. Although the Signal [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=842943 Desktop] and [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=926807 CLI] can be installed, they are not yet available in Debian. In any case, it would be great to have a Telepathy connection manager for Signal to provide seamless integration with Maemo.
73284c38c432bc65b8cd0d6b3937bb1bdd69455c
User:Ashley
2
188
1250
2021-12-13T19:27:09Z
Ashley
52
Created page with "I do stuff. Mostly with the [[mw:|MediaWiki]] software, though I'm certainly interested in mobile development as well. == Find me elsewhere == * [https://wiki.maemo.org/User:..."
wikitext
text/x-wiki
I do stuff. Mostly with the [[mw:|MediaWiki]] software, though I'm certainly interested in mobile development as well.
== Find me elsewhere ==
* [https://wiki.maemo.org/User:ashley wiki.maemo.org]
* [[mw:User:Jack Phoenix|MediaWiki.org]]
* [https://wiki.postmarketos.org/wiki/User:Ashley PostmarketOS wiki]
* [https://github.com/mary-kate GitHub]
78dd1a395088c251f1ca07f7334048670df07a10
PinePhone
0
93
1253
940
2022-01-03T00:09:23Z
Venji10
46
Fix grammar
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
The first Pinephone (braveheart) phone
== Notes ==
''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] '''
''' What you can do with the 20200223 image:'''
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* (With not yet finished userspace, terminal only) connect to 2G/3G/4G data connections
''' TODO mention/link to:'''
* USB peripheral
* Develop for Maemo Leste and work on applications that interface with modems
* Make it work on latest pine64 kernel
''' Note that: '''
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!)
* Many "games" packages in the Application Manager don't work well yet.
* For some reason the X cursor is still shown (usually it's hidden)
*
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.10 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A ||
|-
| Bluetooth || ? ||
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || N/A || !
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, not enabled by default, community is quite far along, needs to work package their work
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|}
== Installation ==
(Work in Progress)
Currently:
* .img.xz does not match .img.sha
* working out how to install .tar.gz
Unlike most phones, it's pretty simple.
Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity:
$ cat maemo-leste-*-arm64-pinephone-*.img.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
or
$ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz
Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help.
=== SD Card Installation ===
==== Prepare the SD card ====
Format the SD card as ext4 using any of your preferred tools.
====if you downloaded the .img.xz====
extract the image:
$ cp maemo-leste-*-arm64-pinephone-*.img.xz /path/to/sd-card
$ cd /path/to/sd-card
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.img.xz
dd the image to an SD-Card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to.
In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion.
$ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img of=/dev/sdX conv=fsync
Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo.
====if you downloaded the .tar.gz====
This might work?
$ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card
$ cd /path/to/image/
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz
Then insert SD card, replace the back cover, and turn it on.
These steps should work in theory, but at the moment the image is unbootable.
=== eMMC Installation ===
==== Extract the image ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
==== Modify the image to use eMMC paths ====
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img.xz
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install image to eMMC ====
Refer to the [https://wiki.pine64.org/index.php/PinePhone_Software_Release#Installation_to_eMMC_.28Optional.29 Pine64 Wiki].
[[Category:Device]]
2f7e4bdd5e29026df6b98ae2de972e5a09bc4323
1268
1253
2022-02-12T15:39:25Z
Rafael2k
54
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
The first Pinephone (braveheart) phone
== Notes ==
''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] '''
''' What you can do with the 20220206 image:'''
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
''' TODO mention/link to:'''
* USB peripheral support
* Camera UI
* Bluetooth UI
''' Note that: '''
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!)
* Many "games" packages in the Application Manager don't work well yet.
* For some reason the X cursor is still shown (usually it's hidden)
*
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.10 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A ||
|-
| Bluetooth || ? ||
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || N/A || !
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, not enabled by default, community is quite far along, needs to work package their work
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|}
== Installation ==
(Work in Progress)
Currently:
* .img.xz does not match .img.sha
* working out how to install .tar.gz
Unlike most phones, it's pretty simple.
Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity:
$ cat maemo-leste-*-arm64-pinephone-*.img.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
or
$ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz
Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help.
=== SD Card Installation ===
==== Prepare the SD card ====
Format the SD card as ext4 using any of your preferred tools.
====if you downloaded the .img.xz====
extract the image:
$ cp maemo-leste-*-arm64-pinephone-*.img.xz /path/to/sd-card
$ cd /path/to/sd-card
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.img.xz
dd the image to an SD-Card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to.
In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion.
$ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img of=/dev/sdX conv=fsync
Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo.
====if you downloaded the .tar.gz====
This might work?
$ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card
$ cd /path/to/image/
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz
Then insert SD card, replace the back cover, and turn it on.
These steps should work in theory, but at the moment the image is unbootable.
=== eMMC Installation ===
==== Extract the image ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
==== Modify the image to use eMMC paths ====
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img.xz
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install image to eMMC ====
Refer to the [https://wiki.pine64.org/index.php/PinePhone_Software_Release#Installation_to_eMMC_.28Optional.29 Pine64 Wiki].
[[Category:Device]]
b8e7bd9f6cb64b1a661b7cbe8f68494b21ed51ec
1269
1268
2022-02-12T15:40:01Z
Rafael2k
54
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
The first Pinephone (braveheart) phone
== Notes ==
''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] '''
''' What you can do with the 20220206 image:'''
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
''' TODO mention/link to:'''
* USB peripheral support
* Camera UI
* Bluetooth UI
''' Note that: '''
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* We are not shipping the latest Pinephone kernel yet (feel free to work on that, or anything above!)
* Many "games" packages in the Application Manager don't work well yet.
* For some reason the X cursor is still shown (usually it's hidden)
*
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.10 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A ||
|-
| Bluetooth || ? ||
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || N/A || !
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, not enabled by default, community is quite far along, needs to work package their work
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|}
== Installation ==
(Work in Progress)
Currently:
* .img.xz does not match .img.sha
* working out how to install .tar.gz
Unlike most phones, it's pretty simple.
Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity:
$ cat maemo-leste-*-arm64-pinephone-*.img.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
or
$ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz
Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help.
=== SD Card Installation ===
==== Prepare the SD card ====
Format the SD card as ext4 using any of your preferred tools.
====if you downloaded the .img.xz====
extract the image:
$ cp maemo-leste-*-arm64-pinephone-*.img.xz /path/to/sd-card
$ cd /path/to/sd-card
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.img.xz
dd the image to an SD-Card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to.
In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion.
$ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img of=/dev/sdX conv=fsync
Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo.
====if you downloaded the .tar.gz====
This might work?
$ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card
$ cd /path/to/image/
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz
Then insert SD card, replace the back cover, and turn it on.
These steps should work in theory, but at the moment the image is unbootable.
=== eMMC Installation ===
==== Extract the image ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
==== Modify the image to use eMMC paths ====
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img.xz
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install image to eMMC ====
Refer to the [https://wiki.pine64.org/index.php/PinePhone_Software_Release#Installation_to_eMMC_.28Optional.29 Pine64 Wiki].
[[Category:Device]]
626dfcce3ff350cdf3e14d7fa6ae40b70ea184c7
1270
1269
2022-02-12T15:41:12Z
Rafael2k
54
going ahead with updating pinephone support, which improved a lot recently...
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
The first Pinephone (braveheart) phone
== Notes ==
''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] '''
''' What you can do with the 20220206 image:'''
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
''' TODO mention/link to:'''
* USB peripheral support
* Camera UI
* Bluetooth UI
''' Note that: '''
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
*
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.10 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A ||
|-
| Bluetooth || ? ||
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || N/A || !
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default
|-
| Phone calls || WIP || Reported to work, not enabled by default, community is quite far along, needs to work package their work
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|}
== Installation ==
(Work in Progress)
Currently:
* .img.xz does not match .img.sha
* working out how to install .tar.gz
Unlike most phones, it's pretty simple.
Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity:
$ cat maemo-leste-*-arm64-pinephone-*.img.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
or
$ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz
Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help.
=== SD Card Installation ===
==== Prepare the SD card ====
Format the SD card as ext4 using any of your preferred tools.
====if you downloaded the .img.xz====
extract the image:
$ cp maemo-leste-*-arm64-pinephone-*.img.xz /path/to/sd-card
$ cd /path/to/sd-card
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.img.xz
dd the image to an SD-Card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to.
In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion.
$ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img of=/dev/sdX conv=fsync
Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo.
====if you downloaded the .tar.gz====
This might work?
$ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card
$ cd /path/to/image/
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz
Then insert SD card, replace the back cover, and turn it on.
These steps should work in theory, but at the moment the image is unbootable.
=== eMMC Installation ===
==== Extract the image ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
==== Modify the image to use eMMC paths ====
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img.xz
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install image to eMMC ====
Refer to the [https://wiki.pine64.org/index.php/PinePhone_Software_Release#Installation_to_eMMC_.28Optional.29 Pine64 Wiki].
[[Category:Device]]
ed0574729c3d74d963b15c8a1dd147a4d3c960d5
1271
1270
2022-02-12T15:44:00Z
Rafael2k
54
Added telephony support status
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
The first Pinephone (braveheart) phone
== Notes ==
''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] '''
''' What you can do with the 20220206 image:'''
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
''' TODO mention/link to:'''
* USB peripheral support
* Camera UI
* Bluetooth UI
''' Note that: '''
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
*
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A ||
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono; calls and SMS work with sphone. Work still underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone is currently available
|-
| Phone calls || YES || Works with ofono, sphone as UI
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|}
== Installation ==
(Work in Progress)
Currently:
* .img.xz does not match .img.sha
* working out how to install .tar.gz
Unlike most phones, it's pretty simple.
Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity:
$ cat maemo-leste-*-arm64-pinephone-*.img.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
or
$ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz
Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help.
=== SD Card Installation ===
==== Prepare the SD card ====
Format the SD card as ext4 using any of your preferred tools.
====if you downloaded the .img.xz====
extract the image:
$ cp maemo-leste-*-arm64-pinephone-*.img.xz /path/to/sd-card
$ cd /path/to/sd-card
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.img.xz
dd the image to an SD-Card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to.
In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion.
$ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img of=/dev/sdX conv=fsync
Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo.
====if you downloaded the .tar.gz====
This might work?
$ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card
$ cd /path/to/image/
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz
Then insert SD card, replace the back cover, and turn it on.
These steps should work in theory, but at the moment the image is unbootable.
=== eMMC Installation ===
==== Extract the image ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
==== Modify the image to use eMMC paths ====
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img.xz
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install image to eMMC ====
Refer to the [https://wiki.pine64.org/index.php/PinePhone_Software_Release#Installation_to_eMMC_.28Optional.29 Pine64 Wiki].
[[Category:Device]]
3e48f70cf5c408ec45c3ac5ea0ee96d0f1eec5b8
1272
1271
2022-02-12T15:45:49Z
Rafael2k
54
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
The first Pinephone (braveheart) phone
== Notes ==
''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] '''
''' What you can do with the 20220206 image:'''
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
''' TODO mention/link to:'''
* USB peripheral support
* Camera UI
* Bluetooth UI
''' Note that: '''
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
*
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A ||
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone is currently available
|-
| Phone calls || YES || Works with ofono; Calls and SMS work with sphone as UI
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|}
== Installation ==
(Work in Progress)
Currently:
* .img.xz does not match .img.sha
* working out how to install .tar.gz
Unlike most phones, it's pretty simple.
Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity:
$ cat maemo-leste-*-arm64-pinephone-*.img.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
or
$ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz
Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help.
=== SD Card Installation ===
==== Prepare the SD card ====
Format the SD card as ext4 using any of your preferred tools.
====if you downloaded the .img.xz====
extract the image:
$ cp maemo-leste-*-arm64-pinephone-*.img.xz /path/to/sd-card
$ cd /path/to/sd-card
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.img.xz
dd the image to an SD-Card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to.
In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion.
$ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img of=/dev/sdX conv=fsync
Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo.
====if you downloaded the .tar.gz====
This might work?
$ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card
$ cd /path/to/image/
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz
Then insert SD card, replace the back cover, and turn it on.
These steps should work in theory, but at the moment the image is unbootable.
=== eMMC Installation ===
==== Extract the image ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
==== Modify the image to use eMMC paths ====
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img.xz
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install image to eMMC ====
Refer to the [https://wiki.pine64.org/index.php/PinePhone_Software_Release#Installation_to_eMMC_.28Optional.29 Pine64 Wiki].
[[Category:Device]]
f379449c7fa4b63b7cc547dd817d183e24ee7dd6
1273
1272
2022-02-12T15:46:22Z
Rafael2k
54
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
The first Pinephone (braveheart) phone
== Notes ==
''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] '''
''' What you can do with the 20220206 image:'''
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
''' TODO mention/link to:'''
* USB peripheral support
* Camera UI
* Bluetooth UI
''' Note that: '''
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
*
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A ||
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone is currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|}
== Installation ==
(Work in Progress)
Currently:
* .img.xz does not match .img.sha
* working out how to install .tar.gz
Unlike most phones, it's pretty simple.
Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity:
$ cat maemo-leste-*-arm64-pinephone-*.img.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
or
$ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz
Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help.
=== SD Card Installation ===
==== Prepare the SD card ====
Format the SD card as ext4 using any of your preferred tools.
====if you downloaded the .img.xz====
extract the image:
$ cp maemo-leste-*-arm64-pinephone-*.img.xz /path/to/sd-card
$ cd /path/to/sd-card
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.img.xz
dd the image to an SD-Card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to.
In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion.
$ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img of=/dev/sdX conv=fsync
Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo.
====if you downloaded the .tar.gz====
This might work?
$ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card
$ cd /path/to/image/
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz
Then insert SD card, replace the back cover, and turn it on.
These steps should work in theory, but at the moment the image is unbootable.
=== eMMC Installation ===
==== Extract the image ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
==== Modify the image to use eMMC paths ====
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img.xz
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install image to eMMC ====
Refer to the [https://wiki.pine64.org/index.php/PinePhone_Software_Release#Installation_to_eMMC_.28Optional.29 Pine64 Wiki].
[[Category:Device]]
b32b93323737ba1045a00bc8996f57e075f4984f
Motorola Droid 4
0
50
1254
1245
2022-01-05T18:19:06Z
Exomnium
53
Added instructions regarding how to get the OK key to function correctly
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati XT894
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
|category=Supported
|sw_kernel=5.11.0
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Yes
|sw_usb_host=Yes
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=Yes
|sw_tv=
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=Yes
|sw_4g=No
|sw_bluetooth=Yes, [[#Bluetooth|see notes]]
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=120mW
|sw_standbytime=
}}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
=== Updating Android ===
This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
=== Setting up kexecboot ===
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
=== Install Maemo Leste to the sdcard ===
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab the latest image from https://phoenix.maemo.org/view/Images/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
The keyboard layout is extended to provide more standard keys.
[[File:Maemo-leste-droid4-kbd-2021-07.png|center|620px|thumb|maemo-leste droid4 keyboard]]
Key mapping can be tested with the 'xev' program.
It may be necessary to run the follow commands as root in order to get the OK key to function correctly (see [https://github.com/maemo-leste/bugtracker/issues/510#issuecomment-815618591 here]):
udevadm hwdb --update
udevadm trigger
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Bluetooth ==
Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
== Stuff to try ==
==== Flashing the boot logo ====
More info: https://github.com/xsetiadi/droid4-kexecboot/blob/master/LOGO
<pre>
15:04 < tmlind> Wizzup: i think the logo on droid4 can be flashed with fastboot flash logo logo.bin or something, can also be just written to logo partition from m-l
[snip]
09:24 < xsetiadi> https://github.com/xsetiadi/droid4-kexecboot/blob/master/logo.bin
09:25 < xsetiadi> becarefull, you can bootloop droid4 if you wrong flash partition
09:26 < xsetiadi> like i do last year
09:26 < xsetiadi> instead of flashing using command: fastboot flash logo.bin logo.bin i just flash it with command: fastboot flash logo logo.bin
</pre>
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Wifi ====
The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== Phone Call ====
These can be used to talk to the modem manually... But we really should have ofono and sphone GUI doing that job. [[Status/Phone]] mentions current status. Make sure there is a SIM in the phone.
Run this:
Read modem output:
<pre>
cat /dev/motmdm1 &
</pre>
Online modem:
<pre>
printf "AT+CFUN=1\r" > /dev/motmdm1
</pre>
Connect to network:
<pre>
printf "AT+COPS=1\r" > /dev/motmdm1
</pre>
Print connected network:
</pre>
printf "AT+COPS?\r" > /dev/motmdm1
Turn off signal reporting:
<pre>
# printf "AT+SCRN=0\r" > /dev/motmdm1
</pre>
Dial a number:
<pre>
printf "ATD+1234567890\r" > /dev/motmdm1
</pre>
Hang up:
<pre>
printf "ATH\r" > /dev/motmdm1
</pre>
Answer incoming call:
<pre>
printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired.
==== 3G Internet ====
Using qmicli:
qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
route del default
sudo ifconfig wwan0 up
dhclient wwan0
Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed.
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
==== HDMI ====
Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier.
<pre>
xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off
</pre>
Return to internal touchscreen display.
<pre>
xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off
</pre>
==== Keyboard / Mouse sharing with PC ====
To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4.
<pre>
[https://github.com/debauchee/barrier Barrier software-KVM switch]
</pre>
Developers and testers may wish to disable the googley bits before compiling.
==== BT Audio headset ====
sudo apt install pulseaudio-module-bluetooth blueman bluez
sudo modprobe hci_uart
pactl load-module module-bluetooth-discover
blueman-manager
Pair & trust your device in blueman, connect audiosink. You can close blueman now. The quality seems a bit better in 'offline mode'.
== Using a configured Leste sdcard in a different Droid4 ==
A configured Droid4 Leste installation is unique to the device that it was calibrated on. Particularly the wlan firmware calibration will be incorrect if an existing Leste installation is transferred to a different device.
The wifi calibration script requires a system set to stock settings to calibrate-from. It cannot just be re-run on an already calibrated system.
To recalibrate the wifi firmware on a different Droid4, you must reset the FEM parameters to stock settings on the new device, then recalibrate.
If you can get the device online (usb networking or moving close to the WLAN AP) this can be done with.
apt reinstall firmware-ti-connectivity
If not, you can download the firmware-ti-connectivity_[version]_all.deb on another Leste device
apt download firmware-ti-connectivity
Then copy the .deb to your new device and install that (as root) with
dpkg -i firmware-ti-connectivity_[version]_all.deb
Then (as root) re-calibrate the wifi chip by running
/usr/bin/maserati-calibrate
Then reboot.
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
Cant_have_2_much_leste.jpg
Leste-neverball.jpg
Statsfun.jpg
Leste-glmatrix.png
Droid4-leste-utox2.jpg
Droid4-leste-pcsx.jpg
Droid4-leste-surf_master.jpg
Droid4_Daimonin_Hdmi.jpg
</gallery>
== Old status overview ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Implemented with Pulseaudio and UCM files
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || Yes || Available in /sys, and as input device via iio-uinput
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)
|-
| Gyro || N/A ||
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/
|-
| Idle power consumption || ~120mW || Needs sim inserted
|}
[[Category:Device]]
54de80f6504ad8332320180fd212698eb53fc494
1255
1254
2022-01-07T15:06:21Z
Sicelo
5
/* Stuff to try */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati XT894
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
|category=Supported
|sw_kernel=5.11.0
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Yes
|sw_usb_host=Yes
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=Yes
|sw_tv=
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=Yes
|sw_4g=No
|sw_bluetooth=Yes, [[#Bluetooth|see notes]]
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=120mW
|sw_standbytime=
}}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
=== Updating Android ===
This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
=== Setting up kexecboot ===
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
=== Install Maemo Leste to the sdcard ===
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab the latest image from https://phoenix.maemo.org/view/Images/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
The keyboard layout is extended to provide more standard keys.
[[File:Maemo-leste-droid4-kbd-2021-07.png|center|620px|thumb|maemo-leste droid4 keyboard]]
Key mapping can be tested with the 'xev' program.
It may be necessary to run the follow commands as root in order to get the OK key to function correctly (see [https://github.com/maemo-leste/bugtracker/issues/510#issuecomment-815618591 here]):
udevadm hwdb --update
udevadm trigger
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Bluetooth ==
Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
== Stuff to try ==
==== Using a battery without built-in sensors ====
Modprobe the pmic driver as follows:
<pre>
cpcap-battery ignore_temperature_probe=1
</pre>
==== Flashing the boot logo ====
More info: https://github.com/xsetiadi/droid4-kexecboot/blob/master/LOGO
<pre>
15:04 < tmlind> Wizzup: i think the logo on droid4 can be flashed with fastboot flash logo logo.bin or something, can also be just written to logo partition from m-l
[snip]
09:24 < xsetiadi> https://github.com/xsetiadi/droid4-kexecboot/blob/master/logo.bin
09:25 < xsetiadi> becarefull, you can bootloop droid4 if you wrong flash partition
09:26 < xsetiadi> like i do last year
09:26 < xsetiadi> instead of flashing using command: fastboot flash logo.bin logo.bin i just flash it with command: fastboot flash logo logo.bin
</pre>
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Wifi ====
The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== Phone Call ====
These can be used to talk to the modem manually... But we really should have ofono and sphone GUI doing that job. [[Status/Phone]] mentions current status. Make sure there is a SIM in the phone.
Run this:
Read modem output:
<pre>
cat /dev/motmdm1 &
</pre>
Online modem:
<pre>
printf "AT+CFUN=1\r" > /dev/motmdm1
</pre>
Connect to network:
<pre>
printf "AT+COPS=1\r" > /dev/motmdm1
</pre>
Print connected network:
</pre>
printf "AT+COPS?\r" > /dev/motmdm1
Turn off signal reporting:
<pre>
# printf "AT+SCRN=0\r" > /dev/motmdm1
</pre>
Dial a number:
<pre>
printf "ATD+1234567890\r" > /dev/motmdm1
</pre>
Hang up:
<pre>
printf "ATH\r" > /dev/motmdm1
</pre>
Answer incoming call:
<pre>
printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired.
==== 3G Internet ====
Using qmicli:
qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
route del default
sudo ifconfig wwan0 up
dhclient wwan0
Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed.
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
==== HDMI ====
Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier.
<pre>
xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off
</pre>
Return to internal touchscreen display.
<pre>
xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off
</pre>
==== Keyboard / Mouse sharing with PC ====
To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4.
<pre>
[https://github.com/debauchee/barrier Barrier software-KVM switch]
</pre>
Developers and testers may wish to disable the googley bits before compiling.
==== BT Audio headset ====
sudo apt install pulseaudio-module-bluetooth blueman bluez
sudo modprobe hci_uart
pactl load-module module-bluetooth-discover
blueman-manager
Pair & trust your device in blueman, connect audiosink. You can close blueman now. The quality seems a bit better in 'offline mode'.
== Using a configured Leste sdcard in a different Droid4 ==
A configured Droid4 Leste installation is unique to the device that it was calibrated on. Particularly the wlan firmware calibration will be incorrect if an existing Leste installation is transferred to a different device.
The wifi calibration script requires a system set to stock settings to calibrate-from. It cannot just be re-run on an already calibrated system.
To recalibrate the wifi firmware on a different Droid4, you must reset the FEM parameters to stock settings on the new device, then recalibrate.
If you can get the device online (usb networking or moving close to the WLAN AP) this can be done with.
apt reinstall firmware-ti-connectivity
If not, you can download the firmware-ti-connectivity_[version]_all.deb on another Leste device
apt download firmware-ti-connectivity
Then copy the .deb to your new device and install that (as root) with
dpkg -i firmware-ti-connectivity_[version]_all.deb
Then (as root) re-calibrate the wifi chip by running
/usr/bin/maserati-calibrate
Then reboot.
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
Cant_have_2_much_leste.jpg
Leste-neverball.jpg
Statsfun.jpg
Leste-glmatrix.png
Droid4-leste-utox2.jpg
Droid4-leste-pcsx.jpg
Droid4-leste-surf_master.jpg
Droid4_Daimonin_Hdmi.jpg
</gallery>
== Old status overview ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Implemented with Pulseaudio and UCM files
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || Yes || Available in /sys, and as input device via iio-uinput
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)
|-
| Gyro || N/A ||
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/
|-
| Idle power consumption || ~120mW || Needs sim inserted
|}
[[Category:Device]]
81f9877be48808efbc6c8b6fdfba95268b9d1365
1265
1255
2022-02-07T00:12:02Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati XT894
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
|category=Supported
|sw_kernel=5.15.0
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Yes
|sw_usb_host=Yes
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=Yes
|sw_tv=
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=Yes
|sw_4g=No
|sw_bluetooth=Yes, [[#Bluetooth|see notes]]
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=120mW
|sw_standbytime=
}}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
=== Updating Android ===
This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
=== Setting up kexecboot ===
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
=== Install Maemo Leste to the sdcard ===
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab the latest image from https://phoenix.maemo.org/view/Images/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
The keyboard layout is extended to provide more standard keys.
[[File:Maemo-leste-droid4-kbd-2021-07.png|center|620px|thumb|maemo-leste droid4 keyboard]]
Key mapping can be tested with the 'xev' program.
It may be necessary to run the follow commands as root in order to get the OK key to function correctly (see [https://github.com/maemo-leste/bugtracker/issues/510#issuecomment-815618591 here]):
udevadm hwdb --update
udevadm trigger
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Bluetooth ==
Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
== Stuff to try ==
==== Using a battery without built-in sensors ====
Modprobe the pmic driver as follows:
<pre>
cpcap-battery ignore_temperature_probe=1
</pre>
==== Flashing the boot logo ====
More info: https://github.com/xsetiadi/droid4-kexecboot/blob/master/LOGO
<pre>
15:04 < tmlind> Wizzup: i think the logo on droid4 can be flashed with fastboot flash logo logo.bin or something, can also be just written to logo partition from m-l
[snip]
09:24 < xsetiadi> https://github.com/xsetiadi/droid4-kexecboot/blob/master/logo.bin
09:25 < xsetiadi> becarefull, you can bootloop droid4 if you wrong flash partition
09:26 < xsetiadi> like i do last year
09:26 < xsetiadi> instead of flashing using command: fastboot flash logo.bin logo.bin i just flash it with command: fastboot flash logo logo.bin
</pre>
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== Wifi ====
The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
<pre>
apt-get install ti-utils-wilink6 droid4-wlanconfig
</pre>
Run calibration:
<pre>
sudo maserati-calibrate
</pre>
==== Phone Call ====
These can be used to talk to the modem manually... But we really should have ofono and sphone GUI doing that job. [[Status/Phone]] mentions current status. Make sure there is a SIM in the phone.
Run this:
Read modem output:
<pre>
cat /dev/motmdm1 &
</pre>
Online modem:
<pre>
printf "AT+CFUN=1\r" > /dev/motmdm1
</pre>
Connect to network:
<pre>
printf "AT+COPS=1\r" > /dev/motmdm1
</pre>
Print connected network:
</pre>
printf "AT+COPS?\r" > /dev/motmdm1
Turn off signal reporting:
<pre>
# printf "AT+SCRN=0\r" > /dev/motmdm1
</pre>
Dial a number:
<pre>
printf "ATD+1234567890\r" > /dev/motmdm1
</pre>
Hang up:
<pre>
printf "ATH\r" > /dev/motmdm1
</pre>
Answer incoming call:
<pre>
printf "ATA\r" > /dev/motmdm1
</pre>
Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired.
==== 3G Internet ====
Using qmicli:
qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
route del default
sudo ifconfig wwan0 up
dhclient wwan0
Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed.
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
==== HDMI ====
Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier.
<pre>
xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off
</pre>
Return to internal touchscreen display.
<pre>
xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off
</pre>
==== Keyboard / Mouse sharing with PC ====
To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4.
<pre>
[https://github.com/debauchee/barrier Barrier software-KVM switch]
</pre>
Developers and testers may wish to disable the googley bits before compiling.
==== BT Audio headset ====
sudo apt install pulseaudio-module-bluetooth blueman bluez
sudo modprobe hci_uart
pactl load-module module-bluetooth-discover
blueman-manager
Pair & trust your device in blueman, connect audiosink. You can close blueman now. The quality seems a bit better in 'offline mode'.
== Using a configured Leste sdcard in a different Droid4 ==
A configured Droid4 Leste installation is unique to the device that it was calibrated on. Particularly the wlan firmware calibration will be incorrect if an existing Leste installation is transferred to a different device.
The wifi calibration script requires a system set to stock settings to calibrate-from. It cannot just be re-run on an already calibrated system.
To recalibrate the wifi firmware on a different Droid4, you must reset the FEM parameters to stock settings on the new device, then recalibrate.
If you can get the device online (usb networking or moving close to the WLAN AP) this can be done with.
apt reinstall firmware-ti-connectivity
If not, you can download the firmware-ti-connectivity_[version]_all.deb on another Leste device
apt download firmware-ti-connectivity
Then copy the .deb to your new device and install that (as root) with
dpkg -i firmware-ti-connectivity_[version]_all.deb
Then (as root) re-calibrate the wifi chip by running
/usr/bin/maserati-calibrate
Then reboot.
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
Cant_have_2_much_leste.jpg
Leste-neverball.jpg
Statsfun.jpg
Leste-glmatrix.png
Droid4-leste-utox2.jpg
Droid4-leste-pcsx.jpg
Droid4-leste-surf_master.jpg
Droid4_Daimonin_Hdmi.jpg
</gallery>
== Old status overview ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Implemented with Pulseaudio and UCM files
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || Yes || Available in /sys, and as input device via iio-uinput
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)
|-
| Gyro || N/A ||
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/
|-
| Idle power consumption || ~120mW || Needs sim inserted
|}
[[Category:Device]]
e837e108c075f952763e77eb1296f4c8d182274f
1278
1265
2022-03-12T12:15:41Z
Sicelo
5
Removed manual modem/gps methods, wifi calibration, add torch
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati XT894
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
|category=Supported
|sw_kernel=5.15.0
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Yes
|sw_usb_host=Yes
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=Yes
|sw_tv=
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=Yes
|sw_4g=No
|sw_bluetooth=Yes, [[#Bluetooth|see notes]]
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=120mW
|sw_standbytime=
}}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
=== Updating Android ===
This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
=== Setting up kexecboot ===
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
=== Install Maemo Leste to the sdcard ===
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab the latest image from https://phoenix.maemo.org/view/Images/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
The keyboard layout is extended to provide more standard keys.
[[File:Maemo-leste-droid4-kbd-2021-07.png|center|620px|thumb|maemo-leste droid4 keyboard]]
Key mapping can be tested with the 'xev' program.
It may be necessary to run the follow commands as root in order to get the OK key to function correctly (see [https://github.com/maemo-leste/bugtracker/issues/510#issuecomment-815618591 here]):
udevadm hwdb --update
udevadm trigger
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Bluetooth ==
Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
== Stuff to try ==
==== Using a battery without temperature sensor ====
Modprobe the pmic driver as follows:
<pre>
cpcap-battery ignore_temperature_probe=1
</pre>
==== Flashing the boot logo ====
More info: https://github.com/xsetiadi/droid4-kexecboot/blob/master/LOGO
<pre>
15:04 < tmlind> Wizzup: i think the logo on droid4 can be flashed with fastboot flash logo logo.bin or something, can also be just written to logo partition from m-l
[snip]
09:24 < xsetiadi> https://github.com/xsetiadi/droid4-kexecboot/blob/master/logo.bin
09:25 < xsetiadi> becarefull, you can bootloop droid4 if you wrong flash partition
09:26 < xsetiadi> like i do last year
09:26 < xsetiadi> instead of flashing using command: fastboot flash logo.bin logo.bin i just flash it with command: fastboot flash logo logo.bin
</pre>
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
==== HDMI ====
Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier.
<pre>
xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off
</pre>
Return to internal touchscreen display.
<pre>
xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off
</pre>
==== Keyboard / Mouse sharing with PC ====
To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4.
<pre>
[https://github.com/debauchee/barrier Barrier software-KVM switch]
</pre>
Developers and testers may wish to disable the googley bits before compiling.
==== BT Audio headset ====
sudo apt install pulseaudio-module-bluetooth blueman bluez
sudo modprobe hci_uart
pactl load-module module-bluetooth-discover
blueman-manager
Pair & trust your device in blueman, connect audiosink. You can close blueman now. The quality seems a bit better in 'offline mode'.
==== Torch =====
The Droid 4 has a TI LM3559 flash torch controller. This provides flash functionality when taking pictures, usage as a torch, and provides privacy indication (in this mode, the LED flashes in a fast heartbeat pattern). A driver for it exists in mainline, but it requires some DTS work, since it is tied to a camera device.
If you want to use it in the meantime, direct i2c access can be used as follows (since this is direct access, be careful about each of the commands below):
<source>
##Install the prerequisites
$ sudo apt install i2c-tools
## Turn LED on in torch mode
$ sudo i2cset -y 2 0x53 0x10 0x1a
## Turn LED on in privacy indication mode
$ sudo i2cset -y 2 0x53 0x10 0x19
## Turn LED off (in any mode)
$ sudo i2cset -y 2 0x53 0x10 0x18
</source>
== Using a configured Leste sdcard in a different Droid4 ==
A configured Droid4 Leste installation is unique to the device that it was calibrated on. Particularly the wlan firmware calibration will be incorrect if an existing Leste installation is transferred to a different device.
The wifi calibration script requires a system set to stock settings to calibrate-from. It cannot just be re-run on an already calibrated system.
To recalibrate the wifi firmware on a different Droid4, you must reset the FEM parameters to stock settings on the new device, then recalibrate.
If you can get the device online (usb networking or moving close to the WLAN AP) this can be done with.
apt reinstall firmware-ti-connectivity
If not, you can download the firmware-ti-connectivity_[version]_all.deb on another Leste device
apt download firmware-ti-connectivity
Then copy the .deb to your new device and install that (as root) with
dpkg -i firmware-ti-connectivity_[version]_all.deb
Then (as root) re-calibrate the wifi chip by running
/usr/bin/maserati-calibrate
Then reboot.
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
Cant_have_2_much_leste.jpg
Leste-neverball.jpg
Statsfun.jpg
Leste-glmatrix.png
Droid4-leste-utox2.jpg
Droid4-leste-pcsx.jpg
Droid4-leste-surf_master.jpg
Droid4_Daimonin_Hdmi.jpg
</gallery>
== Old status overview ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Implemented with Pulseaudio and UCM files
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || Yes || Available in /sys, and as input device via iio-uinput
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)
|-
| Gyro || N/A ||
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/
|-
| Idle power consumption || ~120mW || Needs sim inserted
|}
[[Category:Device]]
31ce4dd795deeb0d3c5ad38771716b5b6d3ae539
1279
1278
2022-03-12T12:16:43Z
Sicelo
5
/* Torch = */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati XT894
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
|category=Supported
|sw_kernel=5.15.0
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Yes
|sw_usb_host=Yes
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=Yes
|sw_tv=
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=Yes
|sw_4g=No
|sw_bluetooth=Yes, [[#Bluetooth|see notes]]
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=120mW
|sw_standbytime=
}}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
=== Updating Android ===
This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
=== Setting up kexecboot ===
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
=== Install Maemo Leste to the sdcard ===
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab the latest image from https://phoenix.maemo.org/view/Images/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
The keyboard layout is extended to provide more standard keys.
[[File:Maemo-leste-droid4-kbd-2021-07.png|center|620px|thumb|maemo-leste droid4 keyboard]]
Key mapping can be tested with the 'xev' program.
It may be necessary to run the follow commands as root in order to get the OK key to function correctly (see [https://github.com/maemo-leste/bugtracker/issues/510#issuecomment-815618591 here]):
udevadm hwdb --update
udevadm trigger
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Bluetooth ==
Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
== Stuff to try ==
==== Using a battery without temperature sensor ====
Modprobe the pmic driver as follows:
<pre>
cpcap-battery ignore_temperature_probe=1
</pre>
==== Flashing the boot logo ====
More info: https://github.com/xsetiadi/droid4-kexecboot/blob/master/LOGO
<pre>
15:04 < tmlind> Wizzup: i think the logo on droid4 can be flashed with fastboot flash logo logo.bin or something, can also be just written to logo partition from m-l
[snip]
09:24 < xsetiadi> https://github.com/xsetiadi/droid4-kexecboot/blob/master/logo.bin
09:25 < xsetiadi> becarefull, you can bootloop droid4 if you wrong flash partition
09:26 < xsetiadi> like i do last year
09:26 < xsetiadi> instead of flashing using command: fastboot flash logo.bin logo.bin i just flash it with command: fastboot flash logo logo.bin
</pre>
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
==== HDMI ====
Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier.
<pre>
xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off
</pre>
Return to internal touchscreen display.
<pre>
xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off
</pre>
==== Keyboard / Mouse sharing with PC ====
To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4.
<pre>
[https://github.com/debauchee/barrier Barrier software-KVM switch]
</pre>
Developers and testers may wish to disable the googley bits before compiling.
==== BT Audio headset ====
sudo apt install pulseaudio-module-bluetooth blueman bluez
sudo modprobe hci_uart
pactl load-module module-bluetooth-discover
blueman-manager
Pair & trust your device in blueman, connect audiosink. You can close blueman now. The quality seems a bit better in 'offline mode'.
==== Torch ====
The Droid 4 has a TI LM3559 flash torch controller. This provides flash functionality when taking pictures, usage as a torch, and provides privacy indication (in this mode, the LED flashes in a fast heartbeat pattern). A driver for it exists in mainline, but it requires some DTS work, since it is tied to a camera device.
If you want to use it in the meantime, direct i2c access can be used as follows (since this is direct access, be careful about each of the commands below):
<source>
##Install the prerequisites
$ sudo apt install i2c-tools
## Turn LED on in torch mode
$ sudo i2cset -y 2 0x53 0x10 0x1a
## Turn LED on in privacy indication mode
$ sudo i2cset -y 2 0x53 0x10 0x19
## Turn LED off (in any mode)
$ sudo i2cset -y 2 0x53 0x10 0x18
</source>
== Using a configured Leste sdcard in a different Droid4 ==
A configured Droid4 Leste installation is unique to the device that it was calibrated on. Particularly the wlan firmware calibration will be incorrect if an existing Leste installation is transferred to a different device.
The wifi calibration script requires a system set to stock settings to calibrate-from. It cannot just be re-run on an already calibrated system.
To recalibrate the wifi firmware on a different Droid4, you must reset the FEM parameters to stock settings on the new device, then recalibrate.
If you can get the device online (usb networking or moving close to the WLAN AP) this can be done with.
apt reinstall firmware-ti-connectivity
If not, you can download the firmware-ti-connectivity_[version]_all.deb on another Leste device
apt download firmware-ti-connectivity
Then copy the .deb to your new device and install that (as root) with
dpkg -i firmware-ti-connectivity_[version]_all.deb
Then (as root) re-calibrate the wifi chip by running
/usr/bin/maserati-calibrate
Then reboot.
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
Cant_have_2_much_leste.jpg
Leste-neverball.jpg
Statsfun.jpg
Leste-glmatrix.png
Droid4-leste-utox2.jpg
Droid4-leste-pcsx.jpg
Droid4-leste-surf_master.jpg
Droid4_Daimonin_Hdmi.jpg
</gallery>
== Old status overview ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Implemented with Pulseaudio and UCM files
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || Yes || Available in /sys, and as input device via iio-uinput
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)
|-
| Gyro || N/A ||
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/
|-
| Idle power consumption || ~120mW || Needs sim inserted
|}
[[Category:Device]]
5a20cc05af63c2016973e6bd5adb616fbd2933c4
1286
1279
2022-05-04T21:20:20Z
BuZz
32
/* Torch */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati XT894
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
|category=Supported
|sw_kernel=5.15.0
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Yes
|sw_usb_host=Yes
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=Yes
|sw_tv=
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=Yes
|sw_4g=No
|sw_bluetooth=Yes, [[#Bluetooth|see notes]]
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=120mW
|sw_standbytime=
}}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
=== Updating Android ===
This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
=== Setting up kexecboot ===
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
=== Install Maemo Leste to the sdcard ===
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab the latest image from https://phoenix.maemo.org/view/Images/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
The keyboard layout is extended to provide more standard keys.
[[File:Maemo-leste-droid4-kbd-2021-07.png|center|620px|thumb|maemo-leste droid4 keyboard]]
Key mapping can be tested with the 'xev' program.
It may be necessary to run the follow commands as root in order to get the OK key to function correctly (see [https://github.com/maemo-leste/bugtracker/issues/510#issuecomment-815618591 here]):
udevadm hwdb --update
udevadm trigger
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Bluetooth ==
Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
== Stuff to try ==
==== Using a battery without temperature sensor ====
Modprobe the pmic driver as follows:
<pre>
cpcap-battery ignore_temperature_probe=1
</pre>
==== Flashing the boot logo ====
More info: https://github.com/xsetiadi/droid4-kexecboot/blob/master/LOGO
<pre>
15:04 < tmlind> Wizzup: i think the logo on droid4 can be flashed with fastboot flash logo logo.bin or something, can also be just written to logo partition from m-l
[snip]
09:24 < xsetiadi> https://github.com/xsetiadi/droid4-kexecboot/blob/master/logo.bin
09:25 < xsetiadi> becarefull, you can bootloop droid4 if you wrong flash partition
09:26 < xsetiadi> like i do last year
09:26 < xsetiadi> instead of flashing using command: fastboot flash logo.bin logo.bin i just flash it with command: fastboot flash logo logo.bin
</pre>
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
==== HDMI ====
Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier.
<pre>
xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off
</pre>
Return to internal touchscreen display.
<pre>
xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off
</pre>
==== Keyboard / Mouse sharing with PC ====
To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4.
<pre>
[https://github.com/debauchee/barrier Barrier software-KVM switch]
</pre>
Developers and testers may wish to disable the googley bits before compiling.
==== BT Audio headset ====
sudo apt install pulseaudio-module-bluetooth blueman bluez
sudo modprobe hci_uart
pactl load-module module-bluetooth-discover
blueman-manager
Pair & trust your device in blueman, connect audiosink. You can close blueman now. The quality seems a bit better in 'offline mode'.
==== Torch ====
The Droid 4 has a TI LM3559 flash torch controller. This provides flash functionality when taking pictures, usage as a torch, and provides privacy indication (in this mode, the LED flashes in a fast heartbeat pattern). A driver for it exists in mainline, but it requires some DTS work, since it is tied to a camera device.
If you want to use it in the meantime, direct i2c access can be used as follows (since this is direct access, be careful about each of the commands below):
<source>
##Install the prerequisites
$ sudo apt install i2c-tools
## Turn LED on in torch mode
$ sudo i2cset -y 2 0x53 0x10 0x1a
## Turn LED on in privacy indication mode
$ sudo i2cset -y 2 0x53 0x10 0x19
## Turn LED off (in any mode)
$ sudo i2cset -y 2 0x53 0x10 0x18
## Use LED for doing a hella bright flash for some time once and then turn off
$ sudo i2cset -y 2 0x53 0x10 0x1b
</source>
== Using a configured Leste sdcard in a different Droid4 ==
A configured Droid4 Leste installation is unique to the device that it was calibrated on. Particularly the wlan firmware calibration will be incorrect if an existing Leste installation is transferred to a different device.
The wifi calibration script requires a system set to stock settings to calibrate-from. It cannot just be re-run on an already calibrated system.
To recalibrate the wifi firmware on a different Droid4, you must reset the FEM parameters to stock settings on the new device, then recalibrate.
If you can get the device online (usb networking or moving close to the WLAN AP) this can be done with.
apt reinstall firmware-ti-connectivity
If not, you can download the firmware-ti-connectivity_[version]_all.deb on another Leste device
apt download firmware-ti-connectivity
Then copy the .deb to your new device and install that (as root) with
dpkg -i firmware-ti-connectivity_[version]_all.deb
Then (as root) re-calibrate the wifi chip by running
/usr/bin/maserati-calibrate
Then reboot.
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
Cant_have_2_much_leste.jpg
Leste-neverball.jpg
Statsfun.jpg
Leste-glmatrix.png
Droid4-leste-utox2.jpg
Droid4-leste-pcsx.jpg
Droid4-leste-surf_master.jpg
Droid4_Daimonin_Hdmi.jpg
</gallery>
== Old status overview ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Implemented with Pulseaudio and UCM files
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || Yes || Available in /sys, and as input device via iio-uinput
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)
|-
| Gyro || N/A ||
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/
|-
| Idle power consumption || ~120mW || Needs sim inserted
|}
[[Category:Device]]
d01ceb77a35aec4f22a5ad9f77a762539b4e8ad3
User:Wizzup/Telepathy
2
189
1256
2022-01-11T11:24:26Z
Wizzup
4
Created page with "= Telepathy notes = This page contains my (personal) notes on how Telepathy works, in general, and how it works on Fremantle, and how we plan to make it all work."
wikitext
text/x-wiki
= Telepathy notes =
This page contains my (personal) notes on how Telepathy works, in general, and how it works on Fremantle, and how we plan to make it all work.
ebd80beb82cf234e10fda154514c8055d2180cc9
1257
1256
2022-01-11T11:49:03Z
Wizzup
4
/* Telepathy notes */
wikitext
text/x-wiki
= Telepathy notes =
This page contains my (personal) notes on how Telepathy (and to some degree rtcom) works, in general, and how it works on Fremantle, and how we plan to make it all work.
== Accounts ==
Accounts are stored in `/home/user/.rtcom-accounts/accounts.cfg` on Fremantle, and `HOME/.local/share/telepathy/mission-control/accounts.cfg` normally in Telepathy.
It looks like Telepathy mission-control (MC) is the one that actually manages the accounts, and `mc-tool` can be used to manage the accounts. This means that likely there are no other tools that read "accounts.cfg" on Fremantle, and everything that lists/adds/removes accounts goes through Telepathy MC.
=== telepathy-ring accounts ===
It is not clear to me what adds the initial "sms" account, but there must be something that configures this account initially.
== SMS ==
telepathy-ring is used to communicate with the modem through ofono. This account has the following options set on my device:
<pre>
[ring/tel/ring]
manager=ring
protocol=tel
param-account=ring
Enabled=true
HasBeenOnline=true
ConnectAutomatically=true
AutomaticPresenceType=2
AutomaticPresenceStatus=available
Profile=tel
NormalizedName=<SelfHandle>
</pre>
<code>ConnectAutomatically</code> seems to suggest there is no specific program that starts telepathy-ring (just MC itself), as long as the account is requested (I guess?) by something.
== Fremantle (rtcom) ==
b46392bac24486d890361eeb5c34247883a5d530
1258
1257
2022-01-11T11:49:31Z
Wizzup
4
/* Telepathy notes */
wikitext
text/x-wiki
= Telepathy notes =
This page contains my (personal) notes on how Telepathy (and to some degree rtcom) works, in general, and how it works on Fremantle, and how we plan to make it all work.
== Accounts ==
Accounts are stored in `/home/user/.rtcom-accounts/accounts.cfg` on Fremantle, and `HOME/.local/share/telepathy/mission-control/accounts.cfg` normally in Telepathy.
It looks like Telepathy mission-control (MC) is the one that actually manages the accounts, and `mc-tool` can be used to manage the accounts. This means that likely there are no other tools that read "accounts.cfg" on Fremantle, and everything that lists/adds/removes accounts goes through Telepathy MC.
=== telepathy-ring accounts ===
It is not clear to me what adds the initial "sms" account, but there must be something that configures this account initially.
== SMS ==
telepathy-ring is used to communicate with the modem through ofono. This account has the following options set on my device:
<pre>
[ring/tel/ring]
manager=ring
protocol=tel
param-account=ring
Enabled=true
HasBeenOnline=true
ConnectAutomatically=true
AutomaticPresenceType=2
AutomaticPresenceStatus=available
Profile=tel
NormalizedName=<SelfHandle>
</pre>
<code>ConnectAutomatically</code> seems to suggest there is no specific program that starts telepathy-ring (just MC itself), as long as the account is requested (I guess?) by something.
== Fremantle (rtcom) ==
== Further reading ==
* https://www.aosabook.org/en/telepathy.html
1738da7593a9e7647a384c8c4a42a20431a816ef
1259
1258
2022-01-11T11:50:07Z
Wizzup
4
/* Telepathy notes */
wikitext
text/x-wiki
= Telepathy notes =
This page contains my (personal) notes on how Telepathy (and to some degree rtcom) works, in general, and how it works on Fremantle, and how we plan to make it all work.
== Accounts ==
Accounts are stored in <code>/home/user/.rtcom-accounts/accounts.cfg</code> on Fremantle, and <code>HOME/.local/share/telepathy/mission-control/accounts.cfg</code> normally in Telepathy.
It looks like Telepathy mission-control (MC) is the one that actually manages the accounts, and <code>mc-tool</code> can be used to manage the accounts. This means that likely there are no other tools that read <code>accounts.cfg</code> on Fremantle, and everything that lists/adds/removes accounts goes through Telepathy MC.
=== telepathy-ring accounts ===
It is not clear to me what adds the initial "sms" account, but there must be something that configures this account initially.
== SMS ==
telepathy-ring is used to communicate with the modem through ofono. This account has the following options set on my device:
<pre>
[ring/tel/ring]
manager=ring
protocol=tel
param-account=ring
Enabled=true
HasBeenOnline=true
ConnectAutomatically=true
AutomaticPresenceType=2
AutomaticPresenceStatus=available
Profile=tel
NormalizedName=<SelfHandle>
</pre>
<code>ConnectAutomatically</code> seems to suggest there is no specific program that starts telepathy-ring (just MC itself), as long as the account is requested (I guess?) by something.
== Fremantle (rtcom) ==
== Further reading ==
* https://www.aosabook.org/en/telepathy.html
e7b916d91cba815d4ea5628170b484449e3263c0
1260
1259
2022-01-11T11:56:42Z
Wizzup
4
/* Telepathy notes */
wikitext
text/x-wiki
This page contains my (personal) notes on how Telepathy (and to some degree rtcom) works, in general, and how it works on Fremantle, and how we plan to make it all work.
= Accounts =
Accounts are stored in <code>/home/user/.rtcom-accounts/accounts.cfg</code> on Fremantle, and <code>HOME/.local/share/telepathy/mission-control/accounts.cfg</code> normally in Telepathy.
It looks like Telepathy mission-control (MC) is the one that actually manages the accounts, and <code>mc-tool</code> can be used to manage the accounts. This means that likely there are no other tools that read <code>accounts.cfg</code> on Fremantle, and everything that lists/adds/removes accounts goes through Telepathy MC.
== telepathy-ring accounts ==
It is not clear to me what adds the initial "sms" account, but there must be something that configures this account initially.
= SMS =
telepathy-ring is used to communicate with the modem through ofono. This account has the following options set on my device:
<pre>
[ring/tel/ring]
manager=ring
protocol=tel
param-account=ring
Enabled=true
HasBeenOnline=true
ConnectAutomatically=true
AutomaticPresenceType=2
AutomaticPresenceStatus=available
Profile=tel
NormalizedName=<SelfHandle>
</pre>
<code>ConnectAutomatically</code> seems to suggest there is no specific program that starts telepathy-ring (just MC itself), as long as the account is requested (I guess?) by something.
= Fremantle (rtcom) =
= Further reading =
* https://www.aosabook.org/en/telepathy.html
f8c9702d9084e3ac6c2a334d93a839209ad78256
1261
1260
2022-01-11T12:13:19Z
Wizzup
4
wikitext
text/x-wiki
This page contains my (personal) notes on how Telepathy (and to some degree rtcom) works, in general, and how it works on Fremantle, and how we plan to make it all work.
= Accounts =
Accounts are stored in <code>/home/user/.rtcom-accounts/accounts.cfg</code> on Fremantle, and <code>HOME/.local/share/telepathy/mission-control/accounts.cfg</code> normally in Telepathy.
It looks like Telepathy mission-control (MC) is the one that actually manages the accounts, and <code>mc-tool</code> can be used to manage the accounts. This means that likely there are no other tools that read <code>accounts.cfg</code> on Fremantle, and everything that lists/adds/removes accounts goes through Telepathy MC.
== telepathy-ring accounts ==
It is not clear to me what adds the initial "sms" account, but there must be something that configures this account initially.
= Logging =
Fremantle logs using the <code>rtcom-eventlogger</code> package, to a SQLite3 database stored at <code>/home/user/.rtcom-eventlogger/el-v1.db</code> - all communication related events end up here.
The actual logging to the database is done (as far as I understand) by several different processes: <code>rtcom-call-ui</code> and <code>rtcom-messaging-ui</code>. These both interface with telepathy and log to the database as appropriate. (This is visible by looking at <code>/proc/pid-of-program/fd</code> on Fremantle - it will show that both programs have a fd open to the database)
Telepathy does come with a program called "Telepathy Logger" which can log to various database formats (and I guess just log all messages), and it also provides a way to read (not just write) log events. I am not sure if this is useful for us, but we could take a look later. For now, I believe our replacement programs for the call and messaging UI will have to log on their own.
= SMS =
telepathy-ring is used to communicate with the modem through ofono. This account has the following options set on my device:
<pre>
[ring/tel/ring]
manager=ring
protocol=tel
param-account=ring
Enabled=true
HasBeenOnline=true
ConnectAutomatically=true
AutomaticPresenceType=2
AutomaticPresenceStatus=available
Profile=tel
NormalizedName=<SelfHandle>
</pre>
<code>ConnectAutomatically</code> seems to suggest there is no specific program that starts telepathy-ring (just MC itself), as long as the account is requested (I guess?) by something.
= Presence and online accounts =
<todo>
= Fremantle (rtcom) =
= Further reading =
* Nice resource on telepathy architecture: https://www.aosabook.org/en/telepathy.html
* rtcom-eventlogger API docs: http://maemo.org/api_refs/5.0/5.0-final/eventlogger/
b58ff5168f321a3f49cc429e019f2261b8beb58f
1262
1261
2022-01-13T17:09:45Z
Wizzup
4
wikitext
text/x-wiki
This page contains my (personal) notes on how Telepathy (and to some degree rtcom) works, in general, and how it works on Fremantle, and how we plan to make it all work.
= Accounts =
Accounts are stored in <code>/home/user/.rtcom-accounts/accounts.cfg</code> on Fremantle, and <code>HOME/.local/share/telepathy/mission-control/accounts.cfg</code> normally in Telepathy.
It looks like Telepathy mission-control (MC) is the one that actually manages the accounts, and <code>mc-tool</code> can be used to manage the accounts. This means that likely there are no other tools that read <code>accounts.cfg</code> on Fremantle, and everything that lists/adds/removes accounts goes through Telepathy MC.
== telepathy-ring accounts ==
It is not clear to me what adds the initial "sms" account, but there must be something that configures this account initially.
= Logging =
Fremantle logs using the <code>rtcom-eventlogger</code> package, to a SQLite3 database stored at <code>/home/user/.rtcom-eventlogger/el-v1.db</code> - all communication related events end up here.
The actual logging to the database is done (as far as I understand) by several different processes: <code>rtcom-call-ui</code> and <code>rtcom-messaging-ui</code>. These both interface with telepathy and log to the database as appropriate. (This is visible by looking at <code>/proc/pid-of-program/fd</code> on Fremantle - it will show that both programs have a fd open to the database)
Telepathy does come with a program called "Telepathy Logger" which can log to various database formats (and I guess just log all messages), and it also provides a way to read (not just write) log events. I am not sure if this is useful for us, but we could take a look later. For now, I believe our replacement programs for the call and messaging UI will have to log on their own.
= SMS =
telepathy-ring is used to communicate with the modem through ofono. This account has the following options set on my device:
<pre>
[ring/tel/ring]
manager=ring
protocol=tel
param-account=ring
Enabled=true
HasBeenOnline=true
ConnectAutomatically=true
AutomaticPresenceType=2
AutomaticPresenceStatus=available
Profile=tel
NormalizedName=<SelfHandle>
</pre>
<code>ConnectAutomatically</code> seems to suggest there is no specific program that starts telepathy-ring (just MC itself), as long as the account is requested (I guess?) by something.
= Presence and online accounts =
<todo>
= Fremantle (rtcom) =
= Plan =
== Telepathy basics for SMS ==
I think the first step is to make basic Telepathy things work in conversations, this entails manually setting up a sms account using mc-tool and then trying to use it from telepathy-qt: for sending and receiving messages. This probably entails:
* Setting up an account manager, finding the ring account
* Creating a connection from the ring account and making sure it is "ready" / "online"
* Setting up signals for receving messages, and adding a method to send a message
* Creating some code class for the above, so that it can be integrated in Conversations
* Conversations to always run (?)
And then look at integrating this in conversations.
== Basic logging ==
This next step will involve logging sent and received SMS messages to rtcom-eventlogger and further osso-abook integration.
We should be able to figure out what contact is who in osso-abook and make sure we log that properly as well.
This probably entails:
* Integrating rtcom-eventlogger in Qt/C++
* Looking at (more) name resolving with osso-abook (might be in rtcom-eventlogger library already)
== Extend to IRC, XMPP ==
This step will require some global notion of if the device is "online" mode (like in Maemo Fremantle).
We can set up IRC and XMPP accounts and try use them for messaging as well, and also log to rtcom-eventlogger.
We won't worry here yet with showing which of the contacts are 'online'.
* telepathy-idle
* telepathy-gabble
== To plan ==
* If phone is in offline mode, we cannot send SMSes
* If phone is in non-online mode (for irc, xmpp, etc), then we can't send messages for those protocols
= Further reading =
* Nice resource on telepathy architecture: https://www.aosabook.org/en/telepathy.html
* rtcom-eventlogger API docs: http://maemo.org/api_refs/5.0/5.0-final/eventlogger/
1063a92e42ca0c581677ee6233739173f09e1f33
1263
1262
2022-01-19T00:16:13Z
Wizzup
4
wikitext
text/x-wiki
This page contains my (personal) notes on how Telepathy (and to some degree rtcom) works, in general, and how it works on Fremantle, and how we plan to make it all work.
= Accounts =
Accounts are stored in <code>/home/user/.rtcom-accounts/accounts.cfg</code> on Fremantle, and <code>HOME/.local/share/telepathy/mission-control/accounts.cfg</code> normally in Telepathy.
It looks like Telepathy mission-control (MC) is the one that actually manages the accounts, and <code>mc-tool</code> can be used to manage the accounts. This means that likely there are no other tools that read <code>accounts.cfg</code> on Fremantle, and everything that lists/adds/removes accounts goes through Telepathy MC.
== telepathy-ring accounts ==
It is not clear to me what adds the initial "sms" account, but there must be something that configures this account initially.
= Logging =
Fremantle logs using the <code>rtcom-eventlogger</code> package, to a SQLite3 database stored at <code>/home/user/.rtcom-eventlogger/el-v1.db</code> - all communication related events end up here.
The actual logging to the database is done (as far as I understand) by several different processes: <code>rtcom-call-ui</code> and <code>rtcom-messaging-ui</code>. These both interface with telepathy and log to the database as appropriate. (This is visible by looking at <code>/proc/pid-of-program/fd</code> on Fremantle - it will show that both programs have a fd open to the database)
Telepathy does come with a program called "Telepathy Logger" which can log to various database formats (and I guess just log all messages), and it also provides a way to read (not just write) log events. I am not sure if this is useful for us, but we could take a look later. For now, I believe our replacement programs for the call and messaging UI will have to log on their own.
= SMS =
telepathy-ring is used to communicate with the modem through ofono. This account has the following options set on my device:
<pre>
[ring/tel/ring]
manager=ring
protocol=tel
param-account=ring
Enabled=true
HasBeenOnline=true
ConnectAutomatically=true
AutomaticPresenceType=2
AutomaticPresenceStatus=available
Profile=tel
NormalizedName=<SelfHandle>
</pre>
<code>ConnectAutomatically</code> seems to suggest there is no specific program that starts telepathy-ring (just MC itself), as long as the account is requested (I guess?) by something.
= Presence and online accounts =
<todo>
= Fremantle (rtcom) =
TODO:
* discuss various other rtcom components/packages (rtcom notification plugin, rtcom presence plugin)
* rtcom accounts ui, how that works
* discuss how presence works
= Telepathy-Qt =
Looks like the right way to use telepathy-qt API is to already have accounts created in Telepathy (use mc-tool or some UI).
Then the AccountManager class can be used to get access to the Account classes (or you can make an account class directly from a D-Bus path). Setting the account presence and it's connection state, and then calling reconnect on the accounts will bring them online.
At this point, using a SimpleTextObserver can be used to monitoring incoming and outgoing messages.
TODO:
* Expand on many more classes, which ones are useful and how to use them
= Plan =
== Telepathy basics for SMS ==
I think the first step is to make basic Telepathy things work in conversations, this entails manually setting up a sms account using mc-tool and then trying to use it from telepathy-qt: for sending and receiving messages. This probably entails:
* Setting up an account manager, finding the ring account
* Creating a connection from the ring account and making sure it is "ready" / "online"
* Setting up signals for receving messages, and adding a method to send a message
* Creating some code class for the above, so that it can be integrated in Conversations
* Conversations to always run (?)
And then look at integrating this in conversations.
== Basic logging ==
This next step will involve logging sent and received SMS messages to rtcom-eventlogger and further osso-abook integration.
We should be able to figure out what contact is who in osso-abook and make sure we log that properly as well.
This probably entails:
* Integrating rtcom-eventlogger in Qt/C++
* Looking at (more) name resolving with osso-abook (might be in rtcom-eventlogger library already)
== Extend to IRC, XMPP ==
This step will require some global notion of if the device is "online" mode (like in Maemo Fremantle).
We can set up IRC and XMPP accounts and try use them for messaging as well, and also log to rtcom-eventlogger.
We won't worry here yet with showing which of the contacts are 'online'.
* telepathy-idle
* telepathy-gabble
== To plan ==
* If phone is in offline mode, we cannot send SMSes
* If phone is in non-online mode (for irc, xmpp, etc), then we can't send messages for those protocols
= Further reading =
* Nice resource on telepathy architecture: https://www.aosabook.org/en/telepathy.html
* rtcom-eventlogger API docs: http://maemo.org/api_refs/5.0/5.0-final/eventlogger/
9dcb1c3e179253d4925a749ae263f7ce542390d1
1264
1263
2022-02-06T11:51:10Z
Wizzup
4
wikitext
text/x-wiki
This page contains my (personal) notes on how Telepathy (and to some degree rtcom) works, in general, and how it works on Fremantle, and how we plan to make it all work.
= Accounts =
Accounts are stored in <code>/home/user/.rtcom-accounts/accounts.cfg</code> on Fremantle, and <code>HOME/.local/share/telepathy/mission-control/accounts.cfg</code> normally in Telepathy.
It looks like Telepathy mission-control (MC) is the one that actually manages the accounts, and <code>mc-tool</code> can be used to manage the accounts. This means that likely there are no other tools that read <code>accounts.cfg</code> on Fremantle, and everything that lists/adds/removes accounts goes through Telepathy MC.
== telepathy-ring accounts ==
It is not clear to me what adds the initial "sms" account, but there must be something that configures this account initially.
= Logging =
Fremantle logs using the <code>rtcom-eventlogger</code> package, to a SQLite3 database stored at <code>/home/user/.rtcom-eventlogger/el-v1.db</code> - all communication related events end up here.
The actual logging to the database is done (as far as I understand) by several different processes: <code>rtcom-call-ui</code> and <code>rtcom-messaging-ui</code>. These both interface with telepathy and log to the database as appropriate. (This is visible by looking at <code>/proc/pid-of-program/fd</code> on Fremantle - it will show that both programs have a fd open to the database)
Telepathy does come with a program called "Telepathy Logger" which can log to various database formats (and I guess just log all messages), and it also provides a way to read (not just write) log events. I am not sure if this is useful for us, but we could take a look later. For now, I believe our replacement programs for the call and messaging UI will have to log on their own.
= SMS =
telepathy-ring is used to communicate with the modem through ofono. This account has the following options set on my device:
<pre>
[ring/tel/ring]
manager=ring
protocol=tel
param-account=ring
Enabled=true
HasBeenOnline=true
ConnectAutomatically=true
AutomaticPresenceType=2
AutomaticPresenceStatus=available
Profile=tel
NormalizedName=<SelfHandle>
</pre>
<code>ConnectAutomatically</code> seems to suggest there is no specific program that starts telepathy-ring (just MC itself), as long as the account is requested (I guess?) by something.
= Presence and online accounts =
<todo>
= Fremantle (rtcom) =
TODO:
* discuss various other rtcom components/packages (rtcom notification plugin, rtcom presence plugin)
* rtcom accounts ui, how that works
* discuss how presence works
= Telepathy-Qt =
Looks like the right way to use telepathy-qt API is to already have accounts created in Telepathy (use mc-tool or some UI).
Then the AccountManager class can be used to get access to the Account classes (or you can make an account class directly from a D-Bus path). Setting the account presence and it's connection state, and then calling reconnect on the accounts will bring them online.
At this point, using a SimpleTextObserver can be used to monitoring incoming and outgoing messages.
TODO:
* Expand on many more classes, which ones are useful and how to use them
= Plan =
== Telepathy basics for SMS ==
I think the first step is to make basic Telepathy things work in conversations, this entails manually setting up a sms account using mc-tool and then trying to use it from telepathy-qt: for sending and receiving messages. This probably entails:
* Setting up an account manager, finding the ring account
* Creating a connection from the ring account and making sure it is "ready" / "online"
* Setting up signals for receving messages, and adding a method to send a message
* Creating some code class for the above, so that it can be integrated in Conversations
* Conversations to always run (?)
And then look at integrating this in conversations.
== Basic logging ==
This next step will involve logging sent and received SMS messages to rtcom-eventlogger and further osso-abook integration.
We should be able to figure out what contact is who in osso-abook and make sure we log that properly as well.
This probably entails:
* Integrating rtcom-eventlogger in Qt/C++
* Looking at (more) name resolving with osso-abook (might be in rtcom-eventlogger library already)
== Extend to IRC, XMPP ==
This step will require some global notion of if the device is "online" mode (like in Maemo Fremantle).
We can set up IRC and XMPP accounts and try use them for messaging as well, and also log to rtcom-eventlogger.
We won't worry here yet with showing which of the contacts are 'online'.
* telepathy-idle
* telepathy-gabble
= rtcom =
We''ll want to (need to?) reverse engineer (in order of dependencies, not necessarily order we should stick to):
* librtcom-accounts-ui-client0 (14KB)
* libaccounts (32KB)
* librtcom-accounts-widgets0 (108KB) (wants librtcom-accounts-ui-client)
* rtcom-accounts-ui (32KB)
* rtcom-accounts-voip-support
* rtcom-presence-ui (76KB + 6.7KB) (wants librtcom-accounts-ui-client, libmcclient.so.6)
* rtcom-notification-ui (208KB) (wants librtcom-accounts-ui-client.so.0, librtcom-el-plugin-call.so.1, librtcom-el-plugin-sms.so.1, librtcom-el-plugin-chat.so.1)
And there are various accounts plugins, we can probably just recreate those:
* rtcom-accounts-plugin-sip (18KB) (wants librtcom-accounts-ui-client.so.0, libaccounts.so.0, libmcclient.so.6, librtcom-accounts-widgets.so.0)
* rtcom-accounts-plugin-facebook
* rtcom-accounts-plugin-gtalk (FOSS: https://github.com/community-ssu/rtcom-accounts-plugin-gtalk)
* rtcom-accounts-plugin-jabber
* rtcom-accounts-plugin-nokiachat
== To plan ==
* If phone is in offline mode, we cannot send SMSes
* If phone is in non-online mode (for irc, xmpp, etc), then we can't send messages for those protocols
= Further reading =
* Nice resource on telepathy architecture: https://www.aosabook.org/en/telepathy.html
* rtcom-eventlogger API docs: http://maemo.org/api_refs/5.0/5.0-final/eventlogger/
cb0324914fe9455d3071021bf49ee91fe6a46824
Motorola Droid Bionic
0
111
1266
1138
2022-02-07T00:12:24Z
Wizzup
4
update kernel
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Bionic.jpg|250px]]
|manufacturer=Motorola
|codename=Targa XT875
|dimensions=127x67.3x12.7mm
|release_date=2011-09-8
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4.3"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, Kionix KXTf9 accelerometer, St L3GD20H Gyro, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
|category=Supported
|sw_kernel=5.15.0
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=No
|sw_touchscreen=Yes
|sw_keyboard=
|sw_screen=Yes
|sw_hdmi=Yes
|sw_tv=
|sw_3daccel=Yes, [[https://github.com/maemo-leste/pvr-omap4/|SGX540, closed driver|]]
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=untested
|sw_sms=Yes, no UI
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=Yes
|sw_4g=No
|sw_bluetooth=Yes, [[#Bluetooth|see notes]]
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=No, needs kernel work
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No, needs kernel/userspace work
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=70mW, needs sim inserted
|sw_standbytime=91.8h (with HW4X)
}}
== Installation ==
Hardware requirements:
* Droid Bionic with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux system
* Android Tools: fastboot adb
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
# Latest maemo-leste-1.0-armhf-bionic-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# droid4-kexecboot.img
Download or clone https://github.com/IMbackK/bionic-clown-boot
Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
Wait for sync to complete and insert MicroSD card into The Bionic. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Notes ==
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 and Bionic both expose a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Bionic, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
== Bluetooth ==
Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
== Unlocking the modem for usage in Europe ==
Tony suggested these values, Wizzup confirmed it to work on his Bionic in Europe/Amsterdam.
<pre>
apt install build-essential
git clone https://github.com/tmlind/tcmdrw
cd tcmdrw
make
./tcmdrw 1877=8703E80400000200
./tcmdrw 6850=05
</pre>
Tony also writes:
<pre>
22:34 < tmlind> hmm so i had to do this for 3g gain: tcmdrw 1143=aaff0000, got that value from xt910 firmware i think, otherwise 3g signal was weak
22:43 < tmlind> Wizzup: great, the 1143 setting is for 1900 frequency only to get decent signal on t-mo in the us
</pre>
<pre>
22:37 < tmlind> i also had to do tcmdrw 6850=05 for 3g voice to work properly
</pre>
== Stuff to try ==
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
== Old status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.10.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| USB slave || Yes ||
|-
| USB host (OTG) || No ||
|-
| Touchscreen || Yes || Capacitive
|-
| Keyboard || N/A ||
|-
| Screen || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Vibration Motor || Yes ||
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| Phone calls || WIP || Untested
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Wifi || Yes ||
|-
| Ethernet || N/A ||
|-
| IrDA || N/A || Missing in hardware
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || No ||
|-
| Nfc || No || no hardware
|-
| Accelerometer || Yes ||
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration)
|-
| Gyro || No || needs kernel work
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| AGPS || No ||
|-
| Front Camera || No ||
|-
| Back Camera(s) || No ||
|-
| Idle power consumption || ~70 mW || Needs sim inserted
|-
| Idle Battery life on new battery || 91.8 h || With HW4X
|}
[[Category:Device]]
df6131f9f21b83f2c90b0cac283b80ae2b02b14f
Main Page
0
1
1267
1185
2022-02-12T15:36:27Z
Rafael2k
54
wikitext
text/x-wiki
= Description =
Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, PinePhone, Allwinner Tablets and more.
You can find us on '''irc.libera.chat''', channel '''#maemo-leste'''.
For an overview of the current status, you might want to check out: [[Status]]
Maemo Leste is based on Devuan Beowulf (Debian Buster) and all the "supported" devices ship with recent Linux (mainline-based) kernels.
The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers.
For some devices, we have development images available, such as the [[Nokia_N900]], the [[Motorola Droid 4]] and the [[PinePhone]]. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software.
If you have not used Maemo before, you might want to check out some of the tips on the [[HowTo]] page.
== Useful resources, lists and pages ==
* To get started with a new install, see [[Getting_Started|Getting Started]].
* Read our [[Leste_FAQ|Frequently Asked Questions]]
* List of [[:Category:Device]] with support to varying degrees
* Latest downloadable images: https://phoenix.maemo.org/view/Images/
* List of "extras" software packages that have a wiki page: https://leste.maemo.org/Category:Extras
* Read how to get started with [[Development]]
* You have an application you want to see in Leste? Please let us know [[Wishlist|here]].
* For a list of presentations/talks featuring Maemo Leste, see [[Talks]]
== Links ==
<div>
The central point of meeting and talking is IRC (irc.libera.chat in #maemo-leste) and this thread: https://talk.maemo.org/showthread.php?t=100192.
*Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io]
*Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues]
*Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/]
*Our Extras Github: [https://github.com/maemo-leste-extras/ https://github.com/maemo-leste-extras/]
*Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] and https://phoenix.maemo.org/view/Images/
*Our Jenkins build server: [https://phoenix.maemo.org/ https://phoenix.maemo.org/]
*Our IRC chat history: [http://maedevu.maemo.org/irc.txt http://maedevu.maemo.org/irc.txt] and https://libera.irclog.whitequark.org/maemo-leste/ (previously: https://freenode.irclog.whitequark.org/maemo-leste/)
*Our YouTube channel: [https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w] (via [https://www.invidio.us/channel/UCgAWiHvWSuJAg5hjk7JYn1w Invidious] )
*Our Package index and info: [https://maedevu.maemo.org/pkgweb/ https://maedevu.maemo.org/pkgweb/] which runs [https://github.com/maemo-leste/mpi https://github.com/maemo-leste/mpi]
*Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
*RSS feed: [https://maemo-leste.github.io/feeds/all.atom.xml https://maemo-leste.github.io/feeds/all.atom.xml]
*[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)]
</div>
1b6f72c4345dfe19a3725a77ed5553186ad29727
Nokia N900
0
48
1274
1242
2022-02-27T15:24:03Z
Sicelo
5
/* Old status table */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=5.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=300mW (needs kernel work)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them
Also see: https://elinux.org/N900
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Old status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode
|}
[[Category:Device]]
1c70a9b5c575f3e63235eeebc22d094cec75c9ba
1275
1274
2022-02-27T15:24:44Z
Sicelo
5
/* Old status table */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=5.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=300mW (needs kernel work)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them
Also see: https://elinux.org/N900
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Old status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode
|}
[[Category:Device]]
bcf8c075bb1919c127369ed4eb42abb0f3782e10
1276
1275
2022-03-12T11:42:58Z
Sicelo
5
/* Notes */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=5.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=300mW (needs kernel work)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Old status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode
|}
[[Category:Device]]
448f41155392cadb118e0b9f404d046e93cffa6f
1277
1276
2022-03-12T11:52:21Z
Sicelo
5
/* Torch */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=5.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=300mW (needs kernel work)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Old status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode
|}
[[Category:Device]]
43435bdce2ded455797e749e2952223dc5413d83
User:Wizzup/Jenkins
2
190
1280
2022-04-28T08:34:21Z
Wizzup
4
Created page with "Setting up a Jenkins build slave requires the following steps to be executed on a machine that matches the Maemo devuan version (Not sure if this is strictly required, we just..."
wikitext
text/x-wiki
Setting up a Jenkins build slave requires the following steps to be executed on a machine that matches the Maemo devuan version (Not sure if this is strictly required, we just did it that way before).
{{{
apt install default-jre-headless
apt install jenkins-debian-glue jenkins-debian-glue-buildenv-devuan
apt purge exim4-base exim4-config exim4-daemon-light
apt --purge autoremove
apt install ntp
useradd -m -s /bin/bash jenkins
passwd jenkins
su - jenkins # add key
apt install sudo
sudo vi /etc/sudoers # allow passwordless sudo for sudo group
gpasswd -a jenkins sudo
}}}
Also copy over /etc/jenkins from one of the existing nodes, specifically for the debian glue config, see below.
Then add it to Jenkins as a node (I just copied an existing node and changed the host/ip).
Then run a build, it will likely fail, because our keys are not yet added to the pbuilder environment that just got created during the first build.
Add it like so:
{{{
cd /var/cache/pbuilder/base-beowulf-arm*.cow
wget https://maedevu.maemo.org/extras-key.asc
wget https://maedevu.maemo.org/testing-key.asc
chroot /var/cache/pbuilder/base-beowulf-arm*.cow
apt install gnupg1
apt-key add < extras-key.asc
apt-key add < testing-key.asc
rm *.asc
exit
cd -
}}}
e61de1048da1f5881eb3d8085c465c21562f1083
1281
1280
2022-04-28T08:36:38Z
Wizzup
4
wikitext
text/x-wiki
Setting up a Jenkins build slave requires the following steps to be executed on a machine that matches the Maemo devuan version (Not sure if this is strictly required, we just did it that way before).
<pre>
apt install default-jre-headless
apt install jenkins-debian-glue jenkins-debian-glue-buildenv-devuan
apt purge exim4-base exim4-config exim4-daemon-light
apt --purge autoremove
apt install ntp
useradd -m -s /bin/bash jenkins
passwd jenkins
su - jenkins # add key
apt install sudo
sudo vi /etc/sudoers # allow passwordless sudo for sudo group
gpasswd -a jenkins sudo
</pre>
Also copy over /etc/jenkins from one of the existing nodes, specifically for the debian glue config, see below.
Then add it to Jenkins as a node (I just copied an existing node and changed the host/ip).
Then run a build, it will likely fail, because our keys are not yet added to the pbuilder environment that just got created during the first build.
Add it like so:
<pre>
cd /var/cache/pbuilder/base-beowulf-arm*.cow
wget https://maedevu.maemo.org/extras-key.asc
wget https://maedevu.maemo.org/testing-key.asc
chroot /var/cache/pbuilder/base-beowulf-arm*.cow
apt install gnupg1
apt-key add < extras-key.asc
apt-key add < testing-key.asc
rm *.asc
exit
cd -
</pre>
/etc/jenkins/pbuilderrc:
<pre>
MIRRORSITE="http://pkgmaster.devuan.org/merged/"
COMPONENTS="main contrib non-free"
DEBOOTSTRAPOPTS=("${DEBOOTSTRAPOPTS[@]}" "--keyring=/usr/share/keyrings/devuan-keyring.gpg" "--no-merged-usr")
PBUILDERSATISFYDEPENDSCMD=/usr/lib/pbuilder/pbuilder-satisfydepends-apt
EXTRAPACKAGES="$EXTRAPACKAGES devuan-keyring"
AUTOCLEANAPTCACHE=yes
if [[ $ARCH == arm* ]] ; then
EXTRAPACKAGES="$EXTRAPACKAGES pinthread"
export LD_PRELOAD="$LD_PRELOAD /usr/lib/pinthread.so"
export PINTHREAD_CORE=0
fi
</pre>
/etc/jenkins/debian_glue:
<pre>
# Example configuration file for the jenkins-debian-glue software.
# Install this file as /etc/jenkins/debian_glue to enable it.
# Set GnuPG ID that should be used for signing the reprepro repository.
# If you build packages for Squeeze your reprepro repositories *MUST* be
# signed and the keyring that holds the public key (REPOSITORY_KEYRING)
# must be set.
# Expected format: DEADBEEF
if [ "$release" = "leste" ]; then
KEY_ID=4AA81E3E026EFE82E47D6901545FEC4E0927F6FD
else
# extras
KEY_ID=89F632F52BFE13EBBB2EBD0D2700BD8E6604EC2E
fi
# If TRUNK_RELEASE is set then the package(s) of the repository
# receiving the packages that are built will be copied to the
# repository specified in TRUNK_RELEASE. This provides the option
# to have all recent versions of packages in a central repository.
# TRUNK_RELEASE='release-trunk'
# If packages are build for more than one architecture you can
# decide which architecture should build the "Architecture: all"
# packages. On all other architectures only the arch specific
# packages will be build then.
# If unset it will default to the architecture of the host system.
MAIN_ARCHITECTURE="amd64"
# Hook scripts for pbuilder/cowbuilder, used e.g. for autopkgtest.
# Default:
# PBUILDER_HOOKDIR=/usr/share/jenkins-debian-glue/pbuilder-hookdir/
# To enable a pbuilder configuration file for usage as documented
# in man pbuilder(8) under --configfile set this option.
# By default no user specific pbuilder configuration file is used.
# PBUILDER_CONFIG=/etc/jenkins/pbuilderrc
# Base directory for reprepro repositories, can be overwritten
# via REPOSITORY on demand
# Default:
DEFAULT_REPOSITORY='/srv/repository'
# In order to keep the build versions unique and to ensure that there
# are no duplicates, the version number from the changelog is padded
# with the date and the build number.
# To override this behaviour and preserve the version number from the
# changelog, set USE_ORIG_VERSION to true.
USE_ORIG_VERSION=true
SKIP_DCH=true
DCH_OPTS="--multimaint-merge --ignore-branch"
#DCH_EXTRA_OPTS="--distribution=maemo7 --force-distribution -R"
#DCH_EXTRA_OPTS="
#maybe? line 103 in /usr/bin/generate-git-snapshot
UNRELEASEAD_APPEND_COMMIT="false"
# By default reprepro repositories are not verified but assumed to be
# trustworthy.
# Please note that if you build packages for Squeeze, the reprepro
# repositories *MUST* be signed and verifiable. I.e. you need to set
# KEY_ID and the corresponding keyring in REPOSITORY_KEYRING that
# holds the public key portion for that KEY_ID.
# REPOSITORY_KEYRING=/etc/apt/trusted.gpg.d/my-custom-keyring.gpg
REPOSITORY_KEYRING=/var/lib/jenkins/.gnupg/keyring.gpg
#release=${release:-kawai}
#REPOSITORY=/srv/repository
# If $release is set then "${REPOSITORY}/release/${release}"
# is used as release repository. If you want to use a different
# directory set RELEASE_REPOSITORY accordingly.
# Default:
# RELEASE_REPOSITORY="${REPOSITORY}/release/${release}"
RELEASE_REPOSITORY="${DEFAULT_REPOSITORY}/${release}"
# Remove packages from a $release before processing incoming
# This allows to rebuild and provide versions already existent
# in the release repository they are built for.
# Default:
# REMOVE_FROM_RELEASE=false
# By default the underlying build system (cowbuilder/pbuilder)
# automatically destroys the build environment, even if building
# fails for whatever reason. If DEB_KEEP_BUILD_ENV is set then
# a copy of the build environment is created under
# /var/cache/pbuilder/build/debug.$JOBNAME
# Please be aware that those build environments usually require
# quite some disk space, so do not forget to remove them.
# If unset the build environment won't be kept if building fails.
# DEB_KEEP_BUILD_ENV=true
# Comma separated list of extra repositories for resolving dependencies.
# Usage example:
# REPOSITORY_EXTRA='deb http://security.debian.org/ wheezy/updates main,deb-src http://security.debian.org/ wheezy/updates main'
# Default:
# REPOSITORY_EXTRA=
PARENT_DISTRO=
DEVUAN_BUILD=
case "$distribution" in
stretch*)
PARENT_DISTRO=ascii
;;
buster*)
PARENT_DISTRO=beowulf
;;
bullseye*)
PARENT_DISTRO=
;;
bookworm*)
PARENT_DISTRO=
;;
*)
DEVUAN_BUILD=1
esac
if [ -z "$DEVUAN_BUILD" ]; then
# Debian
MIRROR="http://deb.debian.org/debian"
SECURITY_MIRROR="http://security.debian.org/debian-security"
SECURITY_FOLDER="${distribution}/updates"
# This option is needed for pbuilder to work nice in Devuan environment
PBUILDER_CONFIG=/etc/jenkins/debian_mirror
# Initialize it with command:
# echo 'MIRRORSITE=http://deb.debian.org/debian' > /etc/jenkins/debian_mirror
else
# Devuan
MIRROR="http://pkgmaster.devuan.org/merged"
SECURITY_MIRROR="${MIRROR}"
SECURITY_FOLDER="${distribution}-security"
fi
REPOSITORY_EXTRA="deb ${MIRROR} ${distribution}-updates main contrib non-free"
REPOSITORY_EXTRA="${REPOSITORY_EXTRA},deb ${SECURITY_MIRROR} ${SECURITY_FOLDER} main contrib non-free"
REPOSITORY_EXTRA="${REPOSITORY_EXTRA},deb http://maedevu.maemo.org/${release} ${distribution} main contrib non-free"
# Pull in deps from -devel when building -devel
if [ "$ENABLE_MAEMO_DEVEL" = "yes" ]; then
REPOSITORY_EXTRA="${REPOSITORY_EXTRA},deb http://maedevu.maemo.org/${release} ${distribution}-devel main contrib non-free"
fi
if [ "$ENABLE_MAEMO_EXPERIMENTAL" = "yes" ]; then
REPOSITORY_EXTRA="${REPOSITORY_EXTRA},deb http://maedevu.maemo.org/${release} ${distribution}-experimental main contrib non-free"
fi
# Pull in deps from the main repo when building extras
if [ "$release" = "extras" ]; then
REPOSITORY_EXTRA="${REPOSITORY_EXTRA},deb http://maedevu.maemo.org/leste ${distribution} main contrib non-free"
fi
# Pull in deps from main repo when building for Debian
if [ -n "$PARENT_DISTRO" ]; then
REPOSITORY_EXTRA="${REPOSITORY_EXTRA},deb http://maedevu.maemo.org/leste ${PARENT_DISTRO} main contrib non-free"
fi
# Device specifics
backports_jobs="mesa"
#n900_jobs="libmatchbox2-n900 hildon-desktop-n900"
echo "job_name: $JOB_NAME"
case "$JOB_NAME" in
*-source)
_curpkgname="$(echo $JOB_NAME | sed 's,-source$,,')"
;;
*-binaries/*)
_curpkgname="$(echo $JOB_NAME | cut -d '/' -f1 | sed 's,-binaries$,,')"
;;
*-repos/*)
_curpkgname="$(echo $JOB_NAME | cut -d '/' -f1 | sed 's,-repos$,,')"
;;
*)
_curpkgname="irrelevant"
;;
esac
if echo "$backports_jobs" | grep -qw "$_curpkgname"; then
case "$distribution" in
ascii*|stretch*|beowulf*|buster*)
REPOSITORY_EXTRA="${REPOSITORY_EXTRA},deb ${MIRROR} ${distribution}-backports main contrib non-free"
;;
esac
fi
#if echo "$n900_jobs" | grep -qw "$_curpkgname"; then
# REPOSITORY_EXTRA="${REPOSITORY_EXTRA},deb http://maedevu.maemo.org/${release} ${distribution} n900"
#fi
droid4_jobs="pvr-omap4"
if echo "$droid4_jobs" | grep -qw "$_curpkgname"; then
REPOSITORY_EXTRA="${REPOSITORY_EXTRA},deb http://maedevu.maemo.org/${release} ${distribution} droid4"
fi
network_jobs="pine64-uboot zkgroup signald anbox-image"
if echo "$network_jobs" | grep -qw "$_curpkgname"; then
PBUILDER_USENETWORK=yes
fi
# Comma separated list of URLs with keys for extra repositories.
# Usage example:
# REPOSITORY_EXTRA_KEYS='http://foorepo.domain.com/key1.gpg,http://barrepo.domain.com/key2.gpg'
# Default:
# REPOSITORY_EXTRA_KEYS=
REPOSITORY_EXTRA_KEYS='http://maedevu.maemo.org/testing-key.asc,http://maedevu.maemo.org/extras-key.asc'
# autopkgtests are executed automatically inside the cowbuilder environment by
# default, corresponding to the ADT='internal' setting or if ADT is unset.
# To execute autopkgtests also externally via adt-run you need to set ADT to
# either 'external' (no internal runs) or 'all' (internal + external runs).
# The external autopkgtests depend on a configured ADT_RUNNER setting.
# To skip internal as well as external autopkgtests set ADT='skip'.
# Usage example (see adt-virt-qemu(1) for details regarding image setup):
# ADT='external'
# ADT_RUNNER="adt-virt-qemu /srv/adt-${distribution:-}-${architecture:-}.img"
# Default:
# ADT=
# Control usage of eatmydata to speed up builds. If eatmydata is present on the
# host system and when building for a recent distribution (Debian/jessie +
# Ubuntu/vivid or newer) eatmydata is enabled automatically.
# To force its usage (skipping any host + distribution checks) set it to 'true'.
# To disable its usage set it to 'false'.
# USE_EATMYDATA=true
# Enable ccache (compiler cache for fast recompilation of C/C++ code)
# to speed up builds.
USE_CCACHE=true
# Specify the format (as accepted by the 'date' command) for the generated
# build timestamp.
# Default: %Y%m%d%H%M%S
# TIMESTAMP_FORMAT="%Y%m%d%H%M%S"
# In case you are explicitly marking your new package version as "UNRELEASED"
# inside the debian/changelog file, you may not get a package build version
# number containing the SCM commit. Set this to 'true' in order to work around
# this.
# Default: false
# UNRELEASED_APPEND_COMMIT=false
</pre>
00a01a129a4a74345b10027c75a9e7a7a3f12fb9
1282
1281
2022-04-28T08:55:43Z
Wizzup
4
wikitext
text/x-wiki
Setting up a Jenkins build slave requires the following steps to be executed on a machine that matches the Maemo devuan version (Not sure if this is strictly required, we just did it that way before).
<pre>
apt install default-jre-headless
apt install jenkins-debian-glue jenkins-debian-glue-buildenv-devuan
apt purge exim4-base exim4-config exim4-daemon-light
apt --purge autoremove
apt install ntp
useradd -m -s /bin/bash jenkins
passwd jenkins
su - jenkins # add ssh pub key from jenkins master to .ssh/authorized_keys
apt install sudo
sudo vi /etc/sudoers # allow passwordless sudo for sudo group
gpasswd -a jenkins sudo
</pre>
Also, this might not be necessary, but one could add this:
<pre>
# cat /etc/sudoers.d/jenkins
jenkins ALL=NOPASSWD: /usr/sbin/cowbuilder, /usr/sbin/chroot, /bin/chmod, /bin/rm, /bin/mv, /bin/cat
Defaults env_keep+="DEB_* DIST ARCH ADT QEMU_LOG_FILENAME"
</pre>
Also copy over /etc/jenkins from one of the existing nodes, specifically for the debian glue config, see below.
Then add it to Jenkins as a node (I just copied an existing node and changed the host/ip).
Then run a build, it will likely fail, because our keys are not yet added to the pbuilder environment that just got created during the first build.
Add it like so:
<pre>
cd /var/cache/pbuilder/base-beowulf-arm*.cow
wget https://maedevu.maemo.org/extras-key.asc
wget https://maedevu.maemo.org/testing-key.asc
chroot /var/cache/pbuilder/base-beowulf-arm*.cow
apt install gnupg1
apt-key add < extras-key.asc
apt-key add < testing-key.asc
rm *.asc
exit
cd -
</pre>
/etc/jenkins/pbuilderrc:
<pre>
MIRRORSITE="http://pkgmaster.devuan.org/merged/"
COMPONENTS="main contrib non-free"
DEBOOTSTRAPOPTS=("${DEBOOTSTRAPOPTS[@]}" "--keyring=/usr/share/keyrings/devuan-keyring.gpg" "--no-merged-usr")
PBUILDERSATISFYDEPENDSCMD=/usr/lib/pbuilder/pbuilder-satisfydepends-apt
EXTRAPACKAGES="$EXTRAPACKAGES devuan-keyring"
AUTOCLEANAPTCACHE=yes
if [[ $ARCH == arm* ]] ; then
EXTRAPACKAGES="$EXTRAPACKAGES pinthread"
export LD_PRELOAD="$LD_PRELOAD /usr/lib/pinthread.so"
export PINTHREAD_CORE=0
fi
</pre>
/etc/jenkins/debian_glue:
<pre>
# Example configuration file for the jenkins-debian-glue software.
# Install this file as /etc/jenkins/debian_glue to enable it.
# Set GnuPG ID that should be used for signing the reprepro repository.
# If you build packages for Squeeze your reprepro repositories *MUST* be
# signed and the keyring that holds the public key (REPOSITORY_KEYRING)
# must be set.
# Expected format: DEADBEEF
if [ "$release" = "leste" ]; then
KEY_ID=4AA81E3E026EFE82E47D6901545FEC4E0927F6FD
else
# extras
KEY_ID=89F632F52BFE13EBBB2EBD0D2700BD8E6604EC2E
fi
# If TRUNK_RELEASE is set then the package(s) of the repository
# receiving the packages that are built will be copied to the
# repository specified in TRUNK_RELEASE. This provides the option
# to have all recent versions of packages in a central repository.
# TRUNK_RELEASE='release-trunk'
# If packages are build for more than one architecture you can
# decide which architecture should build the "Architecture: all"
# packages. On all other architectures only the arch specific
# packages will be build then.
# If unset it will default to the architecture of the host system.
MAIN_ARCHITECTURE="amd64"
# Hook scripts for pbuilder/cowbuilder, used e.g. for autopkgtest.
# Default:
# PBUILDER_HOOKDIR=/usr/share/jenkins-debian-glue/pbuilder-hookdir/
# To enable a pbuilder configuration file for usage as documented
# in man pbuilder(8) under --configfile set this option.
# By default no user specific pbuilder configuration file is used.
# PBUILDER_CONFIG=/etc/jenkins/pbuilderrc
# Base directory for reprepro repositories, can be overwritten
# via REPOSITORY on demand
# Default:
DEFAULT_REPOSITORY='/srv/repository'
# In order to keep the build versions unique and to ensure that there
# are no duplicates, the version number from the changelog is padded
# with the date and the build number.
# To override this behaviour and preserve the version number from the
# changelog, set USE_ORIG_VERSION to true.
USE_ORIG_VERSION=true
SKIP_DCH=true
DCH_OPTS="--multimaint-merge --ignore-branch"
#DCH_EXTRA_OPTS="--distribution=maemo7 --force-distribution -R"
#DCH_EXTRA_OPTS="
#maybe? line 103 in /usr/bin/generate-git-snapshot
UNRELEASEAD_APPEND_COMMIT="false"
# By default reprepro repositories are not verified but assumed to be
# trustworthy.
# Please note that if you build packages for Squeeze, the reprepro
# repositories *MUST* be signed and verifiable. I.e. you need to set
# KEY_ID and the corresponding keyring in REPOSITORY_KEYRING that
# holds the public key portion for that KEY_ID.
# REPOSITORY_KEYRING=/etc/apt/trusted.gpg.d/my-custom-keyring.gpg
REPOSITORY_KEYRING=/var/lib/jenkins/.gnupg/keyring.gpg
#release=${release:-kawai}
#REPOSITORY=/srv/repository
# If $release is set then "${REPOSITORY}/release/${release}"
# is used as release repository. If you want to use a different
# directory set RELEASE_REPOSITORY accordingly.
# Default:
# RELEASE_REPOSITORY="${REPOSITORY}/release/${release}"
RELEASE_REPOSITORY="${DEFAULT_REPOSITORY}/${release}"
# Remove packages from a $release before processing incoming
# This allows to rebuild and provide versions already existent
# in the release repository they are built for.
# Default:
# REMOVE_FROM_RELEASE=false
# By default the underlying build system (cowbuilder/pbuilder)
# automatically destroys the build environment, even if building
# fails for whatever reason. If DEB_KEEP_BUILD_ENV is set then
# a copy of the build environment is created under
# /var/cache/pbuilder/build/debug.$JOBNAME
# Please be aware that those build environments usually require
# quite some disk space, so do not forget to remove them.
# If unset the build environment won't be kept if building fails.
# DEB_KEEP_BUILD_ENV=true
# Comma separated list of extra repositories for resolving dependencies.
# Usage example:
# REPOSITORY_EXTRA='deb http://security.debian.org/ wheezy/updates main,deb-src http://security.debian.org/ wheezy/updates main'
# Default:
# REPOSITORY_EXTRA=
PARENT_DISTRO=
DEVUAN_BUILD=
case "$distribution" in
stretch*)
PARENT_DISTRO=ascii
;;
buster*)
PARENT_DISTRO=beowulf
;;
bullseye*)
PARENT_DISTRO=
;;
bookworm*)
PARENT_DISTRO=
;;
*)
DEVUAN_BUILD=1
esac
if [ -z "$DEVUAN_BUILD" ]; then
# Debian
MIRROR="http://deb.debian.org/debian"
SECURITY_MIRROR="http://security.debian.org/debian-security"
SECURITY_FOLDER="${distribution}/updates"
# This option is needed for pbuilder to work nice in Devuan environment
PBUILDER_CONFIG=/etc/jenkins/debian_mirror
# Initialize it with command:
# echo 'MIRRORSITE=http://deb.debian.org/debian' > /etc/jenkins/debian_mirror
else
# Devuan
MIRROR="http://pkgmaster.devuan.org/merged"
SECURITY_MIRROR="${MIRROR}"
SECURITY_FOLDER="${distribution}-security"
fi
REPOSITORY_EXTRA="deb ${MIRROR} ${distribution}-updates main contrib non-free"
REPOSITORY_EXTRA="${REPOSITORY_EXTRA},deb ${SECURITY_MIRROR} ${SECURITY_FOLDER} main contrib non-free"
REPOSITORY_EXTRA="${REPOSITORY_EXTRA},deb http://maedevu.maemo.org/${release} ${distribution} main contrib non-free"
# Pull in deps from -devel when building -devel
if [ "$ENABLE_MAEMO_DEVEL" = "yes" ]; then
REPOSITORY_EXTRA="${REPOSITORY_EXTRA},deb http://maedevu.maemo.org/${release} ${distribution}-devel main contrib non-free"
fi
if [ "$ENABLE_MAEMO_EXPERIMENTAL" = "yes" ]; then
REPOSITORY_EXTRA="${REPOSITORY_EXTRA},deb http://maedevu.maemo.org/${release} ${distribution}-experimental main contrib non-free"
fi
# Pull in deps from the main repo when building extras
if [ "$release" = "extras" ]; then
REPOSITORY_EXTRA="${REPOSITORY_EXTRA},deb http://maedevu.maemo.org/leste ${distribution} main contrib non-free"
fi
# Pull in deps from main repo when building for Debian
if [ -n "$PARENT_DISTRO" ]; then
REPOSITORY_EXTRA="${REPOSITORY_EXTRA},deb http://maedevu.maemo.org/leste ${PARENT_DISTRO} main contrib non-free"
fi
# Device specifics
backports_jobs="mesa"
#n900_jobs="libmatchbox2-n900 hildon-desktop-n900"
echo "job_name: $JOB_NAME"
case "$JOB_NAME" in
*-source)
_curpkgname="$(echo $JOB_NAME | sed 's,-source$,,')"
;;
*-binaries/*)
_curpkgname="$(echo $JOB_NAME | cut -d '/' -f1 | sed 's,-binaries$,,')"
;;
*-repos/*)
_curpkgname="$(echo $JOB_NAME | cut -d '/' -f1 | sed 's,-repos$,,')"
;;
*)
_curpkgname="irrelevant"
;;
esac
if echo "$backports_jobs" | grep -qw "$_curpkgname"; then
case "$distribution" in
ascii*|stretch*|beowulf*|buster*)
REPOSITORY_EXTRA="${REPOSITORY_EXTRA},deb ${MIRROR} ${distribution}-backports main contrib non-free"
;;
esac
fi
#if echo "$n900_jobs" | grep -qw "$_curpkgname"; then
# REPOSITORY_EXTRA="${REPOSITORY_EXTRA},deb http://maedevu.maemo.org/${release} ${distribution} n900"
#fi
droid4_jobs="pvr-omap4"
if echo "$droid4_jobs" | grep -qw "$_curpkgname"; then
REPOSITORY_EXTRA="${REPOSITORY_EXTRA},deb http://maedevu.maemo.org/${release} ${distribution} droid4"
fi
network_jobs="pine64-uboot zkgroup signald anbox-image"
if echo "$network_jobs" | grep -qw "$_curpkgname"; then
PBUILDER_USENETWORK=yes
fi
# Comma separated list of URLs with keys for extra repositories.
# Usage example:
# REPOSITORY_EXTRA_KEYS='http://foorepo.domain.com/key1.gpg,http://barrepo.domain.com/key2.gpg'
# Default:
# REPOSITORY_EXTRA_KEYS=
REPOSITORY_EXTRA_KEYS='http://maedevu.maemo.org/testing-key.asc,http://maedevu.maemo.org/extras-key.asc'
# autopkgtests are executed automatically inside the cowbuilder environment by
# default, corresponding to the ADT='internal' setting or if ADT is unset.
# To execute autopkgtests also externally via adt-run you need to set ADT to
# either 'external' (no internal runs) or 'all' (internal + external runs).
# The external autopkgtests depend on a configured ADT_RUNNER setting.
# To skip internal as well as external autopkgtests set ADT='skip'.
# Usage example (see adt-virt-qemu(1) for details regarding image setup):
# ADT='external'
# ADT_RUNNER="adt-virt-qemu /srv/adt-${distribution:-}-${architecture:-}.img"
# Default:
# ADT=
# Control usage of eatmydata to speed up builds. If eatmydata is present on the
# host system and when building for a recent distribution (Debian/jessie +
# Ubuntu/vivid or newer) eatmydata is enabled automatically.
# To force its usage (skipping any host + distribution checks) set it to 'true'.
# To disable its usage set it to 'false'.
# USE_EATMYDATA=true
# Enable ccache (compiler cache for fast recompilation of C/C++ code)
# to speed up builds.
USE_CCACHE=true
# Specify the format (as accepted by the 'date' command) for the generated
# build timestamp.
# Default: %Y%m%d%H%M%S
# TIMESTAMP_FORMAT="%Y%m%d%H%M%S"
# In case you are explicitly marking your new package version as "UNRELEASED"
# inside the debian/changelog file, you may not get a package build version
# number containing the SCM commit. Set this to 'true' in order to work around
# this.
# Default: false
# UNRELEASED_APPEND_COMMIT=false
</pre>
1233d71c8f0d9e22f3997b932cf211655237f773
Development
0
61
1283
1002
2022-04-28T15:44:14Z
BuZz
32
wikitext
text/x-wiki
Maemo Leste development is split up in a few different places.
== Communication and organising ==
* Our https://maemo-leste.github.io website is where we post (news) updates, as well as on talk.maemo.org (see this subforum https://talk.maemo.org/forumdisplay.php?f=66 and this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192)
* There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker
* The day-to-day development and user chatter mostly takes place in the [[IRC channel]]
* We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
* This wiki: for documenting the status of various long-running projects, status per device, etc.
== Task Summary ==
For current (semi) impactful tasks, see
[[Development/Tasks]]
== Codename ==
* Maemo Leste is currently based on Devuan Beowulf, which is based on Debian Buster.
== Guides ==
* [[Development/Porting Packages]]
* [[Development/Building Packages]]
* [[Development/Modified Software]]
* [[Development/Device Bringup]]
* https://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide
== Technical ==
All our git repositories can be found here: https://github.com/maemo-leste
=== Jenkins ===
To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/
=== Developing on a device ===
All development software and tests end up in 'beowulf-devel' apt source. For enabling this edit '/etc/apt/sources.list' and change the last line to:
deb https://maedevu.maemo.org/leste beowulf-devel main contrib non-free droid4
Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM)
The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]].
=== Building a Maemo Leste image ===
See https://leste.maemo.org/Image_Builder
=== List of Programs/Daemon specific to Maemo ===
https://leste.maemo.org/Development/Daemons
=== Crossbuilding ===
Multiarch is an ability present on modern Debian systems that allows you to build native packages for different architectures. This is nice because you can build packages for an ARM based phone using the full power of your x86 based PC/Mac/Notebook or a server.
Here we show how you can easily setup a multiarch environment and build a native package for Maemo Leste running on Nokia N900. We are going to make a container (chroot) for this job. It's because we don't want to pollute our main system.
# Make a container for our development system
DIR=/var/lib/container/stretch
sudo apt-get install qemu-user-static debootstrap systemd-container &&
sudo debootstrap --arch=armhf stretch $DIR http://deb.debian.org/debian &&
echo "strech_cross" | sudo tee $DIR/etc/debian_chroot &&
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR
# Setup build environment inside the container
cat >> ~/.bashrc << EOF &&
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
export CC=arm-linux-gnueabihf-gcc
export JOBS=$(grep processor /proc/cpuinfo | wc -l)
EOF
dpkg --add-architecture armhf &&
apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates &&
cat >> /etc/apt/sources.list << "EOF" &&
deb http://maedevu.maemo.org/leste ascii main contrib non-free n900
deb http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900
deb-src http://deb.debian.org/debian stretch main
deb-src http://maedevu.maemo.org/leste ascii main contrib non-free n900
deb-src http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900
EOF
wget --no-check-certificate https://maedevu.maemo.org/testing-key.asc &&
apt-key add testing-key.asc &&
rm -f testing-key.asc &&
rm -f /var/cache/apt/archives/*.deb &&
apt-get update &&
exec bash
# Build Xorg for Nokia N900
apt-get source xserver-xorg-core &&
cd xorg-server-1.19.2 &&
wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch &&
mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches &&
echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series &&
apt-get -y build-dep -a armhf . &&
time dpkg-buildpackage -aarmhf -j$JOBS -b &&
echo OK || echo FAIL
To login the container later:
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch
To remove the container:
sudo rm -fr /var/lib/container/stretch
=== Cross-distro solution for development inside an ARM/ARM64 chroot on a PC ===
It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices.
1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]:
$ sudo apt-get install qemu-user-static binfmt-support
The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''':
$ sudo update-binfmts --display qemu-arm
qemu-arm (enabled):
package = qemu-user-static
type = magic
offset = 0
magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00
mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff
interpreter = /usr/bin/qemu-arm-static
detector =
2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it:
$ mkdir leste-arm64
$ cd leste-arm64
$ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf -
3. From the same directory, configure the chroot with a few resources from your host system:
$ sudo mount -t proc proc proc
$ sudo mount -o bind /dev dev
$ sudo mount -o bind /dev/pts dev/pts
4. From the same directory, create a symlink for the mount table:
$ sudo ln -s /proc/mounts etc/mtab
5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user:
$ sudo LC_ALL=C chroot . /bin/su - user
You'll now be ready to use your Maemo Leste ARM64 development environment:
$ uname -m
aarch64
Once you have finished with it, you can exit and unmount the resources you previously mounted:
$ exit
$ sudo umount dev/pts dev proc
=== Localization ===
See [[Localization]]
=== TODO ===
* Discuss where people look to pick up issues (clear answer is the bugtracker, but still)
* How people can make changes and how to send them in
5f819829d68c4df50c430f738be08efa9b7b6a6f
1284
1283
2022-04-28T19:35:13Z
BuZz
32
/* Developing on a device */
wikitext
text/x-wiki
Maemo Leste development is split up in a few different places.
== Communication and organising ==
* Our https://maemo-leste.github.io website is where we post (news) updates, as well as on talk.maemo.org (see this subforum https://talk.maemo.org/forumdisplay.php?f=66 and this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192)
* There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker
* The day-to-day development and user chatter mostly takes place in the [[IRC channel]]
* We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
* This wiki: for documenting the status of various long-running projects, status per device, etc.
== Task Summary ==
For current (semi) impactful tasks, see
[[Development/Tasks]]
== Codename ==
* Maemo Leste is currently based on Devuan Beowulf, which is based on Debian Buster.
== Guides ==
* [[Development/Porting Packages]]
* [[Development/Building Packages]]
* [[Development/Modified Software]]
* [[Development/Device Bringup]]
* https://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide
== Technical ==
All our git repositories can be found here: https://github.com/maemo-leste
=== Jenkins ===
To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/
=== Developing on a device ===
All development software and tests end up in 'beowulf-devel' apt source. For enabling this edit '/etc/apt/sources.list' and add this line:
deb https://maedevu.maemo.org/leste beowulf-devel main contrib non-free droid4
Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM)
The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]].
=== Building a Maemo Leste image ===
See https://leste.maemo.org/Image_Builder
=== List of Programs/Daemon specific to Maemo ===
https://leste.maemo.org/Development/Daemons
=== Crossbuilding ===
Multiarch is an ability present on modern Debian systems that allows you to build native packages for different architectures. This is nice because you can build packages for an ARM based phone using the full power of your x86 based PC/Mac/Notebook or a server.
Here we show how you can easily setup a multiarch environment and build a native package for Maemo Leste running on Nokia N900. We are going to make a container (chroot) for this job. It's because we don't want to pollute our main system.
# Make a container for our development system
DIR=/var/lib/container/stretch
sudo apt-get install qemu-user-static debootstrap systemd-container &&
sudo debootstrap --arch=armhf stretch $DIR http://deb.debian.org/debian &&
echo "strech_cross" | sudo tee $DIR/etc/debian_chroot &&
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR
# Setup build environment inside the container
cat >> ~/.bashrc << EOF &&
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
export CC=arm-linux-gnueabihf-gcc
export JOBS=$(grep processor /proc/cpuinfo | wc -l)
EOF
dpkg --add-architecture armhf &&
apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates &&
cat >> /etc/apt/sources.list << "EOF" &&
deb http://maedevu.maemo.org/leste ascii main contrib non-free n900
deb http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900
deb-src http://deb.debian.org/debian stretch main
deb-src http://maedevu.maemo.org/leste ascii main contrib non-free n900
deb-src http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900
EOF
wget --no-check-certificate https://maedevu.maemo.org/testing-key.asc &&
apt-key add testing-key.asc &&
rm -f testing-key.asc &&
rm -f /var/cache/apt/archives/*.deb &&
apt-get update &&
exec bash
# Build Xorg for Nokia N900
apt-get source xserver-xorg-core &&
cd xorg-server-1.19.2 &&
wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch &&
mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches &&
echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series &&
apt-get -y build-dep -a armhf . &&
time dpkg-buildpackage -aarmhf -j$JOBS -b &&
echo OK || echo FAIL
To login the container later:
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch
To remove the container:
sudo rm -fr /var/lib/container/stretch
=== Cross-distro solution for development inside an ARM/ARM64 chroot on a PC ===
It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices.
1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]:
$ sudo apt-get install qemu-user-static binfmt-support
The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''':
$ sudo update-binfmts --display qemu-arm
qemu-arm (enabled):
package = qemu-user-static
type = magic
offset = 0
magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00
mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff
interpreter = /usr/bin/qemu-arm-static
detector =
2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it:
$ mkdir leste-arm64
$ cd leste-arm64
$ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf -
3. From the same directory, configure the chroot with a few resources from your host system:
$ sudo mount -t proc proc proc
$ sudo mount -o bind /dev dev
$ sudo mount -o bind /dev/pts dev/pts
4. From the same directory, create a symlink for the mount table:
$ sudo ln -s /proc/mounts etc/mtab
5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user:
$ sudo LC_ALL=C chroot . /bin/su - user
You'll now be ready to use your Maemo Leste ARM64 development environment:
$ uname -m
aarch64
Once you have finished with it, you can exit and unmount the resources you previously mounted:
$ exit
$ sudo umount dev/pts dev proc
=== Localization ===
See [[Localization]]
=== TODO ===
* Discuss where people look to pick up issues (clear answer is the bugtracker, but still)
* How people can make changes and how to send them in
27da421d0b576a81c560f6c20aa8055fd6ba1e3c
1285
1284
2022-04-28T19:36:40Z
Wizzup
4
/* Developing on a device */
wikitext
text/x-wiki
Maemo Leste development is split up in a few different places.
== Communication and organising ==
* Our https://maemo-leste.github.io website is where we post (news) updates, as well as on talk.maemo.org (see this subforum https://talk.maemo.org/forumdisplay.php?f=66 and this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192)
* There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker
* The day-to-day development and user chatter mostly takes place in the [[IRC channel]]
* We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
* This wiki: for documenting the status of various long-running projects, status per device, etc.
== Task Summary ==
For current (semi) impactful tasks, see
[[Development/Tasks]]
== Codename ==
* Maemo Leste is currently based on Devuan Beowulf, which is based on Debian Buster.
== Guides ==
* [[Development/Porting Packages]]
* [[Development/Building Packages]]
* [[Development/Modified Software]]
* [[Development/Device Bringup]]
* https://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide
== Technical ==
All our git repositories can be found here: https://github.com/maemo-leste
=== Jenkins ===
To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/
=== Developing on a device ===
All development software and tests end up in 'beowulf-devel' apt source. For enabling this edit '/etc/apt/sources.list' and add this line:
deb https://maedevu.maemo.org/leste beowulf-devel main contrib non-free droid4
The exact line might depend on your device; just copy the maemo beowulf line and change beowulf to beowulf-devel - for example, if you're not on a mapphone (droid) device, you probably don't want the droid4 component in the line.
Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM)
The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]].
=== Building a Maemo Leste image ===
See https://leste.maemo.org/Image_Builder
=== List of Programs/Daemon specific to Maemo ===
https://leste.maemo.org/Development/Daemons
=== Crossbuilding ===
Multiarch is an ability present on modern Debian systems that allows you to build native packages for different architectures. This is nice because you can build packages for an ARM based phone using the full power of your x86 based PC/Mac/Notebook or a server.
Here we show how you can easily setup a multiarch environment and build a native package for Maemo Leste running on Nokia N900. We are going to make a container (chroot) for this job. It's because we don't want to pollute our main system.
# Make a container for our development system
DIR=/var/lib/container/stretch
sudo apt-get install qemu-user-static debootstrap systemd-container &&
sudo debootstrap --arch=armhf stretch $DIR http://deb.debian.org/debian &&
echo "strech_cross" | sudo tee $DIR/etc/debian_chroot &&
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR
# Setup build environment inside the container
cat >> ~/.bashrc << EOF &&
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
export CC=arm-linux-gnueabihf-gcc
export JOBS=$(grep processor /proc/cpuinfo | wc -l)
EOF
dpkg --add-architecture armhf &&
apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates &&
cat >> /etc/apt/sources.list << "EOF" &&
deb http://maedevu.maemo.org/leste ascii main contrib non-free n900
deb http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900
deb-src http://deb.debian.org/debian stretch main
deb-src http://maedevu.maemo.org/leste ascii main contrib non-free n900
deb-src http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900
EOF
wget --no-check-certificate https://maedevu.maemo.org/testing-key.asc &&
apt-key add testing-key.asc &&
rm -f testing-key.asc &&
rm -f /var/cache/apt/archives/*.deb &&
apt-get update &&
exec bash
# Build Xorg for Nokia N900
apt-get source xserver-xorg-core &&
cd xorg-server-1.19.2 &&
wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch &&
mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches &&
echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series &&
apt-get -y build-dep -a armhf . &&
time dpkg-buildpackage -aarmhf -j$JOBS -b &&
echo OK || echo FAIL
To login the container later:
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch
To remove the container:
sudo rm -fr /var/lib/container/stretch
=== Cross-distro solution for development inside an ARM/ARM64 chroot on a PC ===
It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices.
1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]:
$ sudo apt-get install qemu-user-static binfmt-support
The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''':
$ sudo update-binfmts --display qemu-arm
qemu-arm (enabled):
package = qemu-user-static
type = magic
offset = 0
magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00
mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff
interpreter = /usr/bin/qemu-arm-static
detector =
2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it:
$ mkdir leste-arm64
$ cd leste-arm64
$ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf -
3. From the same directory, configure the chroot with a few resources from your host system:
$ sudo mount -t proc proc proc
$ sudo mount -o bind /dev dev
$ sudo mount -o bind /dev/pts dev/pts
4. From the same directory, create a symlink for the mount table:
$ sudo ln -s /proc/mounts etc/mtab
5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user:
$ sudo LC_ALL=C chroot . /bin/su - user
You'll now be ready to use your Maemo Leste ARM64 development environment:
$ uname -m
aarch64
Once you have finished with it, you can exit and unmount the resources you previously mounted:
$ exit
$ sudo umount dev/pts dev proc
=== Localization ===
See [[Localization]]
=== TODO ===
* Discuss where people look to pick up issues (clear answer is the bugtracker, but still)
* How people can make changes and how to send them in
a45e58be41f86bad5a4f7d087b1178ca0cada418
User:Retr0
2
191
1287
2022-05-12T15:48:26Z
Retr0
55
Created page with "<div style="float: right;"> {{User_GitLab|retr0_0}} {{User_main_device|Xiaomi Mi A3 (xiaomi-laurel_sprout)}} </div>"
wikitext
text/x-wiki
<div style="float: right;">
{{User_GitLab|retr0_0}}
{{User_main_device|Xiaomi Mi A3 (xiaomi-laurel_sprout)}}
</div>
ba734b8d4a3aa9eab12b79754b5129c369e55197
1288
1287
2022-05-12T15:49:01Z
Retr0
55
Blanked the page
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
User:Wizzup/HeadlessWifi
2
192
1289
2022-05-17T21:28:51Z
Wizzup
4
Created page with "Sometimes one might need to set up wifi over serial when there is no touchscreen or display. This is an example on how to do it. Make sure that the wlan_ssid and name match,..."
wikitext
text/x-wiki
Sometimes one might need to set up wifi over serial when there is no touchscreen or display.
This is an example on how to do it. Make sure that the wlan_ssid and name match, of course.
<pre>
gconftool -s /system/osso/connectivity/IAP/ac257b8f-5255-4239-9123-6dfac56547c8/EAP_wpa_preshared_passphrase -t string PSKHERE
gconftool -s /system/osso/connectivity/IAP/ac257b8f-5255-4239-9123-6dfac56547c8/type -t string WLAN_INFRA
gconftool -t bool -s /system/osso/connectivity/IAP/ac257b8f-5255-4239-9123-6dfac56547c8/wlan_hidden false
gconftool -t string -s /system/osso/connectivity/IAP/ac257b8f-5255-4239-9123-6dfac56547c8/wlan_security WPA_PSK
gconftool -t string -s /system/osso/connectivity/IAP/ac257b8f-5255-4239-9123-6dfac56547c8/proxytype NONE
gconftool -t string -s /system/osso/connectivity/IAP/ac257b8f-5255-4239-9123-6dfac56547c8/name 'Het Kleine Bos'
gconftool -t string -s /system/osso/connectivity/IAP/ac257b8f-5255-4239-9123-6dfac56547c8/ipv4_type auto
gconftool -t list --list-type int -s /system/osso/connectivity/IAP/ac257b8f-5255-4239-9123-6dfac56547c8/wlan_ssid '[72,101,116,32,75,108,101,105,110,101,32,66,111,115]'
gconftool -t list --list-type string -s /system/osso/connectivity/network_type '[WLAN_INFRA]'
gconftool -t int -s /system/osso/connectivity/search_interval 300
dbus-send --system --type=method_call --dest=com.nokia.icd /com/nokia/icd com.nokia.icd.connect string:"ac257b8f-5255-4239-9123-6dfac56547c8" uint32:0
</pre>
cde3bbbd07b74a26e329d3a49c021b836bd309ce
User:BuZz
2
193
1290
2022-05-19T13:45:56Z
BuZz
32
Created page with "hi, i'm a founding [https://nurdspace.nl NURDspace] member. Been messing with maemo a bit on my collection of OMAP devices (770,n800,n810,n900) never really used it as daily..."
wikitext
text/x-wiki
hi, i'm a founding [https://nurdspace.nl NURDspace] member.
Been messing with maemo a bit on my collection of OMAP devices (770,n800,n810,n900) never really used it as daily driver. Also been using devuan since inception.
Also bunch of other stuff, i guess.
Since leste exists i've been messing around with it on a droid4 , been carrying it as daily driver since early 2022 now.
84fcea7b871874ced896fb52ecebbd68132af6a1
1292
1290
2022-05-19T13:50:53Z
BuZz
32
wikitext
text/x-wiki
hi, i'm a founding [https://nurdspace.nl NURDspace] member.
Been messing with maemo a bit on my collection of OMAP devices (770,n800,n810,n900) never really used it as daily driver. Also been using devuan since inception.
Also bunch of other stuff, i guess.
Since leste exists i've been messing around with it on a droid4 , been carrying it as daily driver since early 2022 now.
Careful, i got [[User:BuZz/Opinions|opinions]]
cd099499d9704b6e6c052b24b3c95b4dfeafc727
User:BuZz/Opinions
2
194
1291
2022-05-19T13:50:18Z
BuZz
32
Created page with "== virtual keyboard == (while using a pinephone) Why do we have to blur the rest of screen in portrait? Maybe we can keep it unblurred there, resize main window and keep keyb..."
wikitext
text/x-wiki
== virtual keyboard ==
(while using a pinephone) Why do we have to blur the rest of screen in portrait? Maybe we can keep it unblurred there, resize main window and keep keyboard window open while using?
== QTWebBrowser ==
I reaaaally want to be able to zoom -out- from 100% , not just in.
* https://github.com/qtproject/qt-apps-qtwebbrowser
== My dataconnection issues ==
Every time i restart icd2 , i see my datasim connection once. I can tap it, and it will connect but not according to UI , i need to press 'No' on the popup for retry, and execute udhcpc -i wwan3 myself. Then its stable for -ages-.
Opening application manager breaks the connection.
Also reopening icd2 'internet connections' breaks the connection. (from statusbar, not from settings app)
c9da0e3f96277c3633a1aef9ed5258b581b4a81a
1293
1291
2022-05-19T13:54:57Z
BuZz
32
/* My dataconnection issues */
wikitext
text/x-wiki
== virtual keyboard ==
(while using a pinephone) Why do we have to blur the rest of screen in portrait? Maybe we can keep it unblurred there, resize main window and keep keyboard window open while using?
== QTWebBrowser ==
I reaaaally want to be able to zoom -out- from 100% , not just in.
* https://github.com/qtproject/qt-apps-qtwebbrowser
== My dataconnection issues ==
(on a droid4 running latest -devel)
Every time i restart icd2 , i see my datasim connection once. I can tap it, and it will connect but not according to UI , i need to press 'No' on the popup for retry, and execute udhcpc -i wwan3 myself. Then its stable for -ages-.
Opening application manager breaks the connection.
Also reopening icd2 'internet connections' breaks the connection. (from statusbar, not from settings app)
12c5d3bc88c85fb050a5cc863be3841c5c55697b
PinePhone
0
93
1296
1273
2022-06-26T19:45:36Z
Rafael2k
54
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
The first Pinephone (braveheart) phone
== Notes ==
''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] '''
''' What you can do with the 20220206 image:'''
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
''' TODO mention/link to:'''
* USB peripheral support
* Camera UI
* Bluetooth UI
''' Note that: '''
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
*
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A ||
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone is currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel Works with ofono; Calls work with sphone as UI
|-
| Accelerometer || Yes || Quectel EG25 has support for VoLTE, but some extra setting might be needed
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|}
== Installation ==
(Work in Progress)
Currently:
* .img.xz does not match .img.sha
* working out how to install .tar.gz
Unlike most phones, it's pretty simple.
Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity:
$ cat maemo-leste-*-arm64-pinephone-*.img.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
or
$ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz
Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help.
=== SD Card Installation ===
==== Prepare the SD card ====
Format the SD card as ext4 using any of your preferred tools.
====if you downloaded the .img.xz====
extract the image:
$ cp maemo-leste-*-arm64-pinephone-*.img.xz /path/to/sd-card
$ cd /path/to/sd-card
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.img.xz
dd the image to an SD-Card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to.
In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion.
$ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img of=/dev/sdX conv=fsync
Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo.
====if you downloaded the .tar.gz====
This might work?
$ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card
$ cd /path/to/image/
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz
Then insert SD card, replace the back cover, and turn it on.
These steps should work in theory, but at the moment the image is unbootable.
=== eMMC Installation ===
==== Extract the image ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
==== Modify the image to use eMMC paths ====
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img.xz
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install image to eMMC ====
Refer to the [https://wiki.pine64.org/index.php/PinePhone_Software_Release#Installation_to_eMMC_.28Optional.29 Pine64 Wiki].
[[Category:Device]]
9078a0cfed0c3dee9bb83e56817edf1539e09cc7
1297
1296
2022-06-26T19:48:39Z
Rafael2k
54
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
The first Pinephone (braveheart) phone
== Notes ==
''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] '''
''' What you can do with the 20220206 image:'''
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
''' TODO mention/link to:'''
* USB peripheral support
* Camera UI
* Bluetooth UI
''' Note that: '''
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
*
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A ||
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone is currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has support for VoLTE, no userland required, setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|}
== Installation ==
(Work in Progress)
Currently:
* .img.xz does not match .img.sha
* working out how to install .tar.gz
Unlike most phones, it's pretty simple.
Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity:
$ cat maemo-leste-*-arm64-pinephone-*.img.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
or
$ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz
Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help.
=== SD Card Installation ===
==== Prepare the SD card ====
Format the SD card as ext4 using any of your preferred tools.
====if you downloaded the .img.xz====
extract the image:
$ cp maemo-leste-*-arm64-pinephone-*.img.xz /path/to/sd-card
$ cd /path/to/sd-card
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.img.xz
dd the image to an SD-Card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to.
In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion.
$ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img of=/dev/sdX conv=fsync
Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo.
====if you downloaded the .tar.gz====
This might work?
$ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card
$ cd /path/to/image/
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz
Then insert SD card, replace the back cover, and turn it on.
These steps should work in theory, but at the moment the image is unbootable.
=== eMMC Installation ===
==== Extract the image ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
==== Modify the image to use eMMC paths ====
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img.xz
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install image to eMMC ====
Refer to the [https://wiki.pine64.org/index.php/PinePhone_Software_Release#Installation_to_eMMC_.28Optional.29 Pine64 Wiki].
[[Category:Device]]
72c59c9e76499352c1f3021aad8810fca823c23a
1298
1297
2022-06-26T19:50:05Z
Rafael2k
54
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
The first Pinephone (braveheart) phone
== Notes ==
''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] '''
''' What you can do with the 20220206 image:'''
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
''' TODO mention/link to:'''
* USB peripheral support
* Camera UI
* Bluetooth UI
''' Note that: '''
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
*
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone is currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|}
== Installation ==
(Work in Progress)
Currently:
* .img.xz does not match .img.sha
* working out how to install .tar.gz
Unlike most phones, it's pretty simple.
Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity:
$ cat maemo-leste-*-arm64-pinephone-*.img.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
or
$ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz
Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help.
=== SD Card Installation ===
==== Prepare the SD card ====
Format the SD card as ext4 using any of your preferred tools.
====if you downloaded the .img.xz====
extract the image:
$ cp maemo-leste-*-arm64-pinephone-*.img.xz /path/to/sd-card
$ cd /path/to/sd-card
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.img.xz
dd the image to an SD-Card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to.
In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion.
$ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img of=/dev/sdX conv=fsync
Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo.
====if you downloaded the .tar.gz====
This might work?
$ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card
$ cd /path/to/image/
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz
Then insert SD card, replace the back cover, and turn it on.
These steps should work in theory, but at the moment the image is unbootable.
=== eMMC Installation ===
==== Extract the image ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
==== Modify the image to use eMMC paths ====
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img.xz
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install image to eMMC ====
Refer to the [https://wiki.pine64.org/index.php/PinePhone_Software_Release#Installation_to_eMMC_.28Optional.29 Pine64 Wiki].
[[Category:Device]]
2dd3255b8baa7dc1a0ba42b38c123d5ff306bd4e
1299
1298
2022-07-04T14:20:06Z
Rafael2k
54
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
The first Pinephone (braveheart) phone
== Notes ==
''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] '''
''' What you can do with the 20220206 image:'''
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
''' Note that: '''
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
*
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
== Installation ==
(Work in Progress)
Currently:
* .img.xz does not match .img.sha
* working out how to install .tar.gz
Unlike most phones, it's pretty simple.
Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity:
$ cat maemo-leste-*-arm64-pinephone-*.img.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
or
$ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz
Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help.
=== SD Card Installation ===
==== Prepare the SD card ====
Format the SD card as ext4 using any of your preferred tools.
====if you downloaded the .img.xz====
extract the image:
$ cp maemo-leste-*-arm64-pinephone-*.img.xz /path/to/sd-card
$ cd /path/to/sd-card
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.img.xz
dd the image to an SD-Card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to.
In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion.
$ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img of=/dev/sdX conv=fsync
Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo.
====if you downloaded the .tar.gz====
This might work?
$ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card
$ cd /path/to/image/
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz
Then insert SD card, replace the back cover, and turn it on.
These steps should work in theory, but at the moment the image is unbootable.
=== eMMC Installation ===
==== Extract the image ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
==== Modify the image to use eMMC paths ====
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img.xz
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install image to eMMC ====
Refer to the [https://wiki.pine64.org/index.php/PinePhone_Software_Release#Installation_to_eMMC_.28Optional.29 Pine64 Wiki].
[[Category:Device]]
d21e715e5e3a47834703c50cfb607f35f3663d28
1300
1299
2022-07-04T19:04:36Z
Rafael2k
54
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
The first Pinephone (braveheart) phone
== Notes ==
''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] '''
''' What you can do with the 20220206 image:'''
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
''' Note that: '''
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
*
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
== Installation ==
(Work in Progress)
Currently:
* .img.xz does not match .img.sha
* working out how to install .tar.gz
Unlike most phones, it's pretty simple.
Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity:
$ cat maemo-leste-*-arm64-pinephone-*.img.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
or
$ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz
Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help.
=== SD Card Installation ===
==== Prepare the SD card ====
Format the SD card as ext4 using any of your preferred tools.
====if you downloaded the .img.xz====
extract the image:
$ cp maemo-leste-*-arm64-pinephone-*.img.xz /path/to/sd-card
$ cd /path/to/sd-card
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.img.xz
dd the image to an SD-Card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to.
In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion.
$ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img of=/dev/sdX conv=fsync
Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo.
====if you downloaded the .tar.gz====
This might work?
$ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card
$ cd /path/to/image/
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz
Then insert SD card, replace the back cover, and turn it on.
These steps should work in theory, but at the moment the image is unbootable.
=== eMMC Installation ===
==== Extract the image ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
==== Modify the image to use eMMC paths ====
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img.xz
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install image to eMMC ====
Refer to the [https://wiki.pine64.org/index.php/PinePhone_Software_Release#Installation_to_eMMC_.28Optional.29 Pine64 Wiki].
=== How to take a picture ===
Maemo userland to take a picture is not ready yet.
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
To capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
To capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin $converted_picture.jpeg
[[Category:Device]]
437df0c33edba51794f3e3684fc71a496ebb3e52
1301
1300
2022-07-04T19:07:24Z
Rafael2k
54
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
The first Pinephone (braveheart) phone
== Notes ==
''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] '''
''' What you can do with the 20220206 image:'''
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
''' Note that: '''
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
*
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
== Installation ==
(Work in Progress)
Currently:
* .img.xz does not match .img.sha
* working out how to install .tar.gz
Unlike most phones, it's pretty simple.
Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity:
$ cat maemo-leste-*-arm64-pinephone-*.img.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
or
$ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz
Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help.
=== SD Card Installation ===
==== Prepare the SD card ====
Format the SD card as ext4 using any of your preferred tools.
====if you downloaded the .img.xz====
extract the image:
$ cp maemo-leste-*-arm64-pinephone-*.img.xz /path/to/sd-card
$ cd /path/to/sd-card
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.img.xz
dd the image to an SD-Card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to.
In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion.
$ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img of=/dev/sdX conv=fsync
Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo.
====if you downloaded the .tar.gz====
This might work?
$ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card
$ cd /path/to/image/
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz
Then insert SD card, replace the back cover, and turn it on.
These steps should work in theory, but at the moment the image is unbootable.
=== eMMC Installation ===
==== Extract the image ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
==== Modify the image to use eMMC paths ====
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img.xz
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install image to eMMC ====
Refer to the [https://wiki.pine64.org/index.php/PinePhone_Software_Release#Installation_to_eMMC_.28Optional.29 Pine64 Wiki].
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet.
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with:
$ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb
[[Category:Device]]
ccfe49b681d3bcf86c355f40f694417de5157f9f
1302
1301
2022-07-04T19:09:33Z
Rafael2k
54
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
The first Pinephone (braveheart) phone
== Notes ==
''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] '''
''' What you can do with the 20220206 image:'''
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
== Installation ==
(Work in Progress)
Currently:
* .img.xz does not match .img.sha
* working out how to install .tar.gz
Unlike most phones, it's pretty simple.
Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity:
$ cat maemo-leste-*-arm64-pinephone-*.img.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
or
$ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz
Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help.
=== SD Card Installation ===
==== Prepare the SD card ====
Format the SD card as ext4 using any of your preferred tools.
====if you downloaded the .img.xz====
extract the image:
$ cp maemo-leste-*-arm64-pinephone-*.img.xz /path/to/sd-card
$ cd /path/to/sd-card
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.img.xz
dd the image to an SD-Card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to.
In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion.
$ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img of=/dev/sdX conv=fsync
Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo.
====if you downloaded the .tar.gz====
This might work?
$ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card
$ cd /path/to/image/
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz
Then insert SD card, replace the back cover, and turn it on.
These steps should work in theory, but at the moment the image is unbootable.
=== eMMC Installation ===
==== Extract the image ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
==== Modify the image to use eMMC paths ====
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img.xz
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install image to eMMC ====
Refer to the [https://wiki.pine64.org/index.php/PinePhone_Software_Release#Installation_to_eMMC_.28Optional.29 Pine64 Wiki].
== More Information ==
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
*
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet.
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with:
$ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb
[[Category:Device]]
f6e69319b50096259dcf30d303b159750da9e2eb
1303
1302
2022-07-05T20:04:12Z
Rafael2k
54
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
The first Pinephone (braveheart) phone
== Notes ==
''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] '''
''' What you can do with the 20220206 image:'''
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
== Installation ==
(Work in Progress)
Currently:
* .img.xz does not match .img.sha
* working out how to install .tar.gz
Unlike most phones, it's pretty simple.
Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity:
$ cat maemo-leste-*-arm64-pinephone-*.img.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
or
$ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz
Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help.
=== SD Card Installation ===
==== Prepare the SD card ====
Format the SD card as ext4 using any of your preferred tools.
====if you downloaded the .img.xz====
extract the image:
$ cp maemo-leste-*-arm64-pinephone-*.img.xz /path/to/sd-card
$ cd /path/to/sd-card
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.img.xz
dd the image to an SD-Card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to.
In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion.
$ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img of=/dev/sdX conv=fsync
Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo.
====if you downloaded the .tar.gz====
This might work?
$ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card
$ cd /path/to/image/
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz
Then insert SD card, replace the back cover, and turn it on.
These steps should work in theory, but at the moment the image is unbootable.
=== eMMC Installation ===
==== Extract the image ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
==== Modify the image to use eMMC paths ====
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img.xz
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install image to eMMC ====
Refer to the [https://wiki.pine64.org/index.php/PinePhone_Software_Release#Installation_to_eMMC_.28Optional.29 Pine64 Wiki].
== More Information ==
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
*
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet.
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with:
$ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion
[[Category:Device]]
b7da54122967fff71ed2caa96d655490da660ff0
1304
1303
2022-07-06T19:40:37Z
Rafael2k
54
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
The first Pinephone (braveheart) phone
== Notes ==
''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] '''
''' What you can do with the 20220206 image:'''
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
== Installation ==
(Work in Progress)
Currently:
* .img.xz does not match .img.sha
* working out how to install .tar.gz
Unlike most phones, it's pretty simple.
Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity:
$ cat maemo-leste-*-arm64-pinephone-*.img.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
or
$ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz
Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help.
=== SD Card Installation ===
==== Prepare the SD card ====
Format the SD card as ext4 using any of your preferred tools.
====if you downloaded the .img.xz====
extract the image:
$ cp maemo-leste-*-arm64-pinephone-*.img.xz /path/to/sd-card
$ cd /path/to/sd-card
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.img.xz
dd the image to an SD-Card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to.
In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion.
$ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img of=/dev/sdX conv=fsync
Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo.
====if you downloaded the .tar.gz====
This might work?
$ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card
$ cd /path/to/image/
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz
Then insert SD card, replace the back cover, and turn it on.
These steps should work in theory, but at the moment the image is unbootable.
=== eMMC Installation ===
==== Extract the image ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
==== Modify the image to use eMMC paths ====
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img.xz
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install image to eMMC ====
Refer to the [https://wiki.pine64.org/index.php/PinePhone_Software_Release#Installation_to_eMMC_.28Optional.29 Pine64 Wiki].
== More Information ==
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
*
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet.
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with:
$ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
[[Category:Device]]
ced7a1a006bb543c703b39276e85af83092c1480
1305
1304
2022-07-06T19:56:30Z
Rafael2k
54
/* Enabling Flash Light / Torch */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
The first Pinephone (braveheart) phone
== Notes ==
''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] '''
''' What you can do with the 20220206 image:'''
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
== Installation ==
(Work in Progress)
Currently:
* .img.xz does not match .img.sha
* working out how to install .tar.gz
Unlike most phones, it's pretty simple.
Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity:
$ cat maemo-leste-*-arm64-pinephone-*.img.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
or
$ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz
Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help.
=== SD Card Installation ===
==== Prepare the SD card ====
Format the SD card as ext4 using any of your preferred tools.
====if you downloaded the .img.xz====
extract the image:
$ cp maemo-leste-*-arm64-pinephone-*.img.xz /path/to/sd-card
$ cd /path/to/sd-card
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.img.xz
dd the image to an SD-Card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to.
In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion.
$ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img of=/dev/sdX conv=fsync
Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo.
====if you downloaded the .tar.gz====
This might work?
$ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card
$ cd /path/to/image/
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz
Then insert SD card, replace the back cover, and turn it on.
These steps should work in theory, but at the moment the image is unbootable.
=== eMMC Installation ===
==== Extract the image ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
==== Modify the image to use eMMC paths ====
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img.xz
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install image to eMMC ====
Refer to the [https://wiki.pine64.org/index.php/PinePhone_Software_Release#Installation_to_eMMC_.28Optional.29 Pine64 Wiki].
== More Information ==
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
*
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet.
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with:
$ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
[[Category:Device]]
21767fe8bdc1d4cae7b65e198e3bdcf66d1ff73d
1309
1305
2022-08-15T17:26:25Z
Auanta
57
warning that boot.txt has been removed and as such the instructions need to be updated
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
The first Pinephone (braveheart) phone
== Notes ==
''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] '''
''' What you can do with the 20220206 image:'''
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
== Installation ==
(Work in Progress)
Currently:
* .img.xz does not match .img.sha
* working out how to install .tar.gz
Unlike most phones, it's pretty simple.
Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity:
$ cat maemo-leste-*-arm64-pinephone-*.img.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
or
$ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz
Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help.
=== SD Card Installation ===
==== Prepare the SD card ====
Format the SD card as ext4 using any of your preferred tools.
====if you downloaded the .img.xz====
extract the image:
$ cp maemo-leste-*-arm64-pinephone-*.img.xz /path/to/sd-card
$ cd /path/to/sd-card
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.img.xz
dd the image to an SD-Card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to.
In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion.
$ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img of=/dev/sdX conv=fsync
Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo.
====if you downloaded the .tar.gz====
This might work?
$ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card
$ cd /path/to/image/
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz
Then insert SD card, replace the back cover, and turn it on.
These steps should work in theory, but at the moment the image is unbootable.
=== eMMC Installation ===
'''''Warning, this no longer works in latest images since boot.txt was removed. Please improve this section.'''''
==== Extract the image ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
==== Modify the image to use eMMC paths ====
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img.xz
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install image to eMMC ====
Refer to the [https://wiki.pine64.org/index.php/PinePhone_Software_Release#Installation_to_eMMC_.28Optional.29 Pine64 Wiki].
== More Information ==
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
*
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet.
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with:
$ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
[[Category:Device]]
91fdd7e7d4635f702afe383124b10b6f0f3742ec
1310
1309
2022-08-15T17:32:55Z
Auanta
57
/* Modify the image to use eMMC paths */ fdisk -u -l only works with the .img file not .img.xz having tried this myself
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
The first Pinephone (braveheart) phone
== Notes ==
''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] '''
''' What you can do with the 20220206 image:'''
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
== Installation ==
(Work in Progress)
Currently:
* .img.xz does not match .img.sha
* working out how to install .tar.gz
Unlike most phones, it's pretty simple.
Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity:
$ cat maemo-leste-*-arm64-pinephone-*.img.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
or
$ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz
Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help.
=== SD Card Installation ===
==== Prepare the SD card ====
Format the SD card as ext4 using any of your preferred tools.
====if you downloaded the .img.xz====
extract the image:
$ cp maemo-leste-*-arm64-pinephone-*.img.xz /path/to/sd-card
$ cd /path/to/sd-card
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.img.xz
dd the image to an SD-Card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to.
In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion.
$ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img of=/dev/sdX conv=fsync
Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo.
====if you downloaded the .tar.gz====
This might work?
$ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card
$ cd /path/to/image/
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz
Then insert SD card, replace the back cover, and turn it on.
These steps should work in theory, but at the moment the image is unbootable.
=== eMMC Installation ===
'''''Warning, this no longer works in latest images since boot.txt was removed. Please improve this section.'''''
==== Extract the image ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
==== Modify the image to use eMMC paths ====
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install image to eMMC ====
Refer to the [https://wiki.pine64.org/index.php/PinePhone_Software_Release#Installation_to_eMMC_.28Optional.29 Pine64 Wiki].
== More Information ==
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
*
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet.
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with:
$ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
[[Category:Device]]
e0360f311a07bc00b0341c9453d2c8c85a6b40b6
1311
1310
2022-08-15T18:19:39Z
Auanta
57
/* Installation */ currently the latest images do indeed match the sha
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
The first Pinephone (braveheart) phone
== Notes ==
''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] '''
''' What you can do with the 20220206 image:'''
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
== Installation ==
(Work in Progress)
Currently:
* working out how to install .tar.gz
Unlike most phones, it's pretty simple.
Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity:
$ cat maemo-leste-*-arm64-pinephone-*.img.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
or
$ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz
Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help.
=== SD Card Installation ===
==== Prepare the SD card ====
Format the SD card as ext4 using any of your preferred tools.
====if you downloaded the .img.xz====
extract the image:
$ cp maemo-leste-*-arm64-pinephone-*.img.xz /path/to/sd-card
$ cd /path/to/sd-card
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.img.xz
dd the image to an SD-Card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to.
In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion.
$ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img of=/dev/sdX conv=fsync
Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo.
====if you downloaded the .tar.gz====
This might work?
$ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card
$ cd /path/to/image/
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz
Then insert SD card, replace the back cover, and turn it on.
These steps should work in theory, but at the moment the image is unbootable.
=== eMMC Installation ===
'''''Warning, this no longer works in latest images since boot.txt was removed. Please improve this section.'''''
==== Extract the image ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
==== Modify the image to use eMMC paths ====
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install image to eMMC ====
Refer to the [https://wiki.pine64.org/index.php/PinePhone_Software_Release#Installation_to_eMMC_.28Optional.29 Pine64 Wiki].
== More Information ==
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
*
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet.
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with:
$ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
[[Category:Device]]
2c623aeea5e59b937d9024071520a43988727079
1312
1311
2022-08-15T19:52:42Z
Auanta
57
/* Install image to eMMC */ the link was broken. I have migrated the necessary content to this wiki and fixed the link.
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
The first Pinephone (braveheart) phone
== Notes ==
''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] '''
''' What you can do with the 20220206 image:'''
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
== Installation ==
(Work in Progress)
Currently:
* working out how to install .tar.gz
Unlike most phones, it's pretty simple.
Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity:
$ cat maemo-leste-*-arm64-pinephone-*.img.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
or
$ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz
Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help.
=== SD Card Installation ===
==== Prepare the SD card ====
Format the SD card as ext4 using any of your preferred tools.
====if you downloaded the .img.xz====
extract the image:
$ cp maemo-leste-*-arm64-pinephone-*.img.xz /path/to/sd-card
$ cd /path/to/sd-card
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.img.xz
dd the image to an SD-Card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to.
In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion.
$ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img of=/dev/sdX conv=fsync
Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo.
====if you downloaded the .tar.gz====
This might work?
$ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card
$ cd /path/to/image/
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz
Then insert SD card, replace the back cover, and turn it on.
These steps should work in theory, but at the moment the image is unbootable.
=== eMMC Installation ===
'''''Warning, this no longer works in latest images since boot.txt was removed. Please improve this section.'''''
==== Extract the image ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
==== Modify the image to use eMMC paths ====
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install image to eMMC ====
''Note: Currently not working, needs testing''
'''From the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]:'''
=== Using Tow-Boot ===
If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode.
The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc.
=== Using JumpDrive ===
You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.
The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card.
[https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.]
=== From the booted microSD ===
# Flash Maemo Leste to the microSD card
# Insert microSD card and boot the phone
# Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download.
# Extract the image file so that it only ends in ".img"
# Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct.
# Turn off phone, remove microSD card and then turn on the phone.
== More Information ==
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
*
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet.
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with:
$ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
[[Category:Device]]
747eaaae6bedbd9c1cfb1c05852d3955f53fa65e
1313
1312
2022-08-15T20:08:35Z
Auanta
57
defining for which PinePhone this applies
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro.
== Notes ==
''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] '''
''' What you can do with the 20220206 image:'''
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
== Installation ==
(Work in Progress)
Currently:
* working out how to install .tar.gz
Unlike most phones, it's pretty simple.
Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity:
$ cat maemo-leste-*-arm64-pinephone-*.img.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
or
$ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz
Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help.
=== SD Card Installation ===
==== Prepare the SD card ====
Format the SD card as ext4 using any of your preferred tools.
====if you downloaded the .img.xz====
extract the image:
$ cp maemo-leste-*-arm64-pinephone-*.img.xz /path/to/sd-card
$ cd /path/to/sd-card
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.img.xz
dd the image to an SD-Card. If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to.
In a terminal window, use the command below, making sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the hard drive if you provide the wrong device name. Make sure the device name is the name as described above, with no partition numbers. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar. Don't copy and paste this command, type it out and use TAB completion.
$ dd bs=4M if=maemo-leste-*-arm64-pinephone-*.img of=/dev/sdX conv=fsync
Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo.
====if you downloaded the .tar.gz====
This might work?
$ cp maemo-leste-*-arm64-pinephone-*.tar.gz /path/to/sd-card
$ cd /path/to/image/
$ tar --extract -f maemo-leste-*-arm64-pinephone-*.tar.gz
Then insert SD card, replace the back cover, and turn it on.
These steps should work in theory, but at the moment the image is unbootable.
=== eMMC Installation ===
'''''Warning, this no longer works in latest images since boot.txt was removed. Please improve this section.'''''
==== Extract the image ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
==== Modify the image to use eMMC paths ====
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install image to eMMC ====
''Note: Currently not working, needs testing''
'''From the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]:'''
=== Using Tow-Boot ===
If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode.
The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc.
=== Using JumpDrive ===
You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.
The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card.
[https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.]
=== From the booted microSD ===
# Flash Maemo Leste to the microSD card
# Insert microSD card and boot the phone
# Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download.
# Extract the image file so that it only ends in ".img"
# Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct.
# Turn off phone, remove microSD card and then turn on the phone.
== More Information ==
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
*
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet.
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with:
$ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
[[Category:Device]]
90c0da86323c8bfbe88c32f159defeae79f82535
1314
1313
2022-08-15T20:10:32Z
Auanta
57
/* SD Card Installation */ now with improved instructions! removed the tar.gz section that does not exist anymore!
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro.
== Notes ==
''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] '''
''' What you can do with the 20220206 image:'''
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
== Installation ==
(Work in Progress)
Currently:
* working out how to install .tar.gz
Unlike most phones, it's pretty simple.
Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity:
$ cat maemo-leste-*-arm64-pinephone-*.img.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
or
$ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz
Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help.
=== SD Card Installation ===
==== Prepare the SD card ====
# Create a new msdos partition table using fdisk
$ sudo fdisk /dev/''SDCARD''
press 'p' to view current table
press 'o' to erase and make a new table
press 'w' to write changes and quit
====if you downloaded the .img.xz====
# Write the image to an SD-Card. Be very careful with this step (read warnings below).
$ unxz maemo-leste-*-arm64-pinephone-*.img.xz
$ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync
Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo.
<small>If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to.</small>
<small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small>
<small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small>
=== eMMC Installation ===
'''''Warning, this no longer works in latest images since boot.txt was removed. Please improve this section.'''''
==== Extract the image ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
==== Modify the image to use eMMC paths ====
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install image to eMMC ====
''Note: Currently not working, needs testing''
'''From the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]:'''
=== Using Tow-Boot ===
If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode.
The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc.
=== Using JumpDrive ===
You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.
The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card.
[https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.]
=== From the booted microSD ===
# Flash Maemo Leste to the microSD card
# Insert microSD card and boot the phone
# Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download.
# Extract the image file so that it only ends in ".img"
# Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct.
# Turn off phone, remove microSD card and then turn on the phone.
== More Information ==
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
*
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet.
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with:
$ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
[[Category:Device]]
7167ddc18ff353ffc9cc583dd72da444e8e92aa5
1315
1314
2022-08-15T20:12:44Z
Auanta
57
/* if you downloaded the .img.xz */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro.
== Notes ==
''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] '''
''' What you can do with the 20220206 image:'''
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
== Installation ==
(Work in Progress)
Currently:
* working out how to install .tar.gz
Unlike most phones, it's pretty simple.
Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity:
$ cat maemo-leste-*-arm64-pinephone-*.img.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
or
$ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz
Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help.
=== SD Card Installation ===
==== Prepare the SD card ====
# Create a new msdos partition table using fdisk
$ sudo fdisk /dev/''SDCARD''
press 'p' to view current table
press 'o' to erase and make a new table
press 'w' to write changes and quit
==== Write the image to an SD-Card. ====
$ Download the latest image from [https://maedevu.maemo.org/images/pinephone/ here].
$ unxz maemo-leste-*-arm64-pinephone-*.img.xz
''Be very careful with this step (read warnings below).''
$ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync
Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo.
<small>If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to.</small>
<small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small>
<small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small>
=== eMMC Installation ===
'''''Warning, this no longer works in latest images since boot.txt was removed. Please improve this section.'''''
==== Extract the image ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
==== Modify the image to use eMMC paths ====
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install image to eMMC ====
''Note: Currently not working, needs testing''
'''From the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]:'''
=== Using Tow-Boot ===
If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode.
The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc.
=== Using JumpDrive ===
You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.
The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card.
[https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.]
=== From the booted microSD ===
# Flash Maemo Leste to the microSD card
# Insert microSD card and boot the phone
# Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download.
# Extract the image file so that it only ends in ".img"
# Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct.
# Turn off phone, remove microSD card and then turn on the phone.
== More Information ==
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
*
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet.
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with:
$ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
[[Category:Device]]
fd5c5c885bf349587fa3566015fc58c1c48a69b9
1316
1315
2022-08-15T20:13:33Z
Auanta
57
/* Write the image to an SD-Card. */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro.
== Notes ==
''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] '''
''' What you can do with the 20220206 image:'''
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
== Installation ==
(Work in Progress)
Currently:
* working out how to install .tar.gz
Unlike most phones, it's pretty simple.
Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity:
$ cat maemo-leste-*-arm64-pinephone-*.img.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
or
$ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz
Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help.
=== SD Card Installation ===
==== Prepare the SD card ====
# Create a new msdos partition table using fdisk
$ sudo fdisk /dev/''SDCARD''
press 'p' to view current table
press 'o' to erase and make a new table
press 'w' to write changes and quit
==== Write the image to an SD-Card. ====
# Download the latest image from [https://maedevu.maemo.org/images/pinephone/ here].
$ unxz maemo-leste-*-arm64-pinephone-*.img.xz
''Be very careful with this step (read warnings below).''
$ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync
Please note that block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Also note that if you are not logged in as root you will need to prefix this with sudo.
<small>If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to.</small>
<small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small>
<small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small>
=== eMMC Installation ===
'''''Warning, this no longer works in latest images since boot.txt was removed. Please improve this section.'''''
==== Extract the image ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
==== Modify the image to use eMMC paths ====
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install image to eMMC ====
''Note: Currently not working, needs testing''
'''From the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]:'''
=== Using Tow-Boot ===
If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode.
The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc.
=== Using JumpDrive ===
You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.
The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card.
[https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.]
=== From the booted microSD ===
# Flash Maemo Leste to the microSD card
# Insert microSD card and boot the phone
# Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download.
# Extract the image file so that it only ends in ".img"
# Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct.
# Turn off phone, remove microSD card and then turn on the phone.
== More Information ==
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
*
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet.
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with:
$ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
[[Category:Device]]
f7197cb0799ab25050f7a792dbca6a08a802ff6b
1317
1316
2022-08-15T20:14:54Z
Auanta
57
/* Write the image to an SD-Card. */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro.
== Notes ==
''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] '''
''' What you can do with the 20220206 image:'''
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
== Installation ==
(Work in Progress)
Currently:
* working out how to install .tar.gz
Unlike most phones, it's pretty simple.
Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity:
$ cat maemo-leste-*-arm64-pinephone-*.img.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
or
$ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz
Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help.
=== SD Card Installation ===
==== Prepare the SD card ====
# Create a new msdos partition table using fdisk
$ sudo fdisk /dev/''SDCARD''
press 'p' to view current table
press 'o' to erase and make a new table
press 'w' to write changes and quit
==== Write the image to an SD-Card. ====
# Download the latest image from [https://maedevu.maemo.org/images/pinephone/ here].
$ unxz maemo-leste-*-arm64-pinephone-*.img.xz
''Be very careful with this step (read warnings below).''
$ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync
Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer.
<small>If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to.</small>
<small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small>
<small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small>
=== eMMC Installation ===
'''''Warning, this no longer works in latest images since boot.txt was removed. Please improve this section.'''''
==== Extract the image ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
==== Modify the image to use eMMC paths ====
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install image to eMMC ====
''Note: Currently not working, needs testing''
'''From the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]:'''
=== Using Tow-Boot ===
If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode.
The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc.
=== Using JumpDrive ===
You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.
The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card.
[https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.]
=== From the booted microSD ===
# Flash Maemo Leste to the microSD card
# Insert microSD card and boot the phone
# Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download.
# Extract the image file so that it only ends in ".img"
# Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct.
# Turn off phone, remove microSD card and then turn on the phone.
== More Information ==
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
*
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet.
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with:
$ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
[[Category:Device]]
a9a4d6a784ae592fb8382be2f9b0e3894653752f
1318
1317
2022-08-15T20:15:29Z
Auanta
57
/* SD Card Installation */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro.
== Notes ==
''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] '''
''' What you can do with the 20220206 image:'''
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
== Installation ==
(Work in Progress)
Currently:
* working out how to install .tar.gz
Unlike most phones, it's pretty simple.
Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity:
$ cat maemo-leste-*-arm64-pinephone-*.img.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
or
$ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz
Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help.
=== SD Card Installation ===
==== Prepare the SD card ====
Create a new msdos partition table using fdisk
$ sudo fdisk /dev/''SDCARD''
press 'p' to view current table
press 'o' to erase and make a new table
press 'w' to write changes and quit
==== Write the image to an SD-Card. ====
Download the latest image from [https://maedevu.maemo.org/images/pinephone/ here].
$ unxz maemo-leste-*-arm64-pinephone-*.img.xz
''Be very careful with this step (read warnings below).''
$ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync
Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer.
<small>If using a Windows machine, you can use [https://etcher.io/ Etcher] NOTE: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to.</small>
<small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small>
<small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small>
=== eMMC Installation ===
'''''Warning, this no longer works in latest images since boot.txt was removed. Please improve this section.'''''
==== Extract the image ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
==== Modify the image to use eMMC paths ====
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install image to eMMC ====
''Note: Currently not working, needs testing''
'''From the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]:'''
=== Using Tow-Boot ===
If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode.
The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc.
=== Using JumpDrive ===
You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.
The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card.
[https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.]
=== From the booted microSD ===
# Flash Maemo Leste to the microSD card
# Insert microSD card and boot the phone
# Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download.
# Extract the image file so that it only ends in ".img"
# Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct.
# Turn off phone, remove microSD card and then turn on the phone.
== More Information ==
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
*
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet.
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with:
$ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
[[Category:Device]]
dde77c4b4afcdc7cc9bbed8b913f972da6ec7a11
1319
1318
2022-08-15T20:24:46Z
Auanta
57
/* Write the image to an SD-Card. */ add checksum instructions, formatting
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro.
== Notes ==
''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] '''
''' What you can do with the 20220206 image:'''
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
== Installation ==
(Work in Progress)
Currently:
* working out how to install .tar.gz
Unlike most phones, it's pretty simple.
Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity:
$ cat maemo-leste-*-arm64-pinephone-*.img.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
or
$ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz
Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help.
=== SD Card Installation ===
==== Prepare the SD card ====
Create a new msdos partition table using fdisk
$ sudo fdisk /dev/''SDCARD''
press 'p' to view current table
press 'o' to erase and make a new table
press 'w' to write changes and quit
==== Write the image to an SD-Card. ====
''DO NOT'' copy-paste these instructions.
Download the latest image from [https://maedevu.maemo.org/images/pinephone/ here] and the associated checksum file.
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE''
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE''
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
$ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56
Compare results. If the checksums match, extract the image:
$ unxz maemo-leste-*-arm64-pinephone-*.img.xz
''Be very careful with this step (read warnings below).''
$ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync
Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer.
<small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small>
<small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small>
<small>You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small>
=== eMMC Installation ===
'''''Warning, this no longer works in latest images since boot.txt was removed. Please improve this section.'''''
==== Extract the image ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
==== Modify the image to use eMMC paths ====
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install image to eMMC ====
''Note: Currently not working, needs testing''
'''From the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]:'''
=== Using Tow-Boot ===
If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode.
The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc.
=== Using JumpDrive ===
You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.
The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card.
[https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.]
=== From the booted microSD ===
# Flash Maemo Leste to the microSD card
# Insert microSD card and boot the phone
# Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download.
# Extract the image file so that it only ends in ".img"
# Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct.
# Turn off phone, remove microSD card and then turn on the phone.
== More Information ==
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
*
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet.
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with:
$ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
[[Category:Device]]
45e5f5347398450495c1f6724d62b8f18b765182
1320
1319
2022-08-15T20:29:19Z
Auanta
57
/* Write the image to an SD-Card. */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro.
== Notes ==
''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] '''
''' What you can do with the 20220206 image:'''
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
== Installation ==
(Work in Progress)
Currently:
* working out how to install .tar.gz
Unlike most phones, it's pretty simple.
Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity:
$ cat maemo-leste-*-arm64-pinephone-*.img.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
or
$ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz
Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help.
=== SD Card Installation ===
==== Prepare the SD card ====
Create a new msdos partition table using fdisk
$ sudo fdisk /dev/''SDCARD''
press 'p' to view current table
press 'o' to erase and make a new table
press 'w' to write changes and quit
==== Write the image to an SD-Card. ====
Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here].
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE''
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE''
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
$ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56
Compare results. If the checksums match, extract the image:
$ unxz maemo-leste-*-arm64-pinephone-*.img.xz
Write the image to microSD. '''''Be very careful with this step (read warnings below).'''''
$ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync
Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer.
<small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small>
<small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small>
<small>You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small>
=== eMMC Installation ===
'''''Warning, this no longer works in latest images since boot.txt was removed. Please improve this section.'''''
==== Extract the image ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
==== Modify the image to use eMMC paths ====
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install image to eMMC ====
''Note: Currently not working, needs testing''
'''From the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]:'''
=== Using Tow-Boot ===
If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode.
The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc.
=== Using JumpDrive ===
You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.
The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card.
[https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.]
=== From the booted microSD ===
# Flash Maemo Leste to the microSD card
# Insert microSD card and boot the phone
# Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download.
# Extract the image file so that it only ends in ".img"
# Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct.
# Turn off phone, remove microSD card and then turn on the phone.
== More Information ==
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
*
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet.
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with:
$ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
[[Category:Device]]
380aea18c394b2b3e46168c60ce7442f14dbfa4e
1321
1320
2022-08-15T20:29:57Z
Auanta
57
/* Prepare the SD card */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro.
== Notes ==
''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] '''
''' What you can do with the 20220206 image:'''
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
== Installation ==
(Work in Progress)
Currently:
* working out how to install .tar.gz
Unlike most phones, it's pretty simple.
Download the image and the corresponding <code>.sha</code> file, then verify the image's integrity:
$ cat maemo-leste-*-arm64-pinephone-*.img.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
or
$ cat maemo-leste-*-arm64-pinephone-*.tar.gz.sha
$ sha256sum maemo-leste-*-arm64-pinephone-*.tar.gz
Verify that the number that each command spits out is exactly the same number. If it is not, do not use the image. Try redownloading or ask for help.
=== SD Card Installation ===
==== Prepare the SD card ====
Create a new msdos partition table using fdisk
$ sudo fdisk /dev/''SDCARD''
# press 'p' to view current table
# press 'o' to erase and make a new table
# press 'w' to write changes and quit
==== Write the image to an SD-Card. ====
Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here].
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE''
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE''
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
$ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56
Compare results. If the checksums match, extract the image:
$ unxz maemo-leste-*-arm64-pinephone-*.img.xz
Write the image to microSD. '''''Be very careful with this step (read warnings below).'''''
$ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync
Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer.
<small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small>
<small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small>
<small>You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small>
=== eMMC Installation ===
'''''Warning, this no longer works in latest images since boot.txt was removed. Please improve this section.'''''
==== Extract the image ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
==== Modify the image to use eMMC paths ====
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install image to eMMC ====
''Note: Currently not working, needs testing''
'''From the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]:'''
=== Using Tow-Boot ===
If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode.
The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc.
=== Using JumpDrive ===
You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.
The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card.
[https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.]
=== From the booted microSD ===
# Flash Maemo Leste to the microSD card
# Insert microSD card and boot the phone
# Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download.
# Extract the image file so that it only ends in ".img"
# Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct.
# Turn off phone, remove microSD card and then turn on the phone.
== More Information ==
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
*
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet.
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with:
$ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
[[Category:Device]]
4024109063d3270924bb39dc4f50115f36c9c498
1322
1321
2022-08-15T20:36:26Z
Auanta
57
/* Installation */ trimmed unnecessary cruft at top
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro.
== Notes ==
''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] '''
''' What you can do with the 20220206 image:'''
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
== Installation ==
Unlike most phones, it's pretty simple.
=== SD Card Installation ===
==== Prepare the SD card ====
Create a new msdos partition table using fdisk
$ sudo fdisk /dev/''SDCARD''
# press 'p' to view current table
# press 'o' to erase and make a new table
# press 'w' to write changes and quit
==== Write the image to an SD-Card. ====
Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here].
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE''
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE''
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
$ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56
Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image:
$ unxz maemo-leste-*-arm64-pinephone-*.img.xz
Write the image to microSD. '''''Be very careful with this step (read warnings below).'''''
$ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync
Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer.
<small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small>
<small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small>
<small>You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small>
=== eMMC Installation ===
'''''Warning, this no longer works in latest images since boot.txt was removed. Please improve this section.'''''
==== Extract the image ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
==== Modify the image to use eMMC paths ====
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install image to eMMC ====
''Note: Currently not working, needs testing''
'''From the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]:'''
=== Using Tow-Boot ===
If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode.
The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc.
=== Using JumpDrive ===
You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.
The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card.
[https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.]
=== From the booted microSD ===
# Flash Maemo Leste to the microSD card
# Insert microSD card and boot the phone
# Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download.
# Extract the image file so that it only ends in ".img"
# Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct.
# Turn off phone, remove microSD card and then turn on the phone.
== More Information ==
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
*
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet.
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with:
$ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
[[Category:Device]]
3894f9bdccbb4b628c449aa210132aad78e07243
1323
1322
2022-08-15T20:38:19Z
Auanta
57
/* eMMC Installation */ moved warning
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro.
== Notes ==
''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] '''
''' What you can do with the 20220206 image:'''
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
== Installation ==
Unlike most phones, it's pretty simple.
=== SD Card Installation ===
==== Prepare the SD card ====
Create a new msdos partition table using fdisk
$ sudo fdisk /dev/''SDCARD''
# press 'p' to view current table
# press 'o' to erase and make a new table
# press 'w' to write changes and quit
==== Write the image to an SD-Card. ====
Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here].
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE''
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE''
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
$ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56
Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image:
$ unxz maemo-leste-*-arm64-pinephone-*.img.xz
Write the image to microSD. '''''Be very careful with this step (read warnings below).'''''
$ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync
Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer.
<small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small>
<small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small>
<small>You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small>
=== eMMC Installation ===
==== Extract the image ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
==== Modify the image to use eMMC paths ====
'''''Warning, this no longer works in latest images since boot.txt was removed. Please update this section.'''''
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install image to eMMC ====
''Note: Currently not working, needs testing''
'''From the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]:'''
=== Using Tow-Boot ===
If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode.
The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc.
=== Using JumpDrive ===
You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.
The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card.
[https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.]
=== From the booted microSD ===
# Flash Maemo Leste to the microSD card
# Insert microSD card and boot the phone
# Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download.
# Extract the image file so that it only ends in ".img"
# Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct.
# Turn off phone, remove microSD card and then turn on the phone.
== More Information ==
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
*
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet.
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with:
$ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
[[Category:Device]]
1c4a4c24f07c8a5e801b6a109144c253f1c2d26f
1324
1323
2022-08-15T20:39:50Z
Auanta
57
/* Modify the image to use eMMC paths */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro.
== Notes ==
''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] '''
''' What you can do with the 20220206 image:'''
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
== Installation ==
Unlike most phones, it's pretty simple.
=== SD Card Installation ===
==== Prepare the SD card ====
Create a new msdos partition table using fdisk
$ sudo fdisk /dev/''SDCARD''
# press 'p' to view current table
# press 'o' to erase and make a new table
# press 'w' to write changes and quit
==== Write the image to an SD-Card. ====
Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here].
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE''
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE''
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
$ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56
Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image:
$ unxz maemo-leste-*-arm64-pinephone-*.img.xz
Write the image to microSD. '''''Be very careful with this step (read warnings below).'''''
$ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync
Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer.
<small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small>
<small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small>
<small>You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small>
=== eMMC Installation ===
==== Extract the image ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
==== Modify the image to use eMMC paths ====
'''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.''
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install image to eMMC ====
''Note: Currently not working, needs testing''
'''From the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]:'''
=== Using Tow-Boot ===
If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode.
The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc.
=== Using JumpDrive ===
You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.
The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card.
[https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.]
=== From the booted microSD ===
# Flash Maemo Leste to the microSD card
# Insert microSD card and boot the phone
# Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download.
# Extract the image file so that it only ends in ".img"
# Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct.
# Turn off phone, remove microSD card and then turn on the phone.
== More Information ==
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
*
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet.
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with:
$ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
[[Category:Device]]
cfe60734c4063e56b3911b6918a603b91ccaf4af
1325
1324
2022-08-15T20:40:37Z
Auanta
57
/* Install image to eMMC */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro.
== Notes ==
''' [https://maedevu.maemo.org/images/pinephone/ Testing images repo.] '''
''' What you can do with the 20220206 image:'''
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
== Installation ==
Unlike most phones, it's pretty simple.
=== SD Card Installation ===
==== Prepare the SD card ====
Create a new msdos partition table using fdisk
$ sudo fdisk /dev/''SDCARD''
# press 'p' to view current table
# press 'o' to erase and make a new table
# press 'w' to write changes and quit
==== Write the image to an SD-Card. ====
Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here].
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE''
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE''
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
$ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56
Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image:
$ unxz maemo-leste-*-arm64-pinephone-*.img.xz
Write the image to microSD. '''''Be very careful with this step (read warnings below).'''''
$ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync
Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer.
<small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small>
<small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small>
<small>You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small>
=== eMMC Installation ===
==== Extract the image ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
==== Modify the image to use eMMC paths ====
'''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.''
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install image to eMMC ====
''Note: Currently '''not working'''''
'''From the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]:'''
=== Using Tow-Boot ===
If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode.
The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc.
=== Using JumpDrive ===
You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.
The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card.
[https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.]
=== From the booted microSD ===
# Flash Maemo Leste to the microSD card
# Insert microSD card and boot the phone
# Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download.
# Extract the image file so that it only ends in ".img"
# Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct.
# Turn off phone, remove microSD card and then turn on the phone.
== More Information ==
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
*
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet.
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with:
$ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
[[Category:Device]]
1e5396f9126aa230a8525add962c32596e60f86d
1326
1325
2022-08-15T20:44:06Z
Auanta
57
/* Notes */ moving functionality back to the other section about functionality
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro.
== Notes ==
Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images.] '''
== Status ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
== Installation ==
Unlike most phones, it's pretty simple.
=== SD Card Installation ===
==== Prepare the SD card ====
Create a new msdos partition table using fdisk
$ sudo fdisk /dev/''SDCARD''
# press 'p' to view current table
# press 'o' to erase and make a new table
# press 'w' to write changes and quit
==== Write the image to an SD-Card. ====
Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here].
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE''
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE''
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
$ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56
Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image:
$ unxz maemo-leste-*-arm64-pinephone-*.img.xz
Write the image to microSD. '''''Be very careful with this step (read warnings below).'''''
$ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync
Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer.
<small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small>
<small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small>
<small>You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small>
=== eMMC Installation ===
==== Extract the image ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
==== Modify the image to use eMMC paths ====
'''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.''
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install image to eMMC ====
''Note: Currently '''not working'''''
'''From the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]:'''
=== Using Tow-Boot ===
If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode.
The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc.
=== Using JumpDrive ===
You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.
The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card.
[https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.]
=== From the booted microSD ===
# Flash Maemo Leste to the microSD card
# Insert microSD card and boot the phone
# Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download.
# Extract the image file so that it only ends in ".img"
# Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct.
# Turn off phone, remove microSD card and then turn on the phone.
== More Information ==
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
*
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet.
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with:
$ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
[[Category:Device]]
f9bd014fb8eaa0a703258f380cdc65779173ab1b
1327
1326
2022-08-15T20:47:07Z
Auanta
57
/* Status */ moved functionality summary to this section from Notes for coherence
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro.
== Notes ==
Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images.] '''
== Status ==
Currently, most things work, for example you can:
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
== Installation ==
Unlike most phones, it's pretty simple.
=== SD Card Installation ===
==== Prepare the SD card ====
Create a new msdos partition table using fdisk
$ sudo fdisk /dev/''SDCARD''
# press 'p' to view current table
# press 'o' to erase and make a new table
# press 'w' to write changes and quit
==== Write the image to an SD-Card. ====
Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here].
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE''
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE''
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
$ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56
Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image:
$ unxz maemo-leste-*-arm64-pinephone-*.img.xz
Write the image to microSD. '''''Be very careful with this step (read warnings below).'''''
$ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync
Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer.
<small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small>
<small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small>
<small>You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small>
=== eMMC Installation ===
==== Extract the image ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
==== Modify the image to use eMMC paths ====
'''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.''
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install image to eMMC ====
''Note: Currently '''not working'''''
'''From the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]:'''
=== Using Tow-Boot ===
If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode.
The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc.
=== Using JumpDrive ===
You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.
The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card.
[https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.]
=== From the booted microSD ===
# Flash Maemo Leste to the microSD card
# Insert microSD card and boot the phone
# Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download.
# Extract the image file so that it only ends in ".img"
# Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct.
# Turn off phone, remove microSD card and then turn on the phone.
== More Information ==
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
*
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet.
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with:
$ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
[[Category:Device]]
4f4c3e148e98d24e97f7d6ac08b7e6052bc33c01
1328
1327
2022-08-15T20:52:25Z
Auanta
57
/* Notes */ Maemo how to contact
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro.
== Notes ==
Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues.
== Status ==
Currently, most things work, for example you can:
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
== Installation ==
Unlike most phones, it's pretty simple.
=== SD Card Installation ===
==== Prepare the SD card ====
Create a new msdos partition table using fdisk
$ sudo fdisk /dev/''SDCARD''
# press 'p' to view current table
# press 'o' to erase and make a new table
# press 'w' to write changes and quit
==== Write the image to an SD-Card. ====
Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here].
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE''
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE''
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
$ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56
Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image:
$ unxz maemo-leste-*-arm64-pinephone-*.img.xz
Write the image to microSD. '''''Be very careful with this step (read warnings below).'''''
$ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync
Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer.
<small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small>
<small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small>
<small>You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small>
=== eMMC Installation ===
==== Extract the image ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
==== Modify the image to use eMMC paths ====
'''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.''
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install image to eMMC ====
''Note: Currently '''not working'''''
'''From the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]:'''
=== Using Tow-Boot ===
If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode.
The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc.
=== Using JumpDrive ===
You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.
The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card.
[https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.]
=== From the booted microSD ===
# Flash Maemo Leste to the microSD card
# Insert microSD card and boot the phone
# Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download.
# Extract the image file so that it only ends in ".img"
# Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct.
# Turn off phone, remove microSD card and then turn on the phone.
== More Information ==
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
*
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet.
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with:
$ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
[[Category:Device]]
8c36631431de648008d56c57710031335e68679d
1329
1328
2022-08-15T20:53:47Z
Auanta
57
/* Notes */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro.
== Notes ==
Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project.
== Status ==
Currently, most things work, for example you can:
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
== Installation ==
Unlike most phones, it's pretty simple.
=== SD Card Installation ===
==== Prepare the SD card ====
Create a new msdos partition table using fdisk
$ sudo fdisk /dev/''SDCARD''
# press 'p' to view current table
# press 'o' to erase and make a new table
# press 'w' to write changes and quit
==== Write the image to an SD-Card. ====
Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here].
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE''
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE''
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
$ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56
Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image:
$ unxz maemo-leste-*-arm64-pinephone-*.img.xz
Write the image to microSD. '''''Be very careful with this step (read warnings below).'''''
$ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync
Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer.
<small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small>
<small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small>
<small>You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small>
=== eMMC Installation ===
==== Extract the image ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
==== Modify the image to use eMMC paths ====
'''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.''
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install image to eMMC ====
''Note: Currently '''not working'''''
'''From the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]:'''
=== Using Tow-Boot ===
If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode.
The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc.
=== Using JumpDrive ===
You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.
The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card.
[https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.]
=== From the booted microSD ===
# Flash Maemo Leste to the microSD card
# Insert microSD card and boot the phone
# Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download.
# Extract the image file so that it only ends in ".img"
# Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct.
# Turn off phone, remove microSD card and then turn on the phone.
== More Information ==
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
*
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet.
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with:
$ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
[[Category:Device]]
4ba8f1087a78d6b1b7152a2581cdbad5aa3dcd98
1330
1329
2022-08-15T20:56:04Z
Auanta
57
/* More Information */ moving this section to the status section
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro.
== Notes ==
Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project.
== Status ==
Currently, most things work, for example you can:
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
== Installation ==
Unlike most phones, it's pretty simple.
=== SD Card Installation ===
==== Prepare the SD card ====
Create a new msdos partition table using fdisk
$ sudo fdisk /dev/''SDCARD''
# press 'p' to view current table
# press 'o' to erase and make a new table
# press 'w' to write changes and quit
==== Write the image to an SD-Card. ====
Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here].
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE''
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE''
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
$ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56
Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image:
$ unxz maemo-leste-*-arm64-pinephone-*.img.xz
Write the image to microSD. '''''Be very careful with this step (read warnings below).'''''
$ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync
Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer.
<small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small>
<small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small>
<small>You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small>
=== eMMC Installation ===
==== Extract the image ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
==== Modify the image to use eMMC paths ====
'''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.''
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install image to eMMC ====
''Note: Currently '''not working'''''
'''From the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]:'''
=== Using Tow-Boot ===
If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode.
The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc.
=== Using JumpDrive ===
You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.
The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card.
[https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.]
=== From the booted microSD ===
# Flash Maemo Leste to the microSD card
# Insert microSD card and boot the phone
# Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download.
# Extract the image file so that it only ends in ".img"
# Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct.
# Turn off phone, remove microSD card and then turn on the phone.
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet.
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with:
$ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
[[Category:Device]]
c4e6a1212b75ee47e020dae7108dfe41ef55dad6
1331
1330
2022-08-15T20:57:38Z
Auanta
57
/* Status */ moved section closer to status/functionality
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro.
== Notes ==
Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project.
== Status ==
Currently, most things work, for example you can:
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
== More Information ==
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
== Installation ==
Unlike most phones, it's pretty simple.
=== SD Card Installation ===
==== Prepare the SD card ====
Create a new msdos partition table using fdisk
$ sudo fdisk /dev/''SDCARD''
# press 'p' to view current table
# press 'o' to erase and make a new table
# press 'w' to write changes and quit
==== Write the image to an SD-Card. ====
Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here].
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE''
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE''
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
$ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56
Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image:
$ unxz maemo-leste-*-arm64-pinephone-*.img.xz
Write the image to microSD. '''''Be very careful with this step (read warnings below).'''''
$ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync
Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer.
<small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small>
<small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small>
<small>You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small>
=== eMMC Installation ===
==== Extract the image ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
==== Modify the image to use eMMC paths ====
'''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.''
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install image to eMMC ====
''Note: Currently '''not working'''''
'''From the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]:'''
=== Using Tow-Boot ===
If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode.
The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc.
=== Using JumpDrive ===
You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.
The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card.
[https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.]
=== From the booted microSD ===
# Flash Maemo Leste to the microSD card
# Insert microSD card and boot the phone
# Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download.
# Extract the image file so that it only ends in ".img"
# Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct.
# Turn off phone, remove microSD card and then turn on the phone.
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet.
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with:
$ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
[[Category:Device]]
0ee9befe60e627fbcc93ad15956ff1ab251953f3
1336
1331
2022-08-15T22:20:31Z
Auanta
57
adding some tips
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro.
== Notes ==
Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project.
== Status ==
Currently, most things work, for example you can:
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
== More Information ==
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
== Installation ==
Unlike most phones, it's pretty simple.
=== SD Card Installation ===
==== Prepare the SD card ====
Create a new msdos partition table using fdisk
$ sudo fdisk /dev/''SDCARD''
# press 'p' to view current table
# press 'o' to erase and make a new table
# press 'w' to write changes and quit
==== Write the image to an SD-Card. ====
Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here].
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE''
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE''
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
$ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56
Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image:
$ unxz maemo-leste-*-arm64-pinephone-*.img.xz
Write the image to microSD. '''''Be very careful with this step (read warnings below).'''''
$ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync
Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer.
<small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small>
<small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small>
<small>You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small>
=== eMMC Installation ===
==== Extract the image ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
==== Modify the image to use eMMC paths ====
'''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.''
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install image to eMMC ====
''Note: Currently '''not working'''''
'''From the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]:'''
=== Using Tow-Boot ===
If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode.
The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc.
=== Using JumpDrive ===
You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.
The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card.
[https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.]
=== From the booted microSD ===
# Flash Maemo Leste to the microSD card
# Insert microSD card and boot the phone
# Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download.
# Extract the image file so that it only ends in ".img"
# Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct.
# Turn off phone, remove microSD card and then turn on the phone.
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet.
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with:
$ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
=== Installing apps ===
Apps can be installed just as on any Devuan system with:
$ sudo apt install ''package-name''
There is also the app store.
Note: Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop ([https://wiki.archlinux.org/title/Desktop_entries examples])
=== Launching apps (such as Firefox/Iceweasel) ===
* Launch apps from the desktop
* Launch apps from your console:
$ iceweasel &
* Install a universal app launcher that you can run from desktop:
$ sudo apt install desktop-cmd-exec
[[Category:Device]]
393d516855684a66fb55adec993c285b801e88bb
1337
1336
2022-08-15T22:22:01Z
Auanta
57
/* Launching apps (such as Firefox/Iceweasel) */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro.
== Notes ==
Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project.
== Status ==
Currently, most things work, for example you can:
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
== More Information ==
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
== Installation ==
Unlike most phones, it's pretty simple.
=== SD Card Installation ===
==== Prepare the SD card ====
Create a new msdos partition table using fdisk
$ sudo fdisk /dev/''SDCARD''
# press 'p' to view current table
# press 'o' to erase and make a new table
# press 'w' to write changes and quit
==== Write the image to an SD-Card. ====
Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here].
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE''
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE''
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
$ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56
Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image:
$ unxz maemo-leste-*-arm64-pinephone-*.img.xz
Write the image to microSD. '''''Be very careful with this step (read warnings below).'''''
$ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync
Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer.
<small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small>
<small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small>
<small>You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small>
=== eMMC Installation ===
==== Extract the image ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
==== Modify the image to use eMMC paths ====
'''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.''
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install image to eMMC ====
''Note: Currently '''not working'''''
'''From the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]:'''
=== Using Tow-Boot ===
If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode.
The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc.
=== Using JumpDrive ===
You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.
The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card.
[https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.]
=== From the booted microSD ===
# Flash Maemo Leste to the microSD card
# Insert microSD card and boot the phone
# Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download.
# Extract the image file so that it only ends in ".img"
# Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct.
# Turn off phone, remove microSD card and then turn on the phone.
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet.
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with:
$ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
=== Installing apps ===
Apps can be installed just as on any Devuan system with:
$ sudo apt install ''package-name''
There is also the app store.
Note: Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop ([https://wiki.archlinux.org/title/Desktop_entries examples])
=== Launching apps ===
This works for any app. Say for instance, you want to run Iceweasel/Firefox:
* Launch apps from the desktop
* Launch apps from your console:
$ iceweasel &
* Install a universal app launcher that you can run from desktop:
$ sudo apt install desktop-cmd-exec
[[Category:Device]]
5edada3677853a27c2316a6176fbbeda7564b92d
1338
1337
2022-08-15T22:23:16Z
Auanta
57
/* Installing apps */ moving to new section
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro.
== Notes ==
Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project.
== Status ==
Currently, most things work, for example you can:
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
== More Information ==
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
== Installation ==
Unlike most phones, it's pretty simple.
=== SD Card Installation ===
==== Prepare the SD card ====
Create a new msdos partition table using fdisk
$ sudo fdisk /dev/''SDCARD''
# press 'p' to view current table
# press 'o' to erase and make a new table
# press 'w' to write changes and quit
==== Write the image to an SD-Card. ====
Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here].
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE''
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE''
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
$ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56
Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image:
$ unxz maemo-leste-*-arm64-pinephone-*.img.xz
Write the image to microSD. '''''Be very careful with this step (read warnings below).'''''
$ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync
Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer.
<small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small>
<small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small>
<small>You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small>
=== eMMC Installation ===
==== Extract the image ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
==== Modify the image to use eMMC paths ====
'''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.''
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install image to eMMC ====
''Note: Currently '''not working'''''
'''From the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]:'''
=== Using Tow-Boot ===
If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode.
The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc.
=== Using JumpDrive ===
You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.
The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card.
[https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.]
=== From the booted microSD ===
# Flash Maemo Leste to the microSD card
# Insert microSD card and boot the phone
# Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download.
# Extract the image file so that it only ends in ".img"
# Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct.
# Turn off phone, remove microSD card and then turn on the phone.
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet.
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with:
$ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
=== Installing apps ===
* Apps can be installed just as on any Devuan system with:
$ sudo apt install ''package-name''
* There is also the app store.
=== Launching apps ===
This works for any app. Say for instance, you want to run Iceweasel/Firefox:
* Launch apps from the desktop
* Launch apps from your console:
$ iceweasel &
* Install a universal app launcher that you can run from desktop:
$ sudo apt install desktop-cmd-exec
[[Category:Device]]
50a429f5530fed2b10b8a867266e6f5ddf88911d
1339
1338
2022-08-15T22:25:04Z
Auanta
57
tip: desktop icons for apps
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro.
== Notes ==
Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project.
== Status ==
Currently, most things work, for example you can:
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
== More Information ==
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
== Installation ==
Unlike most phones, it's pretty simple.
=== SD Card Installation ===
==== Prepare the SD card ====
Create a new msdos partition table using fdisk
$ sudo fdisk /dev/''SDCARD''
# press 'p' to view current table
# press 'o' to erase and make a new table
# press 'w' to write changes and quit
==== Write the image to an SD-Card. ====
Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here].
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE''
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE''
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
$ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56
Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image:
$ unxz maemo-leste-*-arm64-pinephone-*.img.xz
Write the image to microSD. '''''Be very careful with this step (read warnings below).'''''
$ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync
Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer.
<small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small>
<small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small>
<small>You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small>
=== eMMC Installation ===
==== Extract the image ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
==== Modify the image to use eMMC paths ====
'''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.''
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install image to eMMC ====
''Note: Currently '''not working'''''
'''From the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]:'''
=== Using Tow-Boot ===
If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode.
The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc.
=== Using JumpDrive ===
You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.
The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card.
[https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.]
=== From the booted microSD ===
# Flash Maemo Leste to the microSD card
# Insert microSD card and boot the phone
# Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download.
# Extract the image file so that it only ends in ".img"
# Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct.
# Turn off phone, remove microSD card and then turn on the phone.
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet.
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with:
$ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
=== Installing apps ===
* Apps can be installed just as on any Devuan system with:
$ sudo apt install ''package-name''
* There is also the app store.
=== Launching apps ===
This works for any app. Say for instance, you want to run Iceweasel/Firefox:
* Launch apps from the desktop
* Launch apps from your console:
$ iceweasel &
* Install a universal app launcher that you can run from desktop:
$ sudo apt install desktop-cmd-exec
== Make apps show up on desktop ==
Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples])
[[Category:Device]]
ed76ca6aeca74566830a9a16741fd531a4677325
1340
1339
2022-08-15T22:25:49Z
Auanta
57
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro.
== Notes ==
Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project.
== Status ==
Currently, most things work, for example you can:
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
== More Information ==
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
== Installation ==
Unlike most phones, it's pretty simple.
=== SD Card Installation ===
==== Prepare the SD card ====
Create a new msdos partition table using fdisk
$ sudo fdisk /dev/''SDCARD''
# press 'p' to view current table
# press 'o' to erase and make a new table
# press 'w' to write changes and quit
==== Write the image to an SD-Card. ====
Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here].
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE''
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE''
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
$ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56
Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image:
$ unxz maemo-leste-*-arm64-pinephone-*.img.xz
Write the image to microSD. '''''Be very careful with this step (read warnings below).'''''
$ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync
Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer.
<small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small>
<small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small>
<small>You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small>
=== eMMC Installation ===
==== Extract the image ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
==== Modify the image to use eMMC paths ====
'''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.''
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install image to eMMC ====
''Note: Currently '''not working'''''
'''From the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]:'''
=== Using Tow-Boot ===
If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode.
The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc.
=== Using JumpDrive ===
You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.
The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card.
[https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.]
=== From the booted microSD ===
# Flash Maemo Leste to the microSD card
# Insert microSD card and boot the phone
# Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download.
# Extract the image file so that it only ends in ".img"
# Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct.
# Turn off phone, remove microSD card and then turn on the phone.
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet.
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with:
$ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
=== Installing apps ===
* Apps can be installed just as on any Devuan system with:
$ sudo apt install ''package-name''
* There is also the app store.
=== Launching apps ===
This works for any app. Say for instance, you want to run Iceweasel/Firefox:
* Launch apps from the desktop
* Launch apps from your console:
$ iceweasel &
* Install a universal app launcher that you can run from desktop:
$ sudo apt install desktop-cmd-exec
=== Make apps show up on desktop ===
Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples])
[[Category:Device]]
e1cc7a0d45f7a4fe6eae60fc9c91e0a7e6c98ba7
1341
1340
2022-08-15T22:30:12Z
Auanta
57
formatting
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro.
== Notes ==
Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project.
== Status ==
Currently, most things work, for example you can:
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
== More Information ==
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
== Installation ==
Unlike most phones, it's pretty simple.
=== SD Card Installation ===
==== Prepare the SD card ====
Create a new msdos partition table using fdisk
$ sudo fdisk /dev/''SDCARD''
# press 'p' to view current table
# press 'o' to erase and make a new table
# press 'w' to write changes and quit
==== Write the image to an SD-Card. ====
Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here].
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE''
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE''
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
$ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56
Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image:
$ unxz maemo-leste-*-arm64-pinephone-*.img.xz
Write the image to microSD. '''''Be very careful with this step (read warnings below).'''''
$ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync
Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer.
<small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small>
<small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small>
<small>You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small>
=== eMMC Installation ===
==== Extract the image ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
==== Modify the image to use eMMC paths ====
'''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.''
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install image to eMMC ====
''Note: Currently '''not working'''''
'''From the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]:'''
=== Using Tow-Boot ===
If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode.
The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc.
=== Using JumpDrive ===
You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.
The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card.
[https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.]
=== From the booted microSD ===
# Flash Maemo Leste to the microSD card
# Insert microSD card and boot the phone
# Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download.
# Extract the image file so that it only ends in ".img"
# Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct.
# Turn off phone, remove microSD card and then turn on the phone.
== Post-Installation ==
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet.
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with:
$ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
=== Installing apps ===
* Apps can be installed just as on any Devuan system with:
$ sudo apt install ''package-name''
* There is also the app store.
=== Launching apps ===
This works for any app. Say for instance, you want to run Iceweasel/Firefox:
* Launch apps from the desktop
* Launch apps from your console:
$ iceweasel &
* Install a universal app launcher that you can run from desktop:
$ sudo apt install desktop-cmd-exec
=== Make apps show up on desktop ===
Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples])
[[Category:Device]]
082b5596bbe69ed3ea40927115884a6677a471ab
1342
1341
2022-08-15T22:33:27Z
Auanta
57
Formatting
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro.
== Notes ==
Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project.
== Status ==
Currently, most things work, for example you can:
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
== More Information ==
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
== Installation ==
Unlike most phones, it's pretty simple.
=== SD Card Installation ===
==== Prepare the SD card ====
Create a new msdos partition table using fdisk
$ sudo fdisk /dev/''SDCARD''
# press 'p' to view current table
# press 'o' to erase and make a new table
# press 'w' to write changes and quit
==== Write the image to an SD-Card. ====
Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here].
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE''
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE''
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
$ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56
Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image:
$ unxz maemo-leste-*-arm64-pinephone-*.img.xz
Write the image to microSD. '''''Be very careful with this step (read warnings below).'''''
$ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync
Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer.
<small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small>
<small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small>
<small>You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small>
=== eMMC Installation ===
==== From microSD card ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.''
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install image to eMMC ====
''Note: Currently '''not working'''''
'''From the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]:'''
==== Using Tow-Boot ====
If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode.
The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc.
==== Using JumpDrive ====
You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.
The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card.
[https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.]
==== From the booted microSD ====
# Flash Maemo Leste to the microSD card
# Insert microSD card and boot the phone
# Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download.
# Extract the image file so that it only ends in ".img"
# Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct.
# Turn off phone, remove microSD card and then turn on the phone.
== Post-Installation ==
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet.
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with:
$ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
=== Installing apps ===
* Apps can be installed just as on any Devuan system with:
$ sudo apt install ''package-name''
* There is also the app store.
=== Launching apps ===
This works for any app. Say for instance, you want to run Iceweasel/Firefox:
* Launch apps from the desktop
* Launch apps from your console:
$ iceweasel &
* Install a universal app launcher that you can run from desktop:
$ sudo apt install desktop-cmd-exec
=== Make apps show up on desktop ===
Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples])
[[Category:Device]]
9e245d9e7f20e9ddf776e78ac02016bb0068ce62
1343
1342
2022-08-15T22:36:07Z
Auanta
57
reorganizing
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro.
== Notes ==
Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project.
== Status ==
Currently, most things work, for example you can:
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
== More Information ==
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
== Installation ==
Unlike most phones, it's pretty simple.
=== SD Card Installation ===
==== Prepare the SD card ====
Create a new msdos partition table using fdisk
$ sudo fdisk /dev/''SDCARD''
# press 'p' to view current table
# press 'o' to erase and make a new table
# press 'w' to write changes and quit
==== Write the image to an SD-Card. ====
Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here].
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE''
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE''
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
$ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56
Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image:
$ unxz maemo-leste-*-arm64-pinephone-*.img.xz
Write the image to microSD. '''''Be very careful with this step (read warnings below).'''''
$ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync
Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer.
<small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small>
<small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small>
<small>You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small>
=== eMMC Installation ===
''Note: Currently '''not working'''''
'''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]:'''
==== From microSD card ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.''
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Using Tow-Boot ====
If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode.
The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc.
==== Using JumpDrive ====
You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.
The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card.
[https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.]
==== From the booted microSD ====
# Flash Maemo Leste to the microSD card
# Insert microSD card and boot the phone
# Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download.
# Extract the image file so that it only ends in ".img"
# Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct.
# Turn off phone, remove microSD card and then turn on the phone.
== Post-Installation ==
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet.
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with:
$ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
=== Installing apps ===
* Apps can be installed just as on any Devuan system with:
$ sudo apt install ''package-name''
* There is also the app store.
=== Launching apps ===
This works for any app. Say for instance, you want to run Iceweasel/Firefox:
* Launch apps from the desktop
* Launch apps from your console:
$ iceweasel &
* Install a universal app launcher that you can run from desktop:
$ sudo apt install desktop-cmd-exec
=== Make apps show up on desktop ===
Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples])
[[Category:Device]]
333a5932cdf6a51410c4b2af51ffd19ab82a1030
1344
1343
2022-08-15T22:36:49Z
Auanta
57
/* eMMC Installation */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro.
== Notes ==
Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project.
== Status ==
Currently, most things work, for example you can:
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
== More Information ==
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
== Installation ==
Unlike most phones, it's pretty simple.
=== SD Card Installation ===
==== Prepare the SD card ====
Create a new msdos partition table using fdisk
$ sudo fdisk /dev/''SDCARD''
# press 'p' to view current table
# press 'o' to erase and make a new table
# press 'w' to write changes and quit
==== Write the image to an SD-Card. ====
Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here].
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE''
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE''
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
$ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56
Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image:
$ unxz maemo-leste-*-arm64-pinephone-*.img.xz
Write the image to microSD. '''''Be very careful with this step (read warnings below).'''''
$ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync
Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer.
<small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small>
<small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small>
<small>You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small>
=== eMMC Installation ===
''Note: Currently '''not working'''''
'''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''.
==== From microSD card ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.''
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Using Tow-Boot ====
If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode.
The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc.
==== Using JumpDrive ====
You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.
The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card.
[https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.]
==== From the booted microSD ====
# Flash Maemo Leste to the microSD card
# Insert microSD card and boot the phone
# Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download.
# Extract the image file so that it only ends in ".img"
# Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct.
# Turn off phone, remove microSD card and then turn on the phone.
== Post-Installation ==
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet.
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with:
$ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
=== Installing apps ===
* Apps can be installed just as on any Devuan system with:
$ sudo apt install ''package-name''
* There is also the app store.
=== Launching apps ===
This works for any app. Say for instance, you want to run Iceweasel/Firefox:
* Launch apps from the desktop
* Launch apps from your console:
$ iceweasel &
* Install a universal app launcher that you can run from desktop:
$ sudo apt install desktop-cmd-exec
=== Make apps show up on desktop ===
Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples])
[[Category:Device]]
f12249815cba8c93bb816088165bf5fb749eab4e
1345
1344
2022-08-15T22:41:14Z
Auanta
57
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro.
== Notes ==
Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project.
== Status ==
Currently, most things work, for example you can:
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
== More Information ==
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
== Installation ==
Unlike most phones, it's pretty simple.
=== SD Card Installation ===
==== Prepare the SD card ====
Create a new msdos partition table using fdisk
$ sudo fdisk /dev/''SDCARD''
# press 'p' to view current table
# press 'o' to erase and make a new table
# press 'w' to write changes and quit
==== Write the image to an SD-Card. ====
Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here].
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE''
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE''
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
$ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56
Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image:
$ unxz maemo-leste-*-arm64-pinephone-*.img.xz
Write the image to microSD. '''''Be very careful with this step (read warnings below).'''''
$ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync
Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer.
<small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small>
<small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small>
<small>You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small>
=== eMMC Installation ===
''Note: Currently '''not working'''''
'''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''.
==== From microSD card ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.''
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Using Tow-Boot ====
If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode.
The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc.
==== Using JumpDrive ====
You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.
The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card.
[https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.]
==== From the booted microSD ====
# Flash Maemo Leste to the microSD card
# Insert microSD card and boot the phone
# Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download.
# Extract the image file so that it only ends in ".img"
# Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct.
# Turn off phone, remove microSD card and then turn on the phone.
== Post-Installation ==
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet.
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with:
$ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
=== Installing apps ===
* Apps can be installed just as on any Devuan system with:
$ sudo apt install ''package-name''
* There is also the app store.
=== Launching apps ===
This works for any app. Say for instance, you want to run Iceweasel/Firefox:
* Launch apps from the desktop
* Launch apps from your console:
$ iceweasel &
* Install a universal app launcher that you can run from desktop:
$ sudo apt install desktop-cmd-exec
=== Make apps show up on desktop ===
Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples])
=== Make keyboard show on Firefox/Iceweasel ===
The keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar).
[[Category:Device]]
a7efc7389d08d4a04440fb6b9945159e8d7b7304
Motorola Droid 4
0
50
1306
1286
2022-07-10T09:54:02Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati XT894
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
|category=Supported
|sw_kernel=5.18.x
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Yes
|sw_usb_host=Yes
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=Yes
|sw_tv=
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=Yes
|sw_4g=No
|sw_bluetooth=Yes, [[#Bluetooth|see notes]]
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=120mW
|sw_standbytime=
}}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
=== Updating Android ===
This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
=== Setting up kexecboot ===
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
=== Install Maemo Leste to the sdcard ===
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab the latest image from https://phoenix.maemo.org/view/Images/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
The keyboard layout is extended to provide more standard keys.
[[File:Maemo-leste-droid4-kbd-2021-07.png|center|620px|thumb|maemo-leste droid4 keyboard]]
Key mapping can be tested with the 'xev' program.
It may be necessary to run the follow commands as root in order to get the OK key to function correctly (see [https://github.com/maemo-leste/bugtracker/issues/510#issuecomment-815618591 here]):
udevadm hwdb --update
udevadm trigger
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Bluetooth ==
Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
== Stuff to try ==
==== Using a battery without temperature sensor ====
Modprobe the pmic driver as follows:
<pre>
cpcap-battery ignore_temperature_probe=1
</pre>
==== Flashing the boot logo ====
More info: https://github.com/xsetiadi/droid4-kexecboot/blob/master/LOGO
<pre>
15:04 < tmlind> Wizzup: i think the logo on droid4 can be flashed with fastboot flash logo logo.bin or something, can also be just written to logo partition from m-l
[snip]
09:24 < xsetiadi> https://github.com/xsetiadi/droid4-kexecboot/blob/master/logo.bin
09:25 < xsetiadi> becarefull, you can bootloop droid4 if you wrong flash partition
09:26 < xsetiadi> like i do last year
09:26 < xsetiadi> instead of flashing using command: fastboot flash logo.bin logo.bin i just flash it with command: fastboot flash logo logo.bin
</pre>
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
==== HDMI ====
Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier.
<pre>
xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off
</pre>
Return to internal touchscreen display.
<pre>
xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off
</pre>
==== Keyboard / Mouse sharing with PC ====
To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4.
<pre>
[https://github.com/debauchee/barrier Barrier software-KVM switch]
</pre>
Developers and testers may wish to disable the googley bits before compiling.
==== BT Audio headset ====
sudo apt install pulseaudio-module-bluetooth blueman bluez
sudo modprobe hci_uart
pactl load-module module-bluetooth-discover
blueman-manager
Pair & trust your device in blueman, connect audiosink. You can close blueman now. The quality seems a bit better in 'offline mode'.
==== Torch ====
The Droid 4 has a TI LM3559 flash torch controller. This provides flash functionality when taking pictures, usage as a torch, and provides privacy indication (in this mode, the LED flashes in a fast heartbeat pattern). A driver for it exists in mainline, but it requires some DTS work, since it is tied to a camera device.
If you want to use it in the meantime, direct i2c access can be used as follows (since this is direct access, be careful about each of the commands below):
<source>
##Install the prerequisites
$ sudo apt install i2c-tools
## Turn LED on in torch mode
$ sudo i2cset -y 2 0x53 0x10 0x1a
## Turn LED on in privacy indication mode
$ sudo i2cset -y 2 0x53 0x10 0x19
## Turn LED off (in any mode)
$ sudo i2cset -y 2 0x53 0x10 0x18
## Use LED for doing a hella bright flash for some time once and then turn off
$ sudo i2cset -y 2 0x53 0x10 0x1b
</source>
== Using a configured Leste sdcard in a different Droid4 ==
A configured Droid4 Leste installation is unique to the device that it was calibrated on. Particularly the wlan firmware calibration will be incorrect if an existing Leste installation is transferred to a different device.
The wifi calibration script requires a system set to stock settings to calibrate-from. It cannot just be re-run on an already calibrated system.
To recalibrate the wifi firmware on a different Droid4, you must reset the FEM parameters to stock settings on the new device, then recalibrate.
If you can get the device online (usb networking or moving close to the WLAN AP) this can be done with.
apt reinstall firmware-ti-connectivity
If not, you can download the firmware-ti-connectivity_[version]_all.deb on another Leste device
apt download firmware-ti-connectivity
Then copy the .deb to your new device and install that (as root) with
dpkg -i firmware-ti-connectivity_[version]_all.deb
Then (as root) re-calibrate the wifi chip by running
/usr/bin/maserati-calibrate
Then reboot.
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
Cant_have_2_much_leste.jpg
Leste-neverball.jpg
Statsfun.jpg
Leste-glmatrix.png
Droid4-leste-utox2.jpg
Droid4-leste-pcsx.jpg
Droid4-leste-surf_master.jpg
Droid4_Daimonin_Hdmi.jpg
</gallery>
== Old status overview ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Implemented with Pulseaudio and UCM files
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || Yes || Available in /sys, and as input device via iio-uinput
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)
|-
| Gyro || N/A ||
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/
|-
| Idle power consumption || ~120mW || Needs sim inserted
|}
[[Category:Device]]
a07d247f47821e91aff0b1867e90f11390d772f3
Motorola Droid Bionic
0
111
1307
1266
2022-07-10T09:54:22Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Bionic.jpg|250px]]
|manufacturer=Motorola
|codename=Targa XT875
|dimensions=127x67.3x12.7mm
|release_date=2011-09-8
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4.3"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, Kionix KXTf9 accelerometer, St L3GD20H Gyro, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
|category=Supported
|sw_kernel=5.18.x
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=No
|sw_touchscreen=Yes
|sw_keyboard=
|sw_screen=Yes
|sw_hdmi=Yes
|sw_tv=
|sw_3daccel=Yes, [[https://github.com/maemo-leste/pvr-omap4/|SGX540, closed driver|]]
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=untested
|sw_sms=Yes, no UI
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=Yes
|sw_4g=No
|sw_bluetooth=Yes, [[#Bluetooth|see notes]]
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=No, needs kernel work
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No, needs kernel/userspace work
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=70mW, needs sim inserted
|sw_standbytime=91.8h (with HW4X)
}}
== Installation ==
Hardware requirements:
* Droid Bionic with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux system
* Android Tools: fastboot adb
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
# Latest maemo-leste-1.0-armhf-bionic-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# droid4-kexecboot.img
Download or clone https://github.com/IMbackK/bionic-clown-boot
Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
Wait for sync to complete and insert MicroSD card into The Bionic. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Notes ==
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 and Bionic both expose a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Bionic, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
== Bluetooth ==
Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
== Unlocking the modem for usage in Europe ==
Tony suggested these values, Wizzup confirmed it to work on his Bionic in Europe/Amsterdam.
<pre>
apt install build-essential
git clone https://github.com/tmlind/tcmdrw
cd tcmdrw
make
./tcmdrw 1877=8703E80400000200
./tcmdrw 6850=05
</pre>
Tony also writes:
<pre>
22:34 < tmlind> hmm so i had to do this for 3g gain: tcmdrw 1143=aaff0000, got that value from xt910 firmware i think, otherwise 3g signal was weak
22:43 < tmlind> Wizzup: great, the 1143 setting is for 1900 frequency only to get decent signal on t-mo in the us
</pre>
<pre>
22:37 < tmlind> i also had to do tcmdrw 6850=05 for 3g voice to work properly
</pre>
== Stuff to try ==
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
== Old status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.10.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| USB slave || Yes ||
|-
| USB host (OTG) || No ||
|-
| Touchscreen || Yes || Capacitive
|-
| Keyboard || N/A ||
|-
| Screen || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Vibration Motor || Yes ||
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| Phone calls || WIP || Untested
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Wifi || Yes ||
|-
| Ethernet || N/A ||
|-
| IrDA || N/A || Missing in hardware
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || No ||
|-
| Nfc || No || no hardware
|-
| Accelerometer || Yes ||
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration)
|-
| Gyro || No || needs kernel work
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| AGPS || No ||
|-
| Front Camera || No ||
|-
| Back Camera(s) || No ||
|-
| Idle power consumption || ~70 mW || Needs sim inserted
|-
| Idle Battery life on new battery || 91.8 h || With HW4X
|}
[[Category:Device]]
0d2f3333d210d3b0365b39fa7fe8918452aebe3f
Tor
0
168
1308
1236
2022-07-27T23:08:27Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Package
|image=
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]],[[PinePhone]]
|date_in_repo=2021-11-01
|maemo_leste_repo=https://github.com/maemo-leste/libicd-tor
|category=Network
|packager=[[User:Wizzup]]
}}
= Tor in Maemo Leste =
[https://www.torproject.org/ Tor] support is integrated in Maemo Leste (through ICD2) and is available for installation using the package manager. Once you've installed the package, restart the device. You should now see a Tor applet in the control panel, and a Tor applet in the status applet.
Tor is widely used to defend against and fight surveillance and tracking and circumvent censorship. It can be used on Maemo Leste in two ways, either by tunnelling all your traffic over Tor (much like [https://tails.boum.org/ Tails] does), or by having Tor run on the side, allowing access to hidden services. Hidden bridges are also supported.
== Configuring Tor using the UI ==
In the control panel, you should be able to create a new configuration. You can choose between transparent proxying or not, and optionally select bridges and configure some other advanced settings.
Then, in the status applet, select the config you'd like, and enable system wide Tor mode. At this point, connecting to any IAP should cause the Tor connection to start. If the Tor connection fails to start in system wide mode, the IAP will be disconnected. If the IAP has Tor configured as service provider, then Tor failing to start will cause the connection to abort.
== Obligatory word of warning ==
If you rely on Tor to keep you safe, please realise that Maemo Leste (and the Tor integration) are alpha software - they are not necessarily stable and you should not rely on it to keep yourself safe at this point in time.
Tunnelling all your traffic over Tor also doesn't automatically anonymise you - for example, if you share your GPS location (or personal information) using your browser over Tor, you are still sharing your location.
Maemo Leste does not (yet) provide many of the features that Tails provides, such as the Amnesia mode and encrypted persistent storage.
== Gallery ==
<gallery widths=320px heights=173px>
TorAppMgr.png|Tor is installable from the application manager
TorAppMgr2.png
TorCheck.png|Checking system wide support
TorProvider.png|Setting a per connection (IAP) Wireguard configuration
TorProvider2.png|
TorConnected.png|Tor is connected
TorCPA.png|Tor control panel applet icon
TorCPA2.png|Tor control panel, editing a configuration
</gallery>
== Fetching package updates through hidden services ==
It is possible to update your Maemo Leste device entirely through Tor, all you'll have to do is edit /etc/apt/sources.list and replace the following two hosts with the hidden service URLs:
<pre>https://pkgmaster.devuan.org/merged -> tor+http://devuanauxrkggcowgm2vcs6go3c5pgxdidd5wqjpg7zpfaxkmgspr6id.onion/merged
https://maedevu.maemo.org/leste -> tor+http://maemopkgove3kc2xxzyuk26j3ict6qzbqi3govge3s6h5aokr2uo6eqd.onion/leste
</pre>
[[Category:Extras]]
51ff7bb2a664b046242fae4bef20ac0eda3c3deb
Main Page
0
1
1332
1267
2022-08-15T21:35:13Z
Auanta
57
/* Links */ reorganized, formatting, add a couple links
wikitext
text/x-wiki
= Description =
Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, PinePhone, Allwinner Tablets and more.
You can find us on '''irc.libera.chat''', channel '''#maemo-leste'''.
For an overview of the current status, you might want to check out: [[Status]]
Maemo Leste is based on Devuan Beowulf (Debian Buster) and all the "supported" devices ship with recent Linux (mainline-based) kernels.
The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers.
For some devices, we have development images available, such as the [[Nokia_N900]], the [[Motorola Droid 4]] and the [[PinePhone]]. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software.
If you have not used Maemo before, you might want to check out some of the tips on the [[HowTo]] page.
== Useful resources, lists and pages ==
* To get started with a new install, see [[Getting_Started|Getting Started]].
* Read our [[Leste_FAQ|Frequently Asked Questions]]
* List of [[:Category:Device]] with support to varying degrees
* Latest downloadable images: https://phoenix.maemo.org/view/Images/
* List of "extras" software packages that have a wiki page: https://leste.maemo.org/Category:Extras
* Read how to get started with [[Development]]
* You have an application you want to see in Leste? Please let us know [[Wishlist|here]].
* For a list of presentations/talks featuring Maemo Leste, see [[Talks]]
== Links ==
** [https://leste.maemo.org/Leste_FAQ Maemo Leste FAQ]
<div>
The '''central point of meeting and talking''' is IRC (irc.libera.chat in #maemo-leste) and this thread: https://talk.maemo.org/showthread.php?t=100192.
* Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io]
* Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues]
* Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/]
* Our Github subdomain: [https://maemo-leste.github.io/]
* Our Extras Github: [https://github.com/maemo-leste-extras/ https://github.com/maemo-leste-extras/]
* Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] and https://phoenix.maemo.org/view/Images/
* Our Jenkins build server: [https://phoenix.maemo.org/ https://phoenix.maemo.org/]
* Our IRC chat history: [http://maedevu.maemo.org/irc.txt http://maedevu.maemo.org/irc.txt] and https://libera.irclog.whitequark.org/maemo-leste/ (previously: https://freenode.irclog.whitequark.org/maemo-leste/)
* Our YouTube channel: [https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w] (via [https://www.invidio.us/channel/UCgAWiHvWSuJAg5hjk7JYn1w Invidious] )
* Our Package index and info: [https://maedevu.maemo.org/pkgweb/ https://maedevu.maemo.org/pkgweb/] which runs [https://github.com/maemo-leste/mpi https://github.com/maemo-leste/mpi]
* Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
* Our Forum [https://talk.maemo.org/forumdisplay.php?f=66]
* RSS feed: [https://maemo-leste.github.io/feeds/all.atom.xml https://maemo-leste.github.io/feeds/all.atom.xml]
* Our Twitter: [https://twitter.com/maemoleste @maemoleste]
* [https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)]
</div>
92ecdb2bbbcae72129283f94f749923402e5cb87
1333
1332
2022-08-15T21:35:36Z
Auanta
57
/* Links */
wikitext
text/x-wiki
= Description =
Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, PinePhone, Allwinner Tablets and more.
You can find us on '''irc.libera.chat''', channel '''#maemo-leste'''.
For an overview of the current status, you might want to check out: [[Status]]
Maemo Leste is based on Devuan Beowulf (Debian Buster) and all the "supported" devices ship with recent Linux (mainline-based) kernels.
The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers.
For some devices, we have development images available, such as the [[Nokia_N900]], the [[Motorola Droid 4]] and the [[PinePhone]]. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software.
If you have not used Maemo before, you might want to check out some of the tips on the [[HowTo]] page.
== Useful resources, lists and pages ==
* To get started with a new install, see [[Getting_Started|Getting Started]].
* Read our [[Leste_FAQ|Frequently Asked Questions]]
* List of [[:Category:Device]] with support to varying degrees
* Latest downloadable images: https://phoenix.maemo.org/view/Images/
* List of "extras" software packages that have a wiki page: https://leste.maemo.org/Category:Extras
* Read how to get started with [[Development]]
* You have an application you want to see in Leste? Please let us know [[Wishlist|here]].
* For a list of presentations/talks featuring Maemo Leste, see [[Talks]]
== Links ==
<div>
The '''central point of meeting and talking''' is IRC (irc.libera.chat in #maemo-leste) and this thread: https://talk.maemo.org/showthread.php?t=100192.
* Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io]
* Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues]
* Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/]
* Our Github subdomain: [https://maemo-leste.github.io/]
* Our Extras Github: [https://github.com/maemo-leste-extras/ https://github.com/maemo-leste-extras/]
* Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] and https://phoenix.maemo.org/view/Images/
* Our Jenkins build server: [https://phoenix.maemo.org/ https://phoenix.maemo.org/]
* Our IRC chat history: [http://maedevu.maemo.org/irc.txt http://maedevu.maemo.org/irc.txt] and https://libera.irclog.whitequark.org/maemo-leste/ (previously: https://freenode.irclog.whitequark.org/maemo-leste/)
* Our YouTube channel: [https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w] (via [https://www.invidio.us/channel/UCgAWiHvWSuJAg5hjk7JYn1w Invidious] )
* Our Package index and info: [https://maedevu.maemo.org/pkgweb/ https://maedevu.maemo.org/pkgweb/] which runs [https://github.com/maemo-leste/mpi https://github.com/maemo-leste/mpi]
* Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
* Our Forum [https://talk.maemo.org/forumdisplay.php?f=66]
* RSS feed: [https://maemo-leste.github.io/feeds/all.atom.xml https://maemo-leste.github.io/feeds/all.atom.xml]
* Our Twitter: [https://twitter.com/maemoleste @maemoleste]
* [https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)]
</div>
521202205b250f19bc913c2d44cd204deab2e084
1334
1333
2022-08-15T21:43:34Z
Auanta
57
/* Links */ formatting (make it eye catching)
wikitext
text/x-wiki
= Description =
Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, PinePhone, Allwinner Tablets and more.
You can find us on '''irc.libera.chat''', channel '''#maemo-leste'''.
For an overview of the current status, you might want to check out: [[Status]]
Maemo Leste is based on Devuan Beowulf (Debian Buster) and all the "supported" devices ship with recent Linux (mainline-based) kernels.
The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers.
For some devices, we have development images available, such as the [[Nokia_N900]], the [[Motorola Droid 4]] and the [[PinePhone]]. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software.
If you have not used Maemo before, you might want to check out some of the tips on the [[HowTo]] page.
== Useful resources, lists and pages ==
* To get started with a new install, see [[Getting_Started|Getting Started]].
* Read our [[Leste_FAQ|Frequently Asked Questions]]
* List of [[:Category:Device]] with support to varying degrees
* Latest downloadable images: https://phoenix.maemo.org/view/Images/
* List of "extras" software packages that have a wiki page: https://leste.maemo.org/Category:Extras
* Read how to get started with [[Development]]
* You have an application you want to see in Leste? Please let us know [[Wishlist|here]].
* For a list of presentations/talks featuring Maemo Leste, see [[Talks]]
== Links ==
<div>
The central point of meeting and talking is '''IRC''' ('''irc.libera.chat''' in '''#maemo-leste''') and this thread: https://talk.maemo.org/showthread.php?t=100192.
* Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io]
* Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues]
* Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/]
* Our Github subdomain: [https://maemo-leste.github.io/ https://maemo-leste.github.io/]
* Our Extras Github: [https://github.com/maemo-leste-extras/ https://github.com/maemo-leste-extras/]
* Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] and https://phoenix.maemo.org/view/Images/
* Our Jenkins build server: [https://phoenix.maemo.org/ https://phoenix.maemo.org/]
* Our IRC chat history: [http://maedevu.maemo.org/irc.txt http://maedevu.maemo.org/irc.txt] and https://libera.irclog.whitequark.org/maemo-leste/ (previously: https://freenode.irclog.whitequark.org/maemo-leste/)
* Our YouTube channel: [https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w] (via [https://www.invidio.us/channel/UCgAWiHvWSuJAg5hjk7JYn1w Invidious] )
* Our Package index and info: [https://maedevu.maemo.org/pkgweb/ https://maedevu.maemo.org/pkgweb/] which runs [https://github.com/maemo-leste/mpi https://github.com/maemo-leste/mpi]
* Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
* Our Forum [https://talk.maemo.org/forumdisplay.php?f=66 https://talk.maemo.org/forumdisplay.php?f=66]
* RSS feed: [https://maemo-leste.github.io/feeds/all.atom.xml https://maemo-leste.github.io/feeds/all.atom.xml]
* Our Twitter: [https://twitter.com/maemoleste @maemoleste]
* Distrowatch: [https://distrowatch.com/dwres.php?resource=submit Maemo Leste] (give us an upvote)
</div>
5675d3126d14ac49d72efabbecba8ee9c1917b6b
1335
1334
2022-08-15T21:49:34Z
Auanta
57
/* Description */ formatting
wikitext
text/x-wiki
== Description ==
Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, PinePhone, Allwinner Tablets and more.
You can find us on '''irc.libera.chat''', channel '''#maemo-leste'''.
For an overview of the current status, you might want to check out: [[Status]]
Maemo Leste is based on Devuan Beowulf (Debian Buster) and all the "supported" devices ship with recent Linux (mainline-based) kernels.
The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers.
For some devices, we have development images available, such as the [[Nokia_N900]], the [[Motorola Droid 4]] and the [[PinePhone]]. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software.
If you have not used Maemo before, you might want to check out some of the tips on the [[HowTo]] page.
== Useful resources, lists and pages ==
* To get started with a new install, see [[Getting_Started|Getting Started]].
* Read our [[Leste_FAQ|Frequently Asked Questions]]
* List of [[:Category:Device]] with support to varying degrees
* Latest downloadable images: https://phoenix.maemo.org/view/Images/
* List of "extras" software packages that have a wiki page: https://leste.maemo.org/Category:Extras
* Read how to get started with [[Development]]
* You have an application you want to see in Leste? Please let us know [[Wishlist|here]].
* For a list of presentations/talks featuring Maemo Leste, see [[Talks]]
== Links ==
<div>
The central point of meeting and talking is '''IRC''' ('''irc.libera.chat''' in '''#maemo-leste''') and this thread: https://talk.maemo.org/showthread.php?t=100192.
* Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io]
* Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues]
* Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/]
* Our Github subdomain: [https://maemo-leste.github.io/ https://maemo-leste.github.io/]
* Our Extras Github: [https://github.com/maemo-leste-extras/ https://github.com/maemo-leste-extras/]
* Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] and https://phoenix.maemo.org/view/Images/
* Our Jenkins build server: [https://phoenix.maemo.org/ https://phoenix.maemo.org/]
* Our IRC chat history: [http://maedevu.maemo.org/irc.txt http://maedevu.maemo.org/irc.txt] and https://libera.irclog.whitequark.org/maemo-leste/ (previously: https://freenode.irclog.whitequark.org/maemo-leste/)
* Our YouTube channel: [https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w] (via [https://www.invidio.us/channel/UCgAWiHvWSuJAg5hjk7JYn1w Invidious] )
* Our Package index and info: [https://maedevu.maemo.org/pkgweb/ https://maedevu.maemo.org/pkgweb/] which runs [https://github.com/maemo-leste/mpi https://github.com/maemo-leste/mpi]
* Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
* Our Forum [https://talk.maemo.org/forumdisplay.php?f=66 https://talk.maemo.org/forumdisplay.php?f=66]
* RSS feed: [https://maemo-leste.github.io/feeds/all.atom.xml https://maemo-leste.github.io/feeds/all.atom.xml]
* Our Twitter: [https://twitter.com/maemoleste @maemoleste]
* Distrowatch: [https://distrowatch.com/dwres.php?resource=submit Maemo Leste] (give us an upvote)
</div>
ae584ead37a14d698e1121e7a515e098bf74a5bb
PinePhone
0
93
1346
1345
2022-08-15T22:44:18Z
Auanta
57
/* From microSD card */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro.
== Notes ==
Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project.
== Status ==
Currently, most things work, for example you can:
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
== More Information ==
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
== Installation ==
Unlike most phones, it's pretty simple.
=== SD Card Installation ===
==== Prepare the SD card ====
Create a new msdos partition table using fdisk
$ sudo fdisk /dev/''SDCARD''
# press 'p' to view current table
# press 'o' to erase and make a new table
# press 'w' to write changes and quit
==== Write the image to an SD-Card. ====
Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here].
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE''
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE''
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
$ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56
Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image:
$ unxz maemo-leste-*-arm64-pinephone-*.img.xz
Write the image to microSD. '''''Be very careful with this step (read warnings below).'''''
$ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync
Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer.
<small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small>
<small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small>
<small>You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small>
=== eMMC Installation ===
''Note: Currently '''not working'''''
'''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''.
==== Preparing the .img file for eMMC boot ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.''
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Using Tow-Boot ====
If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode.
The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc.
==== Using JumpDrive ====
You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.
The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card.
[https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.]
==== From the booted microSD ====
# Flash Maemo Leste to the microSD card
# Insert microSD card and boot the phone
# Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download.
# Extract the image file so that it only ends in ".img"
# Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct.
# Turn off phone, remove microSD card and then turn on the phone.
== Post-Installation ==
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet.
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with:
$ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
=== Installing apps ===
* Apps can be installed just as on any Devuan system with:
$ sudo apt install ''package-name''
* There is also the app store.
=== Launching apps ===
This works for any app. Say for instance, you want to run Iceweasel/Firefox:
* Launch apps from the desktop
* Launch apps from your console:
$ iceweasel &
* Install a universal app launcher that you can run from desktop:
$ sudo apt install desktop-cmd-exec
=== Make apps show up on desktop ===
Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples])
=== Make keyboard show on Firefox/Iceweasel ===
The keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar).
[[Category:Device]]
9a1a7c282539e7b7197a15683fe2a67e7b0298a3
1347
1346
2022-08-15T22:44:59Z
Auanta
57
/* Using Tow-Boot */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro.
== Notes ==
Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project.
== Status ==
Currently, most things work, for example you can:
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
== More Information ==
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
== Installation ==
Unlike most phones, it's pretty simple.
=== SD Card Installation ===
==== Prepare the SD card ====
Create a new msdos partition table using fdisk
$ sudo fdisk /dev/''SDCARD''
# press 'p' to view current table
# press 'o' to erase and make a new table
# press 'w' to write changes and quit
==== Write the image to an SD-Card. ====
Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here].
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE''
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE''
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
$ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56
Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image:
$ unxz maemo-leste-*-arm64-pinephone-*.img.xz
Write the image to microSD. '''''Be very careful with this step (read warnings below).'''''
$ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync
Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer.
<small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small>
<small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small>
<small>You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small>
=== eMMC Installation ===
''Note: Currently '''not working'''''
'''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''.
==== Preparing the .img file for eMMC boot ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.''
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install Using Tow-Boot ====
If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode.
The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc.
==== Using JumpDrive ====
You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.
The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card.
[https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.]
==== From the booted microSD ====
# Flash Maemo Leste to the microSD card
# Insert microSD card and boot the phone
# Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download.
# Extract the image file so that it only ends in ".img"
# Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct.
# Turn off phone, remove microSD card and then turn on the phone.
== Post-Installation ==
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet.
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with:
$ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
=== Installing apps ===
* Apps can be installed just as on any Devuan system with:
$ sudo apt install ''package-name''
* There is also the app store.
=== Launching apps ===
This works for any app. Say for instance, you want to run Iceweasel/Firefox:
* Launch apps from the desktop
* Launch apps from your console:
$ iceweasel &
* Install a universal app launcher that you can run from desktop:
$ sudo apt install desktop-cmd-exec
=== Make apps show up on desktop ===
Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples])
=== Make keyboard show on Firefox/Iceweasel ===
The keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar).
[[Category:Device]]
f65ea218c53b3956b533762ff7f3bcb31d89adce
1348
1347
2022-08-15T22:45:16Z
Auanta
57
/* Using JumpDrive */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro.
== Notes ==
Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project.
== Status ==
Currently, most things work, for example you can:
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
== More Information ==
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
== Installation ==
Unlike most phones, it's pretty simple.
=== SD Card Installation ===
==== Prepare the SD card ====
Create a new msdos partition table using fdisk
$ sudo fdisk /dev/''SDCARD''
# press 'p' to view current table
# press 'o' to erase and make a new table
# press 'w' to write changes and quit
==== Write the image to an SD-Card. ====
Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here].
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE''
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE''
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
$ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56
Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image:
$ unxz maemo-leste-*-arm64-pinephone-*.img.xz
Write the image to microSD. '''''Be very careful with this step (read warnings below).'''''
$ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync
Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer.
<small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small>
<small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small>
<small>You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small>
=== eMMC Installation ===
''Note: Currently '''not working'''''
'''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''.
==== Preparing the .img file for eMMC boot ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.''
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install Using Tow-Boot ====
If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode.
The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc.
==== Install Using JumpDrive ====
You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.
The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card.
[https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.]
==== From the booted microSD ====
# Flash Maemo Leste to the microSD card
# Insert microSD card and boot the phone
# Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download.
# Extract the image file so that it only ends in ".img"
# Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct.
# Turn off phone, remove microSD card and then turn on the phone.
== Post-Installation ==
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet.
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with:
$ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
=== Installing apps ===
* Apps can be installed just as on any Devuan system with:
$ sudo apt install ''package-name''
* There is also the app store.
=== Launching apps ===
This works for any app. Say for instance, you want to run Iceweasel/Firefox:
* Launch apps from the desktop
* Launch apps from your console:
$ iceweasel &
* Install a universal app launcher that you can run from desktop:
$ sudo apt install desktop-cmd-exec
=== Make apps show up on desktop ===
Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples])
=== Make keyboard show on Firefox/Iceweasel ===
The keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar).
[[Category:Device]]
15631e5fb6dfdcdab06e77827dade722eb69805c
1349
1348
2022-08-15T22:45:39Z
Auanta
57
/* From the booted microSD */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro.
== Notes ==
Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project.
== Status ==
Currently, most things work, for example you can:
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
== More Information ==
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
== Installation ==
Unlike most phones, it's pretty simple.
=== SD Card Installation ===
==== Prepare the SD card ====
Create a new msdos partition table using fdisk
$ sudo fdisk /dev/''SDCARD''
# press 'p' to view current table
# press 'o' to erase and make a new table
# press 'w' to write changes and quit
==== Write the image to an SD-Card. ====
Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here].
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE''
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE''
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
$ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56
Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image:
$ unxz maemo-leste-*-arm64-pinephone-*.img.xz
Write the image to microSD. '''''Be very careful with this step (read warnings below).'''''
$ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync
Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer.
<small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one.</small>
<small>Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.</small>
<small>You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small>
=== eMMC Installation ===
''Note: Currently '''not working'''''
'''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''.
==== Preparing the .img file for eMMC boot ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.''
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install Using Tow-Boot ====
If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode.
The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc.
==== Install Using JumpDrive ====
You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.
The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card.
[https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.]
==== Install from the booted microSD ====
# Flash Maemo Leste to the microSD card
# Insert microSD card and boot the phone
# Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download.
# Extract the image file so that it only ends in ".img"
# Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct.
# Turn off phone, remove microSD card and then turn on the phone.
== Post-Installation ==
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet.
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with:
$ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
=== Installing apps ===
* Apps can be installed just as on any Devuan system with:
$ sudo apt install ''package-name''
* There is also the app store.
=== Launching apps ===
This works for any app. Say for instance, you want to run Iceweasel/Firefox:
* Launch apps from the desktop
* Launch apps from your console:
$ iceweasel &
* Install a universal app launcher that you can run from desktop:
$ sudo apt install desktop-cmd-exec
=== Make apps show up on desktop ===
Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples])
=== Make keyboard show on Firefox/Iceweasel ===
The keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar).
[[Category:Device]]
c7333d0fa2c3077a800b6d176f86c727f43e5026
1350
1349
2022-08-15T22:52:23Z
Auanta
57
formatting, reorganizing
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro.
== Notes ==
Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project.
== Status ==
Currently, most things work, for example you can:
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
== More Information ==
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
== Installation ==
Unlike most phones, it's pretty simple.
=== SD Card Installation ===
==== Prepare the SD card ====
Create a new msdos partition table using fdisk
$ sudo fdisk /dev/''SDCARD''
# press 'p' to view current table
# press 'o' to erase and make a new table
# press 'w' to write changes and quit
==== Write the image to an SD-Card. ====
Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here].
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE''
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE''
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
$ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56
Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image:
$ unxz maemo-leste-*-arm64-pinephone-*.img.xz
Write the image to microSD. '''''Be very careful with this step''''' to select the correct device.
$ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync
Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.
<small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one. You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small>
=== eMMC Installation ===
''Note: Currently '''not working'''''
'''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''.
==== Preparing the .img file for eMMC boot ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.''
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install Using Tow-Boot ====
If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode.
The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc.
==== Install Using JumpDrive ====
You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.
The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card.
[https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.]
==== Install from the booted microSD ====
# Flash Maemo Leste to the microSD card
# Insert microSD card and boot the phone
# Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download.
# Extract the image file so that it only ends in ".img"
# Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct.
# Turn off phone, remove microSD card and then turn on the phone.
== Post-Installation ==
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet.
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with:
$ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
=== Installing apps ===
* Apps can be installed just as on any Devuan system with:
$ sudo apt install ''package-name''
* There is also the app store.
=== Launching apps ===
This works for any app. Say for instance, you want to run Iceweasel/Firefox:
* Launch apps from the desktop
* Launch apps from your console:
$ iceweasel &
* Install a universal app launcher that you can run from desktop:
$ sudo apt install desktop-cmd-exec
=== Make apps show up on desktop ===
Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples])
=== Make keyboard show on Firefox/Iceweasel ===
The keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar).
[[Category:Device]]
6553dfd7cbef1f8bfccac0334ee76160992407b4
1351
1350
2022-08-15T22:56:29Z
Auanta
57
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro.
== Notes ==
Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project.
== Status ==
Currently, most things work, for example you can:
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
== More Information ==
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
== Installation ==
Unlike most phones, it's pretty simple.
=== SD Card Installation ===
==== Prepare the SD card ====
Create a new msdos partition table using fdisk
$ sudo fdisk /dev/''SDCARD''
# press 'p' to view current table
# press 'o' to erase and make a new table
# press 'w' to write changes and quit
==== Write the image to an SD-Card. ====
Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here].
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE''
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE''
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
$ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56
Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image:
$ unxz maemo-leste-*-arm64-pinephone-*.img.xz
Write the image to microSD. '''''Be very careful with this step''''' to select the correct device.
$ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync
Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.
<small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one. You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small>
=== eMMC Installation ===
''Note: Currently '''not working'''''
'''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''.
==== Preparing the .img file for eMMC boot ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.''
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install Using Tow-Boot ====
If you flashed tow-boot to the PinePhone (instructions [https://tow-boot.org/devices/pine64-pinephoneA64.html here]), the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode.
The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc.
==== Install Using JumpDrive ====
You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.
The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card.
[https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.]
==== Install from the booted microSD ====
# Flash Maemo Leste to the microSD card
# Insert microSD card and boot the phone
# Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download.
# Extract the image file so that it only ends in ".img"
# Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct.
# Turn off phone, remove microSD card and then turn on the phone.
== Post-Installation ==
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet.
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with:
$ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
=== Installing apps ===
* Apps can be installed just as on any Devuan system with:
$ sudo apt install ''package-name''
* There is also the app store.
=== Launching apps ===
This works for any app. Say for instance, you want to run Iceweasel/Firefox:
* Launch apps from the desktop
* Launch apps from your console:
$ iceweasel &
* Install a universal app launcher that you can run from desktop:
$ sudo apt install desktop-cmd-exec
=== Make apps show up on desktop ===
Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples])
=== Make keyboard show on Firefox/Iceweasel ===
The keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar). This will be fixed in a future release (image tested: 20220731).
[[Category:Device]]
8756d08bd36d604c946edcded47ae857e8689d40
1352
1351
2022-08-15T23:08:22Z
Auanta
57
/* Install Using Tow-Boot */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro.
== Notes ==
Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project.
== Status ==
Currently, most things work, for example you can:
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
== More Information ==
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
== Installation ==
Unlike most phones, it's pretty simple.
=== SD Card Installation ===
==== Prepare the SD card ====
Create a new msdos partition table using fdisk
$ sudo fdisk /dev/''SDCARD''
# press 'p' to view current table
# press 'o' to erase and make a new table
# press 'w' to write changes and quit
==== Write the image to an SD-Card. ====
Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here].
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE''
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE''
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
$ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56
Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image:
$ unxz maemo-leste-*-arm64-pinephone-*.img.xz
Write the image to microSD. '''''Be very careful with this step''''' to select the correct device.
$ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync
Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.
<small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one. You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small>
=== eMMC Installation ===
''Note: Currently '''not working'''''
'''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''.
==== Preparing the .img file for eMMC boot ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.''
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install Using Tow-Boot ====
If you [https://tow-boot.org/devices/pine64-pinephoneA64.html flashed tow-boot to the PinePhone] the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode.
The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc.
==== Install Using JumpDrive ====
You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.
The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card.
[https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.]
==== Install from the booted microSD ====
# Flash Maemo Leste to the microSD card
# Insert microSD card and boot the phone
# Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download.
# Extract the image file so that it only ends in ".img"
# Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct.
# Turn off phone, remove microSD card and then turn on the phone.
== Post-Installation ==
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet.
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with:
$ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
=== Installing apps ===
* Apps can be installed just as on any Devuan system with:
$ sudo apt install ''package-name''
* There is also the app store.
=== Launching apps ===
This works for any app. Say for instance, you want to run Iceweasel/Firefox:
* Launch apps from the desktop
* Launch apps from your console:
$ iceweasel &
* Install a universal app launcher that you can run from desktop:
$ sudo apt install desktop-cmd-exec
=== Make apps show up on desktop ===
Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples])
=== Make keyboard show on Firefox/Iceweasel ===
The keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar). This will be fixed in a future release (image tested: 20220731).
[[Category:Device]]
265b0791be694382c25c720a79db3dec7edce5dc
1354
1352
2022-08-16T00:27:06Z
Auanta
57
more advice
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro.
== Notes ==
Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project.
== Status ==
Currently, most things work, for example you can:
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
== More Information ==
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
== Installation ==
Unlike most phones, it's pretty simple.
=== SD Card Installation ===
==== Prepare the SD card ====
Create a new msdos partition table using fdisk
$ sudo fdisk /dev/''SDCARD''
# press 'p' to view current table
# press 'o' to erase and make a new table
# press 'w' to write changes and quit
==== Write the image to an SD-Card. ====
Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here].
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE''
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE''
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
$ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56
Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image:
$ unxz maemo-leste-*-arm64-pinephone-*.img.xz
Write the image to microSD. '''''Be very careful with this step''''' to select the correct device.
$ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync
Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.
<small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one. You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small>
=== eMMC Installation ===
''Note: Currently '''not working'''''
'''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''.
==== Preparing the .img file for eMMC boot ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.''
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install Using Tow-Boot ====
If you [https://tow-boot.org/devices/pine64-pinephoneA64.html flashed tow-boot to the PinePhone] the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode.
The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc.
==== Install Using JumpDrive ====
You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.
The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card.
[https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.]
==== Install from the booted microSD ====
# Flash Maemo Leste to the microSD card
# Insert microSD card and boot the phone
# Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download.
# Extract the image file so that it only ends in ".img"
# Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct.
# Turn off phone, remove microSD card and then turn on the phone.
== Post-Installation ==
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet.
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with:
$ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
=== Installing apps ===
* Apps can be installed just as on any Devuan system with:
$ sudo apt install ''package-name''
* There is also the app store.
=== Launching apps ===
This works for any app. Say for instance, you want to run Iceweasel/Firefox:
* Launch apps from the desktop
* Launch apps from your console:
$ iceweasel &
* Install a universal app launcher that you can run from desktop:
$ sudo apt install desktop-cmd-exec
=== Make apps show up on desktop ===
Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples])
=== Unhide the keyboard ===
The virtual keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar in a web browser like Firefox). This will be fixed in a future release (image tested: 20220731).
=== Note about Calculator ===
The default GUI calculator works (08/15/2022) but you won't see the numbers appear on screen until after you touch the next key.
=== Time zone / World Clock ===
Currently (06/15/2022) the interface to the default GUI clock has a few bugs but the workaround is to:
* Go to Settings > Date and Time > and adjust time zone and date and time there. This also has some bugs, but only in portrait mode.
* Or just use the console:
$ sudo date -s HH:MM
$ sudo date -s YYYYMMDD
$ sudo ln -s /usr/share/zoneinfo/YOURREGION/YOURCITY /etc/localtime
[[Category:Device]]
3fcd979f2b66279dc56aef5e3f58ec1b5030b318
1355
1354
2022-08-16T00:27:52Z
Auanta
57
/* Time zone / World Clock */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro.
== Notes ==
Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project.
== Status ==
Currently, most things work, for example you can:
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
== More Information ==
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to off. You may want to go to setting and change that first for using the terminal. Click the top left corner->"Settings"->"Text input"->check the "Use virtual keyboard" option. You may also want to change the keyboard layout by changing the dictionary setting.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
== Installation ==
Unlike most phones, it's pretty simple.
=== SD Card Installation ===
==== Prepare the SD card ====
Create a new msdos partition table using fdisk
$ sudo fdisk /dev/''SDCARD''
# press 'p' to view current table
# press 'o' to erase and make a new table
# press 'w' to write changes and quit
==== Write the image to an SD-Card. ====
Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here].
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE''
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE''
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
$ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56
Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image:
$ unxz maemo-leste-*-arm64-pinephone-*.img.xz
Write the image to microSD. '''''Be very careful with this step''''' to select the correct device.
$ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync
Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.
<small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one. You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small>
=== eMMC Installation ===
''Note: Currently '''not working'''''
'''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''.
==== Preparing the .img file for eMMC boot ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.''
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install Using Tow-Boot ====
If you [https://tow-boot.org/devices/pine64-pinephoneA64.html flashed tow-boot to the PinePhone] the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode.
The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc.
==== Install Using JumpDrive ====
You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.
The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card.
[https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.]
==== Install from the booted microSD ====
# Flash Maemo Leste to the microSD card
# Insert microSD card and boot the phone
# Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download.
# Extract the image file so that it only ends in ".img"
# Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct.
# Turn off phone, remove microSD card and then turn on the phone.
== Post-Installation ==
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet.
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with:
$ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
=== Installing apps ===
* Apps can be installed just as on any Devuan system with:
$ sudo apt install ''package-name''
* There is also the app store.
=== Launching apps ===
This works for any app. Say for instance, you want to run Iceweasel/Firefox:
* Launch apps from the desktop
* Launch apps from your console:
$ iceweasel &
* Install a universal app launcher that you can run from desktop:
$ sudo apt install desktop-cmd-exec
=== Make apps show up on desktop ===
Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples])
=== Unhide the keyboard ===
The virtual keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar in a web browser like Firefox). This will be fixed in a future release (image tested: 20220731).
=== Note about Calculator ===
The default GUI calculator works (08/15/2022) but you won't see the numbers appear on screen until after you touch the next key.
=== Time zone / World Clock ===
Currently (06/15/2022) the interface to the default GUI clock has a few bugs but the workaround is to:
* Go to Settings > Date and Time > and adjust time zone and date and time there. This also has some bugs, but only in portrait mode.
* Or just use the console:
$ sudo date -s HH:MM
$ sudo date -s YYYYMMDD
$ sudo ln -s /usr/share/zoneinfo/YOURREGION/YOURCITY /etc/localtime
[[Category:Device]]
4ad754b5f4baa09c95e6ace7861267f9120f6529
1356
1355
2022-08-16T01:01:21Z
Auanta
57
/* More Information */ update
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro.
== Notes ==
Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project.
== Status ==
Currently, most things work, for example you can:
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
=== More Information ===
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to on. You can check by tapping the top left corner->"Settings"->"Text input"-> ensure the "Use virtual keyboard" option is checked. You may also want to change the keyboard layout by changing the dictionary settings.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* VoLTE should work out-of-the-box. If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
== Installation ==
Unlike most phones, it's pretty simple.
=== SD Card Installation ===
==== Prepare the SD card ====
Create a new msdos partition table using fdisk
$ sudo fdisk /dev/''SDCARD''
# press 'p' to view current table
# press 'o' to erase and make a new table
# press 'w' to write changes and quit
==== Write the image to an SD-Card. ====
Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here].
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE''
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE''
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
$ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56
Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image:
$ unxz maemo-leste-*-arm64-pinephone-*.img.xz
Write the image to microSD. '''''Be very careful with this step''''' to select the correct device.
$ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync
Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.
<small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one. You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small>
=== eMMC Installation ===
''Note: Currently '''not working'''''
'''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''.
==== Preparing the .img file for eMMC boot ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.''
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install Using Tow-Boot ====
If you [https://tow-boot.org/devices/pine64-pinephoneA64.html flashed tow-boot to the PinePhone] the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode.
The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc.
==== Install Using JumpDrive ====
You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.
The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card.
[https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.]
==== Install from the booted microSD ====
# Flash Maemo Leste to the microSD card
# Insert microSD card and boot the phone
# Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download.
# Extract the image file so that it only ends in ".img"
# Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct.
# Turn off phone, remove microSD card and then turn on the phone.
== Post-Installation ==
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet.
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with:
$ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
=== Installing apps ===
* Apps can be installed just as on any Devuan system with:
$ sudo apt install ''package-name''
* There is also the app store.
=== Launching apps ===
This works for any app. Say for instance, you want to run Iceweasel/Firefox:
* Launch apps from the desktop
* Launch apps from your console:
$ iceweasel &
* Install a universal app launcher that you can run from desktop:
$ sudo apt install desktop-cmd-exec
=== Make apps show up on desktop ===
Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples])
=== Unhide the keyboard ===
The virtual keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar in a web browser like Firefox). This will be fixed in a future release (image tested: 20220731).
=== Note about Calculator ===
The default GUI calculator works (08/15/2022) but you won't see the numbers appear on screen until after you touch the next key.
=== Time zone / World Clock ===
Currently (06/15/2022) the interface to the default GUI clock has a few bugs but the workaround is to:
* Go to Settings > Date and Time > and adjust time zone and date and time there. This also has some bugs, but only in portrait mode.
* Or just use the console:
$ sudo date -s HH:MM
$ sudo date -s YYYYMMDD
$ sudo ln -s /usr/share/zoneinfo/YOURREGION/YOURCITY /etc/localtime
[[Category:Device]]
ae0e46c3988146be9739d214b12f7d2d436ab59f
1357
1356
2022-08-16T01:02:53Z
Auanta
57
/* More Information */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro.
== Notes ==
Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project.
== Status ==
Currently, most things work, for example you can:
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
=== More Information ===
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to on. You can check by tapping the top left corner->"Settings"->"Text input"-> ensure the "Use virtual keyboard" option is checked. You may also want to change the keyboard layout by changing the dictionary settings.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* '''VoLTE should work out-of-the-box.''' If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
== Installation ==
Unlike most phones, it's pretty simple.
=== SD Card Installation ===
==== Prepare the SD card ====
Create a new msdos partition table using fdisk
$ sudo fdisk /dev/''SDCARD''
# press 'p' to view current table
# press 'o' to erase and make a new table
# press 'w' to write changes and quit
==== Write the image to an SD-Card. ====
Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here].
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE''
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE''
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
$ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56
Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image:
$ unxz maemo-leste-*-arm64-pinephone-*.img.xz
Write the image to microSD. '''''Be very careful with this step''''' to select the correct device.
$ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync
Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.
<small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one. You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small>
=== eMMC Installation ===
''Note: Currently '''not working'''''
'''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''.
==== Preparing the .img file for eMMC boot ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.''
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install Using Tow-Boot ====
If you [https://tow-boot.org/devices/pine64-pinephoneA64.html flashed tow-boot to the PinePhone] the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode.
The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc.
==== Install Using JumpDrive ====
You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.
The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card.
[https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.]
==== Install from the booted microSD ====
# Flash Maemo Leste to the microSD card
# Insert microSD card and boot the phone
# Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download.
# Extract the image file so that it only ends in ".img"
# Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct.
# Turn off phone, remove microSD card and then turn on the phone.
== Post-Installation ==
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet.
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with:
$ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
=== Installing apps ===
* Apps can be installed just as on any Devuan system with:
$ sudo apt install ''package-name''
* There is also the app store.
=== Launching apps ===
This works for any app. Say for instance, you want to run Iceweasel/Firefox:
* Launch apps from the desktop
* Launch apps from your console:
$ iceweasel &
* Install a universal app launcher that you can run from desktop:
$ sudo apt install desktop-cmd-exec
=== Make apps show up on desktop ===
Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples])
=== Unhide the keyboard ===
The virtual keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar in a web browser like Firefox). This will be fixed in a future release (image tested: 20220731).
=== Note about Calculator ===
The default GUI calculator works (08/15/2022) but you won't see the numbers appear on screen until after you touch the next key.
=== Time zone / World Clock ===
Currently (06/15/2022) the interface to the default GUI clock has a few bugs but the workaround is to:
* Go to Settings > Date and Time > and adjust time zone and date and time there. This also has some bugs, but only in portrait mode.
* Or just use the console:
$ sudo date -s HH:MM
$ sudo date -s YYYYMMDD
$ sudo ln -s /usr/share/zoneinfo/YOURREGION/YOURCITY /etc/localtime
[[Category:Device]]
639d7db7b2124752aa32681ea8c17706e883a531
1358
1357
2022-08-16T01:42:23Z
Auanta
57
/* Note about Calculator */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro.
== Notes ==
Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project.
== Status ==
Currently, most things work, for example you can:
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
=== More Information ===
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to on. You can check by tapping the top left corner->"Settings"->"Text input"-> ensure the "Use virtual keyboard" option is checked. You may also want to change the keyboard layout by changing the dictionary settings.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* '''VoLTE should work out-of-the-box.''' If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
== Installation ==
Unlike most phones, it's pretty simple.
=== SD Card Installation ===
==== Prepare the SD card ====
Create a new msdos partition table using fdisk
$ sudo fdisk /dev/''SDCARD''
# press 'p' to view current table
# press 'o' to erase and make a new table
# press 'w' to write changes and quit
==== Write the image to an SD-Card. ====
Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here].
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE''
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE''
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
$ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56
Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image:
$ unxz maemo-leste-*-arm64-pinephone-*.img.xz
Write the image to microSD. '''''Be very careful with this step''''' to select the correct device.
$ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync
Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.
<small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one. You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small>
=== eMMC Installation ===
''Note: Currently '''not working'''''
'''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''.
==== Preparing the .img file for eMMC boot ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.''
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install Using Tow-Boot ====
If you [https://tow-boot.org/devices/pine64-pinephoneA64.html flashed tow-boot to the PinePhone] the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode.
The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc.
==== Install Using JumpDrive ====
You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.
The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card.
[https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.]
==== Install from the booted microSD ====
# Flash Maemo Leste to the microSD card
# Insert microSD card and boot the phone
# Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download.
# Extract the image file so that it only ends in ".img"
# Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct.
# Turn off phone, remove microSD card and then turn on the phone.
== Post-Installation ==
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet.
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with:
$ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
=== Installing apps ===
* Apps can be installed just as on any Devuan system with:
$ sudo apt install ''package-name''
* There is also the app store.
=== Launching apps ===
This works for any app. Say for instance, you want to run Iceweasel/Firefox:
* Launch apps from the desktop
* Launch apps from your console:
$ iceweasel &
* Install a universal app launcher that you can run from desktop:
$ sudo apt install desktop-cmd-exec
=== Make apps show up on desktop ===
Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples])
=== Unhide the keyboard ===
The virtual keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar in a web browser like Firefox). This will be fixed in a future release (image tested: 20220731).
=== Note about Calculator ===
The default GUI calculator works (08/15/2022) but you won't see the numbers appear on screen until after you touch the next key. It should be used in landscape mode for best results.
=== Time zone / World Clock ===
Currently (06/15/2022) the interface to the default GUI clock has a few bugs but the workaround is to:
* Go to Settings > Date and Time > and adjust time zone and date and time there. This also has some bugs, but only in portrait mode.
* Or just use the console:
$ sudo date -s HH:MM
$ sudo date -s YYYYMMDD
$ sudo ln -s /usr/share/zoneinfo/YOURREGION/YOURCITY /etc/localtime
[[Category:Device]]
939391850e71d14f80f3c8e4080f9466823780f5
1359
1358
2022-08-16T02:57:20Z
Auanta
57
/* Note about Calculator */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro.
== Notes ==
Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project.
== Status ==
Currently, most things work, for example you can:
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
=== More Information ===
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to on. You can check by tapping the top left corner->"Settings"->"Text input"-> ensure the "Use virtual keyboard" option is checked. You may also want to change the keyboard layout by changing the dictionary settings.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* '''VoLTE should work out-of-the-box.''' If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
== Installation ==
Unlike most phones, it's pretty simple.
=== SD Card Installation ===
==== Prepare the SD card ====
Create a new msdos partition table using fdisk
$ sudo fdisk /dev/''SDCARD''
# press 'p' to view current table
# press 'o' to erase and make a new table
# press 'w' to write changes and quit
==== Write the image to an SD-Card. ====
Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here].
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE''
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE''
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
$ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56
Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image:
$ unxz maemo-leste-*-arm64-pinephone-*.img.xz
Write the image to microSD. '''''Be very careful with this step''''' to select the correct device.
$ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync
Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.
<small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one. You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small>
=== eMMC Installation ===
''Note: Currently '''not working'''''
'''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''.
==== Preparing the .img file for eMMC boot ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.''
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install Using Tow-Boot ====
If you [https://tow-boot.org/devices/pine64-pinephoneA64.html flashed tow-boot to the PinePhone] the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode.
The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc.
==== Install Using JumpDrive ====
You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.
The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card.
[https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.]
==== Install from the booted microSD ====
# Flash Maemo Leste to the microSD card
# Insert microSD card and boot the phone
# Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download.
# Extract the image file so that it only ends in ".img"
# Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct.
# Turn off phone, remove microSD card and then turn on the phone.
== Post-Installation ==
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet.
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with:
$ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
=== Installing apps ===
* Apps can be installed just as on any Devuan system with:
$ sudo apt install ''package-name''
* There is also the app store.
=== Launching apps ===
This works for any app. Say for instance, you want to run Iceweasel/Firefox:
* Launch apps from the desktop
* Launch apps from your console:
$ iceweasel &
* Install a universal app launcher that you can run from desktop:
$ sudo apt install desktop-cmd-exec
=== Make apps show up on desktop ===
Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples])
=== Unhide the keyboard ===
The virtual keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar in a web browser like Firefox). This will be fixed in a future release (image tested: 20220731).
=== Note about Calculator ===
The default GUI calculator works (08/15/2022) but you won't see the numbers appear on screen until after you touch the next key. It should be used in landscape mode for best results, as there are additional display issues in portrait mode.
=== Time zone / World Clock ===
Currently (06/15/2022) the interface to the default GUI clock has a few bugs but the workaround is to:
* Go to Settings > Date and Time > and adjust time zone and date and time there. This also has some bugs, but only in portrait mode.
* Or just use the console:
$ sudo date -s HH:MM
$ sudo date -s YYYYMMDD
$ sudo ln -s /usr/share/zoneinfo/YOURREGION/YOURCITY /etc/localtime
[[Category:Device]]
963a8f08c6811e7639aa43e9054da62f15994895
1360
1359
2022-08-16T03:03:26Z
Auanta
57
/* Make apps show up on desktop */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro.
== Notes ==
Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project.
== Status ==
Currently, most things work, for example you can:
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
=== More Information ===
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to on. You can check by tapping the top left corner->"Settings"->"Text input"-> ensure the "Use virtual keyboard" option is checked. You may also want to change the keyboard layout by changing the dictionary settings.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* '''VoLTE should work out-of-the-box.''' If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
== Installation ==
Unlike most phones, it's pretty simple.
=== SD Card Installation ===
==== Prepare the SD card ====
Create a new msdos partition table using fdisk
$ sudo fdisk /dev/''SDCARD''
# press 'p' to view current table
# press 'o' to erase and make a new table
# press 'w' to write changes and quit
==== Write the image to an SD-Card. ====
Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here].
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE''
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE''
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
$ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56
Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image:
$ unxz maemo-leste-*-arm64-pinephone-*.img.xz
Write the image to microSD. '''''Be very careful with this step''''' to select the correct device.
$ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync
Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.
<small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one. You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small>
=== eMMC Installation ===
''Note: Currently '''not working'''''
'''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''.
==== Preparing the .img file for eMMC boot ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.''
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install Using Tow-Boot ====
If you [https://tow-boot.org/devices/pine64-pinephoneA64.html flashed tow-boot to the PinePhone] the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode.
The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc.
==== Install Using JumpDrive ====
You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.
The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card.
[https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.]
==== Install from the booted microSD ====
# Flash Maemo Leste to the microSD card
# Insert microSD card and boot the phone
# Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download.
# Extract the image file so that it only ends in ".img"
# Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct.
# Turn off phone, remove microSD card and then turn on the phone.
== Post-Installation ==
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet.
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with:
$ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
=== Installing apps ===
* Apps can be installed just as on any Devuan system with:
$ sudo apt install ''package-name''
* There is also the app store.
=== Launching apps ===
This works for any app. Say for instance, you want to run Iceweasel/Firefox:
* Launch apps from the desktop
* Launch apps from your console:
$ iceweasel &
* Install a universal app launcher that you can run from desktop:
$ sudo apt install desktop-cmd-exec
=== Make apps show up on desktop ===
Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples])
To view a list of app currently installed apps, do:
$ sudo apt list --installed | less
=== Unhide the keyboard ===
The virtual keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar in a web browser like Firefox). This will be fixed in a future release (image tested: 20220731).
=== Note about Calculator ===
The default GUI calculator works (08/15/2022) but you won't see the numbers appear on screen until after you touch the next key. It should be used in landscape mode for best results, as there are additional display issues in portrait mode.
=== Time zone / World Clock ===
Currently (06/15/2022) the interface to the default GUI clock has a few bugs but the workaround is to:
* Go to Settings > Date and Time > and adjust time zone and date and time there. This also has some bugs, but only in portrait mode.
* Or just use the console:
$ sudo date -s HH:MM
$ sudo date -s YYYYMMDD
$ sudo ln -s /usr/share/zoneinfo/YOURREGION/YOURCITY /etc/localtime
[[Category:Device]]
9c7948711fa1ec30ec594fc931df6abd6939681e
1361
1360
2022-08-16T03:04:18Z
Auanta
57
/* Make apps show up on desktop */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro.
== Notes ==
Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project.
== Status ==
Currently, most things work, for example you can:
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
=== More Information ===
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to on. You can check by tapping the top left corner->"Settings"->"Text input"-> ensure the "Use virtual keyboard" option is checked. You may also want to change the keyboard layout by changing the dictionary settings.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* '''VoLTE should work out-of-the-box.''' If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
== Installation ==
Unlike most phones, it's pretty simple.
=== SD Card Installation ===
==== Prepare the SD card ====
Create a new msdos partition table using fdisk
$ sudo fdisk /dev/''SDCARD''
# press 'p' to view current table
# press 'o' to erase and make a new table
# press 'w' to write changes and quit
==== Write the image to an SD-Card. ====
Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here].
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE''
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE''
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
$ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56
Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image:
$ unxz maemo-leste-*-arm64-pinephone-*.img.xz
Write the image to microSD. '''''Be very careful with this step''''' to select the correct device.
$ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync
Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.
<small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one. You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small>
=== eMMC Installation ===
''Note: Currently '''not working'''''
'''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''.
==== Preparing the .img file for eMMC boot ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.''
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install Using Tow-Boot ====
If you [https://tow-boot.org/devices/pine64-pinephoneA64.html flashed tow-boot to the PinePhone] the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode.
The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc.
==== Install Using JumpDrive ====
You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.
The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card.
[https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.]
==== Install from the booted microSD ====
# Flash Maemo Leste to the microSD card
# Insert microSD card and boot the phone
# Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download.
# Extract the image file so that it only ends in ".img"
# Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct.
# Turn off phone, remove microSD card and then turn on the phone.
== Post-Installation ==
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet.
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with:
$ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
=== Installing apps ===
* Apps can be installed just as on any Devuan system with:
$ sudo apt install ''package-name''
* There is also the app store.
=== Launching apps ===
This works for any app. Say for instance, you want to run Iceweasel/Firefox:
* Launch apps from the desktop
* Launch apps from your console:
$ iceweasel &
* Install a universal app launcher that you can run from desktop:
$ sudo apt install desktop-cmd-exec
=== Make apps show up on desktop ===
Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples])
To view a list of currently installed apps, do:
$ sudo apt list --installed | less
This should help you figure out for which apps to configure .desktop icons.
=== Unhide the keyboard ===
The virtual keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar in a web browser like Firefox). This will be fixed in a future release (image tested: 20220731).
=== Note about Calculator ===
The default GUI calculator works (08/15/2022) but you won't see the numbers appear on screen until after you touch the next key. It should be used in landscape mode for best results, as there are additional display issues in portrait mode.
=== Time zone / World Clock ===
Currently (06/15/2022) the interface to the default GUI clock has a few bugs but the workaround is to:
* Go to Settings > Date and Time > and adjust time zone and date and time there. This also has some bugs, but only in portrait mode.
* Or just use the console:
$ sudo date -s HH:MM
$ sudo date -s YYYYMMDD
$ sudo ln -s /usr/share/zoneinfo/YOURREGION/YOURCITY /etc/localtime
[[Category:Device]]
133a53b7cbd262597e6c29fed3150c128da9158c
1362
1361
2022-08-16T03:09:53Z
Auanta
57
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro.
== Notes ==
Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project.
== Status ==
Currently, most things work, for example you can:
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
=== More Information ===
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to on. You can check by tapping the top left corner->"Settings"->"Text input"-> ensure the "Use virtual keyboard" option is checked. You may also want to change the keyboard layout by changing the dictionary settings.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* '''VoLTE should work out-of-the-box.''' If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
== Installation ==
Unlike most phones, it's pretty simple.
=== SD Card Installation ===
==== Prepare the SD card ====
Create a new msdos partition table using fdisk
$ sudo fdisk /dev/''SDCARD''
# press 'p' to view current table
# press 'o' to erase and make a new table
# press 'w' to write changes and quit
==== Write the image to an SD-Card. ====
Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here].
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE''
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE''
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
$ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56
Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image:
$ unxz maemo-leste-*-arm64-pinephone-*.img.xz
Write the image to microSD. '''''Be very careful with this step''''' to select the correct device.
$ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync
Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.
<small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one. You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small>
=== eMMC Installation ===
''Note: Currently '''not working'''''
'''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''.
==== Preparing the .img file for eMMC boot ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.''
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install Using Tow-Boot ====
If you [https://tow-boot.org/devices/pine64-pinephoneA64.html flashed tow-boot to the PinePhone] the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode.
The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc.
==== Install Using JumpDrive ====
You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.
The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card.
[https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.]
==== Install from the booted microSD ====
# Flash Maemo Leste to the microSD card
# Insert microSD card and boot the phone
# Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download.
# Extract the image file so that it only ends in ".img"
# Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct.
# Turn off phone, remove microSD card and then turn on the phone.
== Post-Installation ==
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet.
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with:
$ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
=== Installing apps ===
* Apps can be installed just as on any Devuan system with:
$ sudo apt install ''package-name''
* There is also the app store.
=== Launching apps ===
This works for any app. Say for instance, you want to run Iceweasel/Firefox:
* Launch apps from the desktop
* Launch apps from your console:
$ iceweasel &
* Install a universal app launcher that you can run from desktop:
$ sudo apt install desktop-cmd-exec
=== Make apps show up on desktop ===
Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples])
To view a list of currently installed apps, do:
$ sudo apt list --installed | less
This should help you figure out for which apps to configure .desktop icons.
=== Unhide the keyboard ===
The virtual keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar in a web browser like Firefox). This will be fixed in a future release (image tested: 20220731).
=== Note about Calculator ===
The default GUI calculator works (08/15/2022) but you won't see the numbers appear on screen until after you touch the next key. It should be used in landscape mode for best results, as there are additional display issues in portrait mode.
=== Time zone / World Clock ===
Currently (06/15/2022) the interface to the default GUI clock has a few bugs but the workaround is to:
* Go to Settings > Date and Time > and adjust time zone and date and time there. This also has some bugs, but only in portrait mode.
* Or just use the console:
$ sudo date -s HH:MM
$ sudo date -s YYYYMMDD
$ sudo ln -s /usr/share/zoneinfo/YOURREGION/YOURCITY /etc/localtime
=== Customize the Keyboard ===
TODO: write this
[[Category:Device]]
c247e9f3745321f059e27ff6e9f49dd29376d8df
1364
1362
2022-08-16T04:08:53Z
Auanta
57
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro.
== Notes ==
Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project.
== Status ==
Currently, most things work, for example you can:
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
=== More Information ===
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to on. You can check by tapping the top left corner->"Settings"->"Text input"-> ensure the "Use virtual keyboard" option is checked. You may also want to change the keyboard layout by changing the dictionary settings.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* '''VoLTE should work out-of-the-box.''' If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
== Installation ==
Unlike most phones, it's pretty simple.
=== SD Card Installation ===
==== Prepare the SD card ====
Create a new msdos partition table using fdisk
$ sudo fdisk /dev/''SDCARD''
# press 'p' to view current table
# press 'o' to erase and make a new table
# press 'w' to write changes and quit
==== Write the image to an SD-Card. ====
Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here].
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE''
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE''
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
$ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56
Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image:
$ unxz maemo-leste-*-arm64-pinephone-*.img.xz
Write the image to microSD. '''''Be very careful with this step''''' to select the correct device.
$ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync
Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.
<small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one. You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small>
=== eMMC Installation ===
''Note: Currently '''not working'''''
'''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''.
==== Preparing the .img file for eMMC boot ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.''
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install Using Tow-Boot ====
If you [https://tow-boot.org/devices/pine64-pinephoneA64.html flashed tow-boot to the PinePhone] the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode.
The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc.
==== Install Using JumpDrive ====
You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.
The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card.
[https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.]
==== Install from the booted microSD ====
# Flash Maemo Leste to the microSD card
# Insert microSD card and boot the phone
# Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download.
# Extract the image file so that it only ends in ".img"
# Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct.
# Turn off phone, remove microSD card and then turn on the phone.
== Post-Installation ==
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet.
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with:
$ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
=== Installing apps ===
* Apps can be installed just as on any Devuan system with:
$ sudo apt install ''package-name''
* There is also the app store.
=== Launching apps ===
This works for any app. Say for instance, you want to run Iceweasel/Firefox:
* Launch apps from the desktop
* Launch apps from your console:
$ iceweasel &
* Install a universal app launcher that you can run from desktop:
$ sudo apt install desktop-cmd-exec
=== Make apps show up on desktop ===
Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples])
To view a list of currently installed apps, do:
$ sudo apt list --installed | less
This should help you figure out for which apps to configure .desktop icons.
=== Unhide the keyboard ===
The virtual keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar in a web browser like Firefox). This will be fixed in a future release (image tested: 20220731).
=== Note about Calculator ===
The default GUI calculator works (08/15/2022) but you won't see the numbers appear on screen until after you touch the next key. It should be used in landscape mode for best results, as there are additional display issues in portrait mode.
=== Time zone / World Clock ===
Currently (06/15/2022) the interface to the default GUI clock has a few bugs but the workaround is to:
* Go to Settings > Date and Time > and adjust time zone and date and time there. This also has some bugs, but only in portrait mode.
* Or just use the console:
$ sudo date -s HH:MM
$ sudo date -s YYYYMMDD
$ sudo ln -s /usr/share/zoneinfo/YOURREGION/YOURCITY /etc/localtime
=== Customize the Keyboard ===
TODO: write this
=== More Tips & Tricks ===
Visit [https://leste.maemo.org/Tricks this page] for more general advice on customizing Maemo on your PinePhone.
[[Category:Device]]
e22b8ff67f0dd3b1284691adfdb3e054a45a0650
1365
1364
2022-08-16T04:09:35Z
Auanta
57
/* More Tips & Tricks */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro.
== Notes ==
Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project.
== Status ==
Currently, most things work, for example you can:
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
=== More Information ===
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to on. You can check by tapping the top left corner->"Settings"->"Text input"-> ensure the "Use virtual keyboard" option is checked. You may also want to change the keyboard layout by changing the dictionary settings.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* '''VoLTE should work out-of-the-box.''' If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
== Installation ==
Unlike most phones, it's pretty simple.
=== SD Card Installation ===
==== Prepare the SD card ====
Create a new msdos partition table using fdisk
$ sudo fdisk /dev/''SDCARD''
# press 'p' to view current table
# press 'o' to erase and make a new table
# press 'w' to write changes and quit
==== Write the image to an SD-Card. ====
Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here].
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE''
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE''
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
$ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56
Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image:
$ unxz maemo-leste-*-arm64-pinephone-*.img.xz
Write the image to microSD. '''''Be very careful with this step''''' to select the correct device.
$ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync
Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.
<small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one. You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small>
=== eMMC Installation ===
''Note: Currently '''not working'''''
'''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''.
==== Preparing the .img file for eMMC boot ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.''
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install Using Tow-Boot ====
If you [https://tow-boot.org/devices/pine64-pinephoneA64.html flashed tow-boot to the PinePhone] the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode.
The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc.
==== Install Using JumpDrive ====
You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.
The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card.
[https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.]
==== Install from the booted microSD ====
# Flash Maemo Leste to the microSD card
# Insert microSD card and boot the phone
# Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download.
# Extract the image file so that it only ends in ".img"
# Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct.
# Turn off phone, remove microSD card and then turn on the phone.
== Post-Installation ==
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet.
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with:
$ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
=== Installing apps ===
* Apps can be installed just as on any Devuan system with:
$ sudo apt install ''package-name''
* There is also the app store.
=== Launching apps ===
This works for any app. Say for instance, you want to run Iceweasel/Firefox:
* Launch apps from the desktop
* Launch apps from your console:
$ iceweasel &
* Install a universal app launcher that you can run from desktop:
$ sudo apt install desktop-cmd-exec
=== Make apps show up on desktop ===
Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples])
To view a list of currently installed apps, do:
$ sudo apt list --installed | less
This should help you figure out for which apps to configure .desktop icons.
=== Unhide the keyboard ===
The virtual keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar in a web browser like Firefox). This will be fixed in a future release (image tested: 20220731).
=== Note about Calculator ===
The default GUI calculator works (08/15/2022) but you won't see the numbers appear on screen until after you touch the next key. It should be used in landscape mode for best results, as there are additional display issues in portrait mode.
=== Time zone / World Clock ===
Currently (06/15/2022) the interface to the default GUI clock has a few bugs but the workaround is to:
* Go to Settings > Date and Time > and adjust time zone and date and time there. This also has some bugs, but only in portrait mode.
* Or just use the console:
$ sudo date -s HH:MM
$ sudo date -s YYYYMMDD
$ sudo ln -s /usr/share/zoneinfo/YOURREGION/YOURCITY /etc/localtime
=== Customize the Keyboard ===
TODO: write this
=== More Tips & Tricks ===
Visit [https://leste.maemo.org/Tricks '''this page'''] for more general advice on customizing Maemo on your PinePhone.
[[Category:Device]]
07fdbcf7e7ecea5d706ad360fb5172b659bc2bbe
1366
1365
2022-08-16T04:10:40Z
Auanta
57
/* Make apps show up on desktop */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro.
== Notes ==
Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project.
== Status ==
Currently, most things work, for example you can:
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
=== More Information ===
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to on. You can check by tapping the top left corner->"Settings"->"Text input"-> ensure the "Use virtual keyboard" option is checked. You may also want to change the keyboard layout by changing the dictionary settings.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* '''VoLTE should work out-of-the-box.''' If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
== Installation ==
Unlike most phones, it's pretty simple.
=== SD Card Installation ===
==== Prepare the SD card ====
Create a new msdos partition table using fdisk
$ sudo fdisk /dev/''SDCARD''
# press 'p' to view current table
# press 'o' to erase and make a new table
# press 'w' to write changes and quit
==== Write the image to an SD-Card. ====
Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here].
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE''
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE''
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
$ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56
Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image:
$ unxz maemo-leste-*-arm64-pinephone-*.img.xz
Write the image to microSD. '''''Be very careful with this step''''' to select the correct device.
$ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync
Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.
<small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one. You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small>
=== eMMC Installation ===
''Note: Currently '''not working'''''
'''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''.
==== Preparing the .img file for eMMC boot ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.''
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install Using Tow-Boot ====
If you [https://tow-boot.org/devices/pine64-pinephoneA64.html flashed tow-boot to the PinePhone] the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode.
The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc.
==== Install Using JumpDrive ====
You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.
The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card.
[https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.]
==== Install from the booted microSD ====
# Flash Maemo Leste to the microSD card
# Insert microSD card and boot the phone
# Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download.
# Extract the image file so that it only ends in ".img"
# Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct.
# Turn off phone, remove microSD card and then turn on the phone.
== Post-Installation ==
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet.
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with:
$ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
=== Installing apps ===
* Apps can be installed just as on any Devuan system with:
$ sudo apt install ''package-name''
* There is also the app store.
=== Launching apps ===
This works for any app. Say for instance, you want to run Iceweasel/Firefox:
* Launch apps from the desktop
* Launch apps from your console:
$ iceweasel &
* Install a universal app launcher that you can run from desktop:
$ sudo apt install desktop-cmd-exec
=== Make apps show up on desktop ===
Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples])
To view a list of currently installed apps, do:
$ sudo apt list --installed | less
This should help you figure out for which apps to configure .desktop icons. A benefit with all this is that you can decide which apps you want to show or hide.
=== Unhide the keyboard ===
The virtual keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar in a web browser like Firefox). This will be fixed in a future release (image tested: 20220731).
=== Note about Calculator ===
The default GUI calculator works (08/15/2022) but you won't see the numbers appear on screen until after you touch the next key. It should be used in landscape mode for best results, as there are additional display issues in portrait mode.
=== Time zone / World Clock ===
Currently (06/15/2022) the interface to the default GUI clock has a few bugs but the workaround is to:
* Go to Settings > Date and Time > and adjust time zone and date and time there. This also has some bugs, but only in portrait mode.
* Or just use the console:
$ sudo date -s HH:MM
$ sudo date -s YYYYMMDD
$ sudo ln -s /usr/share/zoneinfo/YOURREGION/YOURCITY /etc/localtime
=== Customize the Keyboard ===
TODO: write this
=== More Tips & Tricks ===
Visit [https://leste.maemo.org/Tricks '''this page'''] for more general advice on customizing Maemo on your PinePhone.
[[Category:Device]]
1d586ee07295f6f2529d6040327139ae55d594b2
Main Page
0
1
1353
1335
2022-08-15T23:36:13Z
Auanta
57
/* Description */ link to IRC channel about Matrix bridge
wikitext
text/x-wiki
== Description ==
Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, PinePhone, Allwinner Tablets and more.
You can find us on '''irc.libera.chat''', channel '''#maemo-leste''', you can [[IRC_channel|use Matrix]] to connect if you wish.
For an overview of the current status, you might want to check out: [[Status]]
Maemo Leste is based on Devuan Beowulf (Debian Buster) and all the "supported" devices ship with recent Linux (mainline-based) kernels.
The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers.
For some devices, we have development images available, such as the [[Nokia_N900]], the [[Motorola Droid 4]] and the [[PinePhone]]. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software.
If you have not used Maemo before, you might want to check out some of the tips on the [[HowTo]] page.
== Useful resources, lists and pages ==
* To get started with a new install, see [[Getting_Started|Getting Started]].
* Read our [[Leste_FAQ|Frequently Asked Questions]]
* List of [[:Category:Device]] with support to varying degrees
* Latest downloadable images: https://phoenix.maemo.org/view/Images/
* List of "extras" software packages that have a wiki page: https://leste.maemo.org/Category:Extras
* Read how to get started with [[Development]]
* You have an application you want to see in Leste? Please let us know [[Wishlist|here]].
* For a list of presentations/talks featuring Maemo Leste, see [[Talks]]
== Links ==
<div>
The central point of meeting and talking is '''IRC''' ('''irc.libera.chat''' in '''#maemo-leste''') and this thread: https://talk.maemo.org/showthread.php?t=100192.
* Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io]
* Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues]
* Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/]
* Our Github subdomain: [https://maemo-leste.github.io/ https://maemo-leste.github.io/]
* Our Extras Github: [https://github.com/maemo-leste-extras/ https://github.com/maemo-leste-extras/]
* Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] and https://phoenix.maemo.org/view/Images/
* Our Jenkins build server: [https://phoenix.maemo.org/ https://phoenix.maemo.org/]
* Our IRC chat history: [http://maedevu.maemo.org/irc.txt http://maedevu.maemo.org/irc.txt] and https://libera.irclog.whitequark.org/maemo-leste/ (previously: https://freenode.irclog.whitequark.org/maemo-leste/)
* Our YouTube channel: [https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w] (via [https://www.invidio.us/channel/UCgAWiHvWSuJAg5hjk7JYn1w Invidious] )
* Our Package index and info: [https://maedevu.maemo.org/pkgweb/ https://maedevu.maemo.org/pkgweb/] which runs [https://github.com/maemo-leste/mpi https://github.com/maemo-leste/mpi]
* Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
* Our Forum [https://talk.maemo.org/forumdisplay.php?f=66 https://talk.maemo.org/forumdisplay.php?f=66]
* RSS feed: [https://maemo-leste.github.io/feeds/all.atom.xml https://maemo-leste.github.io/feeds/all.atom.xml]
* Our Twitter: [https://twitter.com/maemoleste @maemoleste]
* Distrowatch: [https://distrowatch.com/dwres.php?resource=submit Maemo Leste] (give us an upvote)
</div>
0462f9cd30a835ec4959a81dd216d45694634e41
Tricks
0
120
1363
962
2022-08-16T04:06:44Z
Auanta
57
wikitext
text/x-wiki
__FORCETOC__
= Randomize MAC Address =
Some users may wish to change the MAC address of an interface, for e.g. to prevent wifi networks associating their MAC address with their network usage pattern.
The macchanger package addresses this by either automatically or manually changing the MAC address of enabled interfaces.
apt install -y macchanger
During installation, the package configuration allows user to select automatic change of MAC address when interface is brought up. This may interfere with USB networking. As an alternative, user can manually change the wlan0 MAC.
macchanger wlan0 -e -a
ifconfig wlan0 up
= Keyboard / Mouse sharing with PC =
To use a Leste device while working at desktop it can be convenient to share mouse and keyboard of the host pc with the leste device. The 'barrier' client/server program, forked from 'synergy', allows this.
https://github.com/debauchee/barrier Barrier software-KVM switch
A hildonized Maemo-leste binary of the client is not available at time of this writing. Developers and testers may wish to disable undesired modules included with the barrier source, before compiling.
= Touchscreen support in Firefox (firefox-esr) =
Add the necessary environment variable:
echo "MOZ_USE_XINPUT2 DEFAULT=1" >> /etc/security/pam_env.conf
Then in firefox, open '''about:config''' and set '''dom.w3c_touch_events.enabled''' to '''1'''.
You can also set a mobile useragent by creating a string key called '''general.useragent.override'''.
Then set something like this:
Mozilla/5.0 (Android 9; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0
= Customize console colors =
TODO: explain how to make console white on black text
6cb2a8990009c063682589f1611143e52625e2a0
Motorola Droid Bionic
0
111
1367
1307
2022-08-16T12:52:27Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Bionic.jpg|250px]]
|manufacturer=Motorola
|codename=Targa XT875
|dimensions=127x67.3x12.7mm
|release_date=2011-09-8
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4.3"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, Kionix KXTf9 accelerometer, St L3GD20H Gyro, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
|category=Supported
|sw_kernel=5.18.x
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=No
|sw_touchscreen=Yes
|sw_keyboard=
|sw_screen=Yes
|sw_hdmi=Yes
|sw_tv=
|sw_3daccel=Yes, [[https://github.com/maemo-leste/pvr-omap4/|SGX540, closed driver|]]
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=Yes
|sw_sms=Yes
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=Yes
|sw_4g=No
|sw_bluetooth=Yes, [[#Bluetooth|see notes]]
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=No, needs kernel work
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No, needs kernel/userspace work
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=70mW, needs sim inserted
|sw_standbytime=91.8h (with HW4X)
}}
== Installation ==
Hardware requirements:
* Droid Bionic with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux system
* Android Tools: fastboot adb
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
# Latest maemo-leste-1.0-armhf-bionic-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# droid4-kexecboot.img
Download or clone https://github.com/IMbackK/bionic-clown-boot
Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
Wait for sync to complete and insert MicroSD card into The Bionic. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Notes ==
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 and Bionic both expose a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Bionic, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
== Bluetooth ==
Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
== Unlocking the modem for usage in Europe ==
Tony suggested these values, Wizzup confirmed it to work on his Bionic in Europe/Amsterdam.
<pre>
apt install build-essential
git clone https://github.com/tmlind/tcmdrw
cd tcmdrw
make
./tcmdrw 1877=8703E80400000200
./tcmdrw 6850=05
</pre>
Tony also writes:
<pre>
22:34 < tmlind> hmm so i had to do this for 3g gain: tcmdrw 1143=aaff0000, got that value from xt910 firmware i think, otherwise 3g signal was weak
22:43 < tmlind> Wizzup: great, the 1143 setting is for 1900 frequency only to get decent signal on t-mo in the us
</pre>
<pre>
22:37 < tmlind> i also had to do tcmdrw 6850=05 for 3g voice to work properly
</pre>
== Stuff to try ==
==== 3G Internet ====
<pre>
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz
22:12 < pave1> route del default
22:12 < pave1> sudo ifconfig wwan0 up
22:12 < pave1> dhclient wwan0
</pre>
==== GPS ====
<pre>
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
</pre>
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to <pre>
mkfifo /tmp/gps
cat /dev/gnss0 > /tmp/gps
Then point gpsd to use /tmp/gps
</pre>
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
== Old status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.10.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| USB slave || Yes ||
|-
| USB host (OTG) || No ||
|-
| Touchscreen || Yes || Capacitive
|-
| Keyboard || N/A ||
|-
| Screen || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Vibration Motor || Yes ||
|-
| Audio || Yes || Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output)
|-
| Phone calls || WIP || Untested
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Wifi || Yes ||
|-
| Ethernet || N/A ||
|-
| IrDA || N/A || Missing in hardware
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || No ||
|-
| Nfc || No || no hardware
|-
| Accelerometer || Yes ||
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration)
|-
| Gyro || No || needs kernel work
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| AGPS || No ||
|-
| Front Camera || No ||
|-
| Back Camera(s) || No ||
|-
| Idle power consumption || ~70 mW || Needs sim inserted
|-
| Idle Battery life on new battery || 91.8 h || With HW4X
|}
[[Category:Device]]
e49a6cd8e503678a46d4494ac157467d214bcb75
Motorola Droid 4
0
50
1368
1306
2022-08-16T12:52:47Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati XT894
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
|category=Supported
|sw_kernel=5.18.x
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Yes
|sw_usb_host=Yes
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=Yes
|sw_tv=
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=Yes
|sw_sms=Yes
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=Yes
|sw_4g=No
|sw_bluetooth=Yes, [[#Bluetooth|see notes]]
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=120mW
|sw_standbytime=
}}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
=== Updating Android ===
This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
=== Setting up kexecboot ===
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
=== Install Maemo Leste to the sdcard ===
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab the latest image from https://phoenix.maemo.org/view/Images/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
The keyboard layout is extended to provide more standard keys.
[[File:Maemo-leste-droid4-kbd-2021-07.png|center|620px|thumb|maemo-leste droid4 keyboard]]
Key mapping can be tested with the 'xev' program.
It may be necessary to run the follow commands as root in order to get the OK key to function correctly (see [https://github.com/maemo-leste/bugtracker/issues/510#issuecomment-815618591 here]):
udevadm hwdb --update
udevadm trigger
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Bluetooth ==
Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
== Stuff to try ==
==== Using a battery without temperature sensor ====
Modprobe the pmic driver as follows:
<pre>
cpcap-battery ignore_temperature_probe=1
</pre>
==== Flashing the boot logo ====
More info: https://github.com/xsetiadi/droid4-kexecboot/blob/master/LOGO
<pre>
15:04 < tmlind> Wizzup: i think the logo on droid4 can be flashed with fastboot flash logo logo.bin or something, can also be just written to logo partition from m-l
[snip]
09:24 < xsetiadi> https://github.com/xsetiadi/droid4-kexecboot/blob/master/logo.bin
09:25 < xsetiadi> becarefull, you can bootloop droid4 if you wrong flash partition
09:26 < xsetiadi> like i do last year
09:26 < xsetiadi> instead of flashing using command: fastboot flash logo.bin logo.bin i just flash it with command: fastboot flash logo logo.bin
</pre>
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
==== HDMI ====
Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier.
<pre>
xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off
</pre>
Return to internal touchscreen display.
<pre>
xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off
</pre>
==== Keyboard / Mouse sharing with PC ====
To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4.
<pre>
[https://github.com/debauchee/barrier Barrier software-KVM switch]
</pre>
Developers and testers may wish to disable the googley bits before compiling.
==== BT Audio headset ====
sudo apt install pulseaudio-module-bluetooth blueman bluez
sudo modprobe hci_uart
pactl load-module module-bluetooth-discover
blueman-manager
Pair & trust your device in blueman, connect audiosink. You can close blueman now. The quality seems a bit better in 'offline mode'.
==== Torch ====
The Droid 4 has a TI LM3559 flash torch controller. This provides flash functionality when taking pictures, usage as a torch, and provides privacy indication (in this mode, the LED flashes in a fast heartbeat pattern). A driver for it exists in mainline, but it requires some DTS work, since it is tied to a camera device.
If you want to use it in the meantime, direct i2c access can be used as follows (since this is direct access, be careful about each of the commands below):
<source>
##Install the prerequisites
$ sudo apt install i2c-tools
## Turn LED on in torch mode
$ sudo i2cset -y 2 0x53 0x10 0x1a
## Turn LED on in privacy indication mode
$ sudo i2cset -y 2 0x53 0x10 0x19
## Turn LED off (in any mode)
$ sudo i2cset -y 2 0x53 0x10 0x18
## Use LED for doing a hella bright flash for some time once and then turn off
$ sudo i2cset -y 2 0x53 0x10 0x1b
</source>
== Using a configured Leste sdcard in a different Droid4 ==
A configured Droid4 Leste installation is unique to the device that it was calibrated on. Particularly the wlan firmware calibration will be incorrect if an existing Leste installation is transferred to a different device.
The wifi calibration script requires a system set to stock settings to calibrate-from. It cannot just be re-run on an already calibrated system.
To recalibrate the wifi firmware on a different Droid4, you must reset the FEM parameters to stock settings on the new device, then recalibrate.
If you can get the device online (usb networking or moving close to the WLAN AP) this can be done with.
apt reinstall firmware-ti-connectivity
If not, you can download the firmware-ti-connectivity_[version]_all.deb on another Leste device
apt download firmware-ti-connectivity
Then copy the .deb to your new device and install that (as root) with
dpkg -i firmware-ti-connectivity_[version]_all.deb
Then (as root) re-calibrate the wifi chip by running
/usr/bin/maserati-calibrate
Then reboot.
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
Cant_have_2_much_leste.jpg
Leste-neverball.jpg
Statsfun.jpg
Leste-glmatrix.png
Droid4-leste-utox2.jpg
Droid4-leste-pcsx.jpg
Droid4-leste-surf_master.jpg
Droid4_Daimonin_Hdmi.jpg
</gallery>
== Old status overview ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Implemented with Pulseaudio and UCM files
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || Yes || Available in /sys, and as input device via iio-uinput
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)
|-
| Gyro || N/A ||
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/
|-
| Idle power consumption || ~120mW || Needs sim inserted
|}
[[Category:Device]]
710c7034d97735b59b0113f1423ca7374690319f
Status
0
64
1369
892
2022-09-03T13:03:39Z
Wizzup
4
Update call/gps status
wikitext
text/x-wiki
{{Stub}}
For Device specific status pages, see See [[:Category:Device]]
The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device
{| class="wikitable"
! Feature
! Status
! Leste software
! Notes
|-
| Desktop environment || OK || hildon || hildon home, hildon desktop, .
|-
| [[Terminal]] || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] ||
|-
| [[Status/VirtualKeyboard|Virtual keyboard]] || WIP || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work fine for all devices, GTK2 only.
|-
| [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Works out of the box. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7
|-
| Bluetooth || No(t yet) || ? ||
|-
| [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily. Some also use netsurf-gtk or firefox
|-
| [[Status/Audio|Audio]] || WIP || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio ; will need to import alsa-policy-enforcement, port OHM
|-
| Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] ||
|-
| [[Status/USB Peripheral|USB Peripheral]] || OK || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv
|-
| LED control || OK || mce || Make sure the notifications are enabled in settings.
|-
| [[Status/Mobile Data|Mobile Data]] || WIP || [https://github.com/maemo-leste/connui-cellular connui-cellular] [https://github.com/maemo-leste/libicd-network-ofono libicd-network-ofono] || There is basic libicd-network-ofono, connui-cellular is being ported to ofono
|-
| [[Status/GPS|GPS]] || OK || gpsd, liblocation, location-daemon ||
|-
| [[Status/SMS|SMS]] || WIP || sphone, conversations, ofono, telepathy-ring ? ||
|-
| [[Status/Phone Calls|Phone Calls]] || OK || sphone, ofono, telepathy-ring ? || Just works on most of the devices, except for the [https://github.com/maemo-leste/bugtracker/issues/77 n900]
|-
| [[Status/Application Manager|Application Manager]] || OK || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || Mostly works, but needs serious testing [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue]
|-
| [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue]
|-
| [[Status/PDF Viewer|PDF Viewer]] || Mostly works || osso-pdf-viewer || [https://github.com/maemo-leste/osso-pdf-viewer osso-pdf-viewer]
|-
| [[Status/Games|Games & Entertainment]] || OK || Works (available in [[Leste Extras]] || [https://github.com/maemo-leste/bugtracker/issues/18 sdl fullscreen] [https://github.com/maemo-leste/bugtracker/issues/238 game importing]
|-
| [[Status/Theming|Theming]] || OK || Works with themes (available in [[Leste Extras]] ||
|-
| [[Calendar|Calendar]] || OK || Qalendar UI, syncing works. (UI needs some scrolling work) ||
|-
| [[Qt|Qt]] || OK || Qt5 port mostly works || https://github.com/maemo-leste/qtstyleplugins/ + https://github.com/maemo-leste/qt-platform-maemo
|}
585713cf45c2368d8236bc1fb684eef2f773f8a2
1370
1369
2022-09-03T13:04:06Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
For Device specific status pages, see See [[:Category:Device]]
The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device
{| class="wikitable"
! Feature
! Status
! Leste software
! Notes
|-
| Desktop environment || OK || hildon || hildon home, hildon desktop, .
|-
| [[Terminal]] || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] ||
|-
| [[Status/VirtualKeyboard|Virtual keyboard]] || WIP || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work fine for all devices, GTK2 only.
|-
| [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Works out of the box. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7
|-
| Bluetooth || No(t yet) || ? ||
|-
| [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily. Some also use netsurf-gtk or firefox
|-
| [[Status/Audio|Audio]] || WIP || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio ; will need to import alsa-policy-enforcement, port OHM
|-
| Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] ||
|-
| [[Status/USB Peripheral|USB Peripheral]] || OK || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv
|-
| LED control || OK || mce || Make sure the notifications are enabled in settings.
|-
| [[Status/Mobile Data|Mobile Data]] || OK || [https://github.com/maemo-leste/connui-cellular connui-cellular] [https://github.com/maemo-leste/libicd-network-ofono libicd-network-ofono] || There is basic libicd-network-ofono, connui-cellular is being ported to ofono, UI needs some more work, but mostly just works
|-
| [[Status/GPS|GPS]] || OK || gpsd, liblocation, location-daemon ||
|-
| [[Status/SMS|SMS]] || WIP || sphone, conversations, ofono, telepathy-ring ? ||
|-
| [[Status/Phone Calls|Phone Calls]] || OK || sphone, ofono, telepathy-ring ? || Just works on most of the devices, except for the [https://github.com/maemo-leste/bugtracker/issues/77 n900]
|-
| [[Status/Application Manager|Application Manager]] || OK || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || Mostly works, but needs serious testing [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue]
|-
| [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue]
|-
| [[Status/PDF Viewer|PDF Viewer]] || Mostly works || osso-pdf-viewer || [https://github.com/maemo-leste/osso-pdf-viewer osso-pdf-viewer]
|-
| [[Status/Games|Games & Entertainment]] || OK || Works (available in [[Leste Extras]] || [https://github.com/maemo-leste/bugtracker/issues/18 sdl fullscreen] [https://github.com/maemo-leste/bugtracker/issues/238 game importing]
|-
| [[Status/Theming|Theming]] || OK || Works with themes (available in [[Leste Extras]] ||
|-
| [[Calendar|Calendar]] || OK || Qalendar UI, syncing works. (UI needs some scrolling work) ||
|-
| [[Qt|Qt]] || OK || Qt5 port mostly works || https://github.com/maemo-leste/qtstyleplugins/ + https://github.com/maemo-leste/qt-platform-maemo
|}
04f4b173499232a160203f932cbcc8248ecd1f0f
1371
1370
2022-09-03T13:04:43Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
For Device specific status pages, see See [[:Category:Device]]
The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device
{| class="wikitable"
! Feature
! Status
! Leste software
! Notes
|-
| Desktop environment || OK || hildon || hildon home, hildon desktop, .
|-
| [[Terminal]] || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] ||
|-
| [[Status/VirtualKeyboard|Virtual keyboard]] || WIP || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work fine for all devices, GTK2 only.
|-
| [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Works out of the box. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7
|-
| Bluetooth || No(t yet) || ? ||
|-
| [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily. Some also use netsurf-gtk or firefox
|-
| [[Status/Audio|Audio]] || OK || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); will need to import alsa-policy-enforcement, port OHM
|-
| Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] ||
|-
| [[Status/USB Peripheral|USB Peripheral]] || OK || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv
|-
| LED control || OK || mce || Make sure the notifications are enabled in settings.
|-
| [[Status/Mobile Data|Mobile Data]] || OK || [https://github.com/maemo-leste/connui-cellular connui-cellular] [https://github.com/maemo-leste/libicd-network-ofono libicd-network-ofono] || There is basic libicd-network-ofono, connui-cellular is being ported to ofono, UI needs some more work, but mostly just works
|-
| [[Status/GPS|GPS]] || OK || gpsd, liblocation, location-daemon ||
|-
| [[Status/SMS|SMS]] || OK || sphone, conversations, ofono, telepathy-ring ? ||
|-
| [[Status/Phone Calls|Phone Calls]] || OK || sphone, ofono, telepathy-ring ? || Just works on most of the devices, except for the [https://github.com/maemo-leste/bugtracker/issues/77 n900]
|-
| [[Status/Application Manager|Application Manager]] || OK || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || Mostly works, but needs serious testing [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue]
|-
| [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue]
|-
| [[Status/PDF Viewer|PDF Viewer]] || Mostly works || osso-pdf-viewer || [https://github.com/maemo-leste/osso-pdf-viewer osso-pdf-viewer]
|-
| [[Status/Games|Games & Entertainment]] || OK || Works (available in [[Leste Extras]] || [https://github.com/maemo-leste/bugtracker/issues/18 sdl fullscreen] [https://github.com/maemo-leste/bugtracker/issues/238 game importing]
|-
| [[Status/Theming|Theming]] || OK || Works with themes (available in [[Leste Extras]] ||
|-
| [[Calendar|Calendar]] || OK || Qalendar UI, syncing works. (UI needs some scrolling work) ||
|-
| [[Qt|Qt]] || OK || Qt5 port mostly works || https://github.com/maemo-leste/qtstyleplugins/ + https://github.com/maemo-leste/qt-platform-maemo
|}
16efa1af94bfbf471cec5be134c468925b937067
1372
1371
2022-09-03T13:05:11Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
For Device specific status pages, see See [[:Category:Device]]
The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device
{| class="wikitable"
! Feature
! Status
! Leste software
! Notes
|-
| Desktop environment || OK || hildon || hildon home, hildon desktop, .
|-
| [[Terminal]] || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] ||
|-
| [[Status/VirtualKeyboard|Virtual keyboard]] || WIP || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work fine for all devices, GTK2 only.
|-
| [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Works out of the box. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7
|-
| Bluetooth || WIP || Just works if supported in the kernel, but no Maemo UI available to configure it ||
|-
| [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily. Some also use netsurf-gtk or firefox
|-
| [[Status/Audio|Audio]] || OK || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); will need to import alsa-policy-enforcement, port OHM
|-
| Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] ||
|-
| [[Status/USB Peripheral|USB Peripheral]] || OK || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv
|-
| LED control || OK || mce || Make sure the notifications are enabled in settings.
|-
| [[Status/Mobile Data|Mobile Data]] || OK || [https://github.com/maemo-leste/connui-cellular connui-cellular] [https://github.com/maemo-leste/libicd-network-ofono libicd-network-ofono] || There is basic libicd-network-ofono, connui-cellular is being ported to ofono, UI needs some more work, but mostly just works
|-
| [[Status/GPS|GPS]] || OK || gpsd, liblocation, location-daemon ||
|-
| [[Status/SMS|SMS]] || OK || sphone, conversations, ofono, telepathy-ring ? ||
|-
| [[Status/Phone Calls|Phone Calls]] || OK || sphone, ofono, telepathy-ring ? || Just works on most of the devices, except for the [https://github.com/maemo-leste/bugtracker/issues/77 n900]
|-
| [[Status/Application Manager|Application Manager]] || OK || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || Mostly works, but needs serious testing [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue]
|-
| [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue]
|-
| [[Status/PDF Viewer|PDF Viewer]] || Mostly works || osso-pdf-viewer || [https://github.com/maemo-leste/osso-pdf-viewer osso-pdf-viewer]
|-
| [[Status/Games|Games & Entertainment]] || OK || Works (available in [[Leste Extras]] || [https://github.com/maemo-leste/bugtracker/issues/18 sdl fullscreen] [https://github.com/maemo-leste/bugtracker/issues/238 game importing]
|-
| [[Status/Theming|Theming]] || OK || Works with themes (available in [[Leste Extras]] ||
|-
| [[Calendar|Calendar]] || OK || Qalendar UI, syncing works. (UI needs some scrolling work) ||
|-
| [[Qt|Qt]] || OK || Qt5 port mostly works || https://github.com/maemo-leste/qtstyleplugins/ + https://github.com/maemo-leste/qt-platform-maemo
|}
39a59b95546090facf6a2dfd0c64aea26c7c847f
File:MStarDict SelectDictionary.png
6
195
1373
2022-09-29T06:11:22Z
BuZz
32
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:MStarDict Itemview.png
6
196
1374
2022-09-29T06:12:27Z
BuZz
32
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Extras/MStarDict
0
197
1375
2022-09-29T06:13:10Z
BuZz
32
Created page with "{{Infobox Package |image=[[Image:MStarDict_SelectDictionary.png|250px]] |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2022-09-16 |website=https://..."
wikitext
text/x-wiki
{{Infobox Package
|image=[[Image:MStarDict_SelectDictionary.png|250px]]
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]
|date_in_repo=2022-09-16
|website=https://github.com/norayr/mstardict
|maemo_leste_repo=https://github.com/maemo-leste-extras/mstardict
|category=Utilities
|packager=[[User:Norayr]]
}}
MStarDict is a simple dictionary based on code of StarDict written in C++ using Gtk2.
Original announce thread from 2010 is on https://talk.maemo.org/showthread.php?t=44979
For usage, you can grab any stardict dictionary and place them in MyDocs/mstardict/
<gallery>
MStarDict_SelectDictionary.png
MStarDict_Itemview.png
</gallery>
f785823bf765d438374dda83c79f84254c1ccc61
1376
1375
2022-09-29T06:22:49Z
BuZz
32
wikitext
text/x-wiki
{{Infobox Package
|image=[[Image:MStarDict_SelectDictionary.png|250px]]
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]
|date_in_repo=2022-09-16
|website=https://github.com/norayr/mstardict
|maemo_leste_repo=https://github.com/maemo-leste-extras/mstardict
|category=Utilities
|packager=[[User:Norayr]]
}}
== What is this. ==
MStarDict is a simple dictionary based on code of StarDict written in C++ using Gtk2. It allows you to use stardict compatible dictionaries and reference books, of which many can be found.
The original announce thread from 2010 is on https://talk.maemo.org/showthread.php?t=44979
== How do i use it ==
For usage, you can grab any stardict dictionary and place them in MyDocs/mstardict/
Then launch the program, and type a query.
There's also espeak (and a different one thats just >20000 .wav files??) TTS for reading out the entrynames.
== Some pictures ==
<gallery>
MStarDict_SelectDictionary.png
MStarDict_Itemview.png
</gallery>
== Other links ==
* https://stardict-4.sourceforge.net/index_en.php
* http://space.nurdspace.nl/~buzz/maemo/stardict-dic/
* https://web.archive.org/web/20170620212527/http://www.stardict.org/
== Also ==
Devuan has 'qstardict', 'goldendict' and 'sdcv' in its repos which all support the same dictionary files as input. Also there is 'distconv' to convert em back and forth.
edf4c7e1fa527b9ec5eb2c5e3187fe415c56d644
1377
1376
2022-09-29T06:45:23Z
BuZz
32
/* How do i use it */
wikitext
text/x-wiki
{{Infobox Package
|image=[[Image:MStarDict_SelectDictionary.png|250px]]
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]
|date_in_repo=2022-09-16
|website=https://github.com/norayr/mstardict
|maemo_leste_repo=https://github.com/maemo-leste-extras/mstardict
|category=Utilities
|packager=[[User:Norayr]]
}}
== What is this. ==
MStarDict is a simple dictionary based on code of StarDict written in C++ using Gtk2. It allows you to use stardict compatible dictionaries and reference books, of which many can be found.
The original announce thread from 2010 is on https://talk.maemo.org/showthread.php?t=44979
== How do i use it ==
For usage, you can grab any stardict dictionary and place them in MyDocs/mstardict/
Then launch the program, make sure to enable the dictionary you just copied and type a query.
There's also espeak (and a different one thats just >20000 .wav files??) TTS for reading out the entrynames.
== Some pictures ==
<gallery>
MStarDict_SelectDictionary.png
MStarDict_Itemview.png
</gallery>
== Other links ==
* https://stardict-4.sourceforge.net/index_en.php
* http://space.nurdspace.nl/~buzz/maemo/stardict-dic/
* https://web.archive.org/web/20170620212527/http://www.stardict.org/
== Also ==
Devuan has 'qstardict', 'goldendict' and 'sdcv' in its repos which all support the same dictionary files as input. Also there is 'distconv' to convert em back and forth.
efc51ed42c8eb7e80a9934aec878d759b37a4611
1378
1377
2022-09-29T10:55:29Z
BuZz
32
wikitext
text/x-wiki
{{Infobox Package
|image=[[Image:MStarDict_SelectDictionary.png|250px]]
|status=Working
|date_in_repo=2022-09-16
|website=https://github.com/norayr/mstardict
|maemo_leste_repo=https://github.com/maemo-leste-extras/mstardict
|category=Utilities
|packager=[[User:Norayr]]
}}
== What is this. ==
MStarDict is a simple dictionary based on code of StarDict written in C++ using Gtk2. It allows you to use stardict compatible dictionaries and reference books, of which many can be found.
The original announce thread from 2010 is on https://talk.maemo.org/showthread.php?t=44979
== How do i use it ==
For usage, you can grab any stardict dictionary and place them in MyDocs/mstardict/
Then launch the program, make sure to enable the dictionary you just copied and type a query.
There's also espeak (and a different one thats just >20000 .wav files??) TTS for reading out the entrynames.
== Some pictures ==
<gallery>
MStarDict_SelectDictionary.png
MStarDict_Itemview.png
</gallery>
== Other links ==
* https://stardict-4.sourceforge.net/index_en.php
* http://space.nurdspace.nl/~buzz/maemo/stardict-dic/
* https://web.archive.org/web/20170620212527/http://www.stardict.org/
== Also ==
Devuan has 'qstardict', 'goldendict' and 'sdcv' in its repos which all support the same dictionary files as input. Also there is 'distconv' to convert em back and forth.
51a02041368b210f99d42a9793a9306d91a8849c
1379
1378
2022-09-29T10:57:35Z
BuZz
32
/* How do i use it */
wikitext
text/x-wiki
{{Infobox Package
|image=[[Image:MStarDict_SelectDictionary.png|250px]]
|status=Working
|date_in_repo=2022-09-16
|website=https://github.com/norayr/mstardict
|maemo_leste_repo=https://github.com/maemo-leste-extras/mstardict
|category=Utilities
|packager=[[User:Norayr]]
}}
== What is this. ==
MStarDict is a simple dictionary based on code of StarDict written in C++ using Gtk2. It allows you to use stardict compatible dictionaries and reference books, of which many can be found.
The original announce thread from 2010 is on https://talk.maemo.org/showthread.php?t=44979
== How do i use it ==
For usage, you can grab any stardict dictionary and place them in MyDocs/mstardict/.
There are many sources to grab dictionaries from, buZz setup a mirror thats linked below for a big pile of free dictionaries.
Then launch the program, make sure to enable the dictionary you just copied and type a query.
There's also espeak (and a different one thats just >20000 .wav files??) TTS for reading out the entrynames.
== Some pictures ==
<gallery>
MStarDict_SelectDictionary.png
MStarDict_Itemview.png
</gallery>
== Other links ==
* https://stardict-4.sourceforge.net/index_en.php
* http://space.nurdspace.nl/~buzz/maemo/stardict-dic/
* https://web.archive.org/web/20170620212527/http://www.stardict.org/
== Also ==
Devuan has 'qstardict', 'goldendict' and 'sdcv' in its repos which all support the same dictionary files as input. Also there is 'distconv' to convert em back and forth.
72624e09d16e94d4e45aa239fc6f93345e938ad5
1380
1379
2022-09-29T10:59:09Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Package
|image=[[Image:MStarDict_SelectDictionary.png|250px]]
|status=Working
|date_in_repo=2022-09-16
|website=https://github.com/norayr/mstardict
|maemo_leste_repo=https://github.com/maemo-leste-extras/mstardict
|category=Utilities
|packager=[[User:Norayr]]
}}
== What is this. ==
MStarDict is a simple dictionary based on code of StarDict written in C++ using Gtk2. It allows you to use stardict compatible dictionaries and reference books, of which many can be found.
The original announce thread from 2010 is on https://talk.maemo.org/showthread.php?t=44979
== How to obtain dictionaries ==
For usage, you can grab any stardict dictionary and place them in MyDocs/mstardict/.
There are many sources to grab dictionaries from, buZz setup a mirror thats linked below for a big pile of free dictionaries.
== How to use it ==
Launch the program, make sure to enable a dictionary and just type a query.
There's also espeak (and a different one thats just >20000 .wav files??) TTS for reading out the entrynames.
== Some pictures ==
<gallery>
MStarDict_SelectDictionary.png
MStarDict_Itemview.png
</gallery>
== Other links ==
* https://stardict-4.sourceforge.net/index_en.php
* http://space.nurdspace.nl/~buzz/maemo/stardict-dic/
* https://web.archive.org/web/20170620212527/http://www.stardict.org/
== Also ==
Devuan has 'qstardict', 'goldendict' and 'sdcv' in its repos which all support the same dictionary files as input. Also there is 'distconv' to convert em back and forth.
e94901fb2e33cf27df6f77276cf396941c28636e
1381
1380
2022-09-29T10:59:56Z
BuZz
32
/* How to obtain dictionaries */
wikitext
text/x-wiki
{{Infobox Package
|image=[[Image:MStarDict_SelectDictionary.png|250px]]
|status=Working
|date_in_repo=2022-09-16
|website=https://github.com/norayr/mstardict
|maemo_leste_repo=https://github.com/maemo-leste-extras/mstardict
|category=Utilities
|packager=[[User:Norayr]]
}}
== What is this. ==
MStarDict is a simple dictionary based on code of StarDict written in C++ using Gtk2. It allows you to use stardict compatible dictionaries and reference books, of which many can be found.
The original announce thread from 2010 is on https://talk.maemo.org/showthread.php?t=44979
== How to obtain dictionaries ==
For usage, you can grab any stardict dictionary and unpack them in MyDocs/mstardict/.
There are many sources to grab such dictionaries from, buZz setup a mirror thats linked below for a big pile of free dictionaries.
== How to use it ==
Launch the program, make sure to enable a dictionary and just type a query.
There's also espeak (and a different one thats just >20000 .wav files??) TTS for reading out the entrynames.
== Some pictures ==
<gallery>
MStarDict_SelectDictionary.png
MStarDict_Itemview.png
</gallery>
== Other links ==
* https://stardict-4.sourceforge.net/index_en.php
* http://space.nurdspace.nl/~buzz/maemo/stardict-dic/
* https://web.archive.org/web/20170620212527/http://www.stardict.org/
== Also ==
Devuan has 'qstardict', 'goldendict' and 'sdcv' in its repos which all support the same dictionary files as input. Also there is 'distconv' to convert em back and forth.
080d764cc96a2abf9ff4c2856e1b7c9bef8ead1d
1382
1381
2022-09-29T11:02:59Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Package
|image=[[Image:MStarDict_SelectDictionary.png|250px]]
|status=Working
|date_in_repo=2022-09-16
|website=https://github.com/norayr/mstardict
|maemo_leste_repo=https://github.com/maemo-leste-extras/mstardict
|category=Utilities
|packager=[[User:Norayr]]
}}
== What is this. ==
MStarDict is a simple offline dictionary based on code of StarDict written in C++ using Gtk2. It allows you to use stardict compatible dictionaries and reference books, of which many can be found.
The original announce thread from 2010 is on https://talk.maemo.org/showthread.php?t=44979
== How to obtain dictionaries ==
For usage, you can grab any stardict dictionary and unpack them in MyDocs/mstardict/.
There are many sources to grab such dictionaries from, buZz setup a mirror thats linked below for a big pile of free dictionaries.
== How to use it ==
Launch the program, make sure to enable a dictionary and just type a query.
There's also espeak (and a different one thats just >20000 .wav files??) TTS for reading out the entrynames.
== Some pictures ==
<gallery>
MStarDict_SelectDictionary.png
MStarDict_Itemview.png
</gallery>
== Other links ==
* https://stardict-4.sourceforge.net/index_en.php
* http://space.nurdspace.nl/~buzz/maemo/stardict-dic/
* https://web.archive.org/web/20170620212527/http://www.stardict.org/
== Also ==
Devuan has 'qstardict', 'goldendict' and 'sdcv' in its repos which all support the same dictionary files as input. Also there is 'distconv' to convert em back and forth.
f5e955290e381c2aaa58db0d5bc6bdc5eebbf348
1383
1382
2022-09-29T11:03:41Z
BuZz
32
wikitext
text/x-wiki
{{Infobox Package
|image=[[Image:MStarDict_SelectDictionary.png|250px]]
|status=Working
|date_in_repo=2022-09-16
|website=https://github.com/norayr/mstardict
|maemo_leste_repo=https://github.com/maemo-leste-extras/mstardict
|category=Utilities
|packager=[[User:Norayr]]
}}
== What is this. ==
MStarDict is a simple offline dictionary based on code of StarDict written in C++ using Gtk2. It allows you to use stardict compatible dictionaries and reference books, of which many can be found.
The original announce thread from 2010 is on https://talk.maemo.org/showthread.php?t=44979
== How to obtain dictionaries ==
For usage, you can grab any stardict dictionary and unpack them in MyDocs/mstardict/.
There are many sources to grab such dictionaries from, buZz setup a mirror thats linked below for a big pile of free dictionaries.
== How to use it ==
Launch the program, make sure to enable a dictionary and just type a query.
There's also espeak (and a different one thats just >20000 .wav files??) TTS for reading out the entrynames.
== Some pictures ==
<gallery>
MStarDict_SelectDictionary.png
MStarDict_Itemview.png
</gallery>
== Other links ==
* https://stardict-4.sourceforge.net/index_en.php
* http://space.nurdspace.nl/~buzz/maemo/stardict-dic/
* https://web.archive.org/web/20170620212527/http://www.stardict.org/
== Also ==
Devuan has 'qstardict', 'goldendict' and 'sdcv' in its repos which all support the same dictionary files as input. Also there is 'dictconv' to convert em back and forth. And there's even some dictionaries! 'stardict-english-czech' and 'stardict-german-czech'. You'll have to copy those dictionaries after installing to MyDocs/mstardict/ yourself.
5dd33854fd47a819483721bc0cf2f12bc3d849b1
1385
1383
2022-09-29T11:10:09Z
BuZz
32
wikitext
text/x-wiki
{{Infobox Package
|image=[[Image:MStarDict_SelectDictionary.png|250px]]
|status=Working
|date_in_repo=2022-09-16
|website=https://github.com/norayr/mstardict
|maemo_leste_repo=https://github.com/maemo-leste-extras/mstardict
|category=Utilities
|packager=[[User:Norayr]]
}}
== What is this. ==
MStarDict is a simple offline dictionary based on code of StarDict written in C++ using Gtk2. It allows you to use stardict compatible dictionaries and reference books, of which many can be found.
The original announce thread from 2010 is on https://talk.maemo.org/showthread.php?t=44979
== How to obtain dictionaries ==
For usage, you can grab any stardict dictionary and unpack them in MyDocs/mstardict/.
There are many sources to grab such dictionaries from, buZz setup a mirror thats linked below for a big pile of free dictionaries.
== How to use it ==
Launch the program, make sure to enable a dictionary and just type a query.
For text to speech, the program has two options. The first uses plain espeak TTS and a gender selection for reading out the entrynames. The second is called 'Real People' in the program and requires
WyabdcRealPeopleTTS.tar.bz2 and/or OtdRealPeopleTTS.tar.bz2. I'm not sure how the second option is supposed to work.
== Some pictures ==
<gallery>
MStarDict_SelectDictionary.png
MStarDict_Itemview.png
MStarDict_Preferences.png
</gallery>
== Other links ==
* https://stardict-4.sourceforge.net/index_en.php
* http://space.nurdspace.nl/~buzz/maemo/stardict-dic/
* https://web.archive.org/web/20170620212527/http://www.stardict.org/
== Also ==
Devuan has 'qstardict', 'goldendict' and 'sdcv' in its repos which all support the same dictionary files as input. Also there is 'dictconv' to convert em back and forth. And there's even some dictionaries! 'stardict-english-czech' and 'stardict-german-czech'. You'll have to copy those dictionaries after installing to MyDocs/mstardict/ yourself.
7a6ef96fffaa7d9697e6c5439e7fc52443e44a7f
1386
1385
2022-09-29T11:25:27Z
BuZz
32
/* How to use it */
wikitext
text/x-wiki
{{Infobox Package
|image=[[Image:MStarDict_SelectDictionary.png|250px]]
|status=Working
|date_in_repo=2022-09-16
|website=https://github.com/norayr/mstardict
|maemo_leste_repo=https://github.com/maemo-leste-extras/mstardict
|category=Utilities
|packager=[[User:Norayr]]
}}
== What is this. ==
MStarDict is a simple offline dictionary based on code of StarDict written in C++ using Gtk2. It allows you to use stardict compatible dictionaries and reference books, of which many can be found.
The original announce thread from 2010 is on https://talk.maemo.org/showthread.php?t=44979
== How to obtain dictionaries ==
For usage, you can grab any stardict dictionary and unpack them in MyDocs/mstardict/.
There are many sources to grab such dictionaries from, buZz setup a mirror thats linked below for a big pile of free dictionaries.
== How to use it ==
Launch the program, make sure to enable a dictionary and just type a query.
For text to speech, the program has two options. The first uses plain espeak built-in TTS and a gender selection for reading out the entrynames. The second is called 'Real People' in the program and requires
WyabdcRealPeopleTTS.tar.bz2 and/or OtdRealPeopleTTS.tar.bz2. I'm not sure how the second option is supposed to work. For the espeak one no added files are needed.
== Some pictures ==
<gallery>
MStarDict_SelectDictionary.png
MStarDict_Itemview.png
MStarDict_Preferences.png
</gallery>
== Other links ==
* https://stardict-4.sourceforge.net/index_en.php
* http://space.nurdspace.nl/~buzz/maemo/stardict-dic/
* https://web.archive.org/web/20170620212527/http://www.stardict.org/
== Also ==
Devuan has 'qstardict', 'goldendict' and 'sdcv' in its repos which all support the same dictionary files as input. Also there is 'dictconv' to convert em back and forth. And there's even some dictionaries! 'stardict-english-czech' and 'stardict-german-czech'. You'll have to copy those dictionaries after installing to MyDocs/mstardict/ yourself.
1bc58fb98de1d3f7d985976c78b0515c815be1fb
1387
1386
2022-09-29T11:28:13Z
BuZz
32
wikitext
text/x-wiki
{{Infobox Package
|image=[[Image:MStarDict_SelectDictionary.png|250px]]
|status=Working
|date_in_repo=2022-09-16
|maemo_leste_repo=https://github.com/maemo-leste-extras/mstardict
|category=Utilities
|packager=[[User:Norayr]]
}}
== What is this. ==
MStarDict is a simple offline dictionary based on code of StarDict written in C++ using Gtk2. It allows you to use stardict compatible dictionaries and reference books, of which many can be found.
The original announce thread from 2010 is on https://talk.maemo.org/showthread.php?t=44979
== How to obtain dictionaries ==
For usage, you can grab any stardict dictionary and unpack them in MyDocs/mstardict/.
There are many sources to grab such dictionaries from, buZz setup a mirror thats linked below for a big pile of free dictionaries.
== How to use it ==
Launch the program, make sure to enable a dictionary and just type a query.
For text to speech, the program has two options. The first uses plain espeak built-in TTS and a gender selection for reading out the entrynames. The second is called 'Real People' in the program and requires
WyabdcRealPeopleTTS.tar.bz2 and/or OtdRealPeopleTTS.tar.bz2. I'm not sure how the second option is supposed to work. For the espeak one no added files are needed.
== Some pictures ==
<gallery>
MStarDict_SelectDictionary.png
MStarDict_Itemview.png
MStarDict_Preferences.png
</gallery>
== Other links ==
* https://stardict-4.sourceforge.net/index_en.php
* http://space.nurdspace.nl/~buzz/maemo/stardict-dic/
* https://web.archive.org/web/20170620212527/http://www.stardict.org/
== Also ==
Devuan has 'qstardict', 'goldendict' and 'sdcv' in its repos which all support the same dictionary files as input. Also there is 'dictconv' to convert em back and forth. And there's even some dictionaries! 'stardict-english-czech' and 'stardict-german-czech'. You'll have to copy those dictionaries after installing to MyDocs/mstardict/ yourself.
ff1b5ed3353280ef83f374a3a6daf62236ee0d1f
File:MStarDict Preferences.png
6
198
1384
2022-09-29T11:07:26Z
BuZz
32
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Promotion
0
199
1388
2022-10-05T13:39:38Z
BuZz
32
Created page with "== What == For the upcoming openfest, i had the idea of recording a bunch of videodemos of Leste currentstate on Droid 4, with some show-off stuff. == HW == I'm using a si..."
wikitext
text/x-wiki
== What ==
For the upcoming openfest, i had the idea of recording a bunch of videodemos of Leste currentstate on Droid 4, with some show-off stuff.
== HW ==
I'm using a simple mjpeg HDMI capture unit.
* just search 'hdmi capture usb' on ali express, one of the units with two HDMI ports, so i can loop it through to a monitor
* https://www.allekabels.nl/computerkabels/4566/1097219/hdmi-naar-hdmi-mini-kabel.html
There's some confusion about how to setup xrandr, so i'll be looking into that aswell.
== Ideas ==
* tasknav view of a youtube video playing + a 3D game
* youtube background playback
* true multitasking
* install some devuan/debian upstream program
* openlara , devilutionX , GZdoom , pcsx-rearmed , dethrace
* how well chromium/chrome works!
* sfone frontends
* conversations
* app manager
* please add your ideas of stuff that people should see!
60051b35f76f10179259bc65646e9aeac5cb92d0
1389
1388
2022-10-05T13:41:12Z
BuZz
32
/* Ideas */
wikitext
text/x-wiki
== What ==
For the upcoming openfest, i had the idea of recording a bunch of videodemos of Leste currentstate on Droid 4, with some show-off stuff.
== HW ==
I'm using a simple mjpeg HDMI capture unit.
* just search 'hdmi capture usb' on ali express, one of the units with two HDMI ports, so i can loop it through to a monitor
* https://www.allekabels.nl/computerkabels/4566/1097219/hdmi-naar-hdmi-mini-kabel.html
There's some confusion about how to setup xrandr, so i'll be looking into that aswell.
== Ideas ==
* tasknav view of a youtube video playing + a 3D game
* youtube background playback
* true multitasking
* how well chromium/chrome works!
* sfone frontends
* conversations
* app manager
* openlara , devilutionX , GZdoom , pcsx-rearmed , dethrace
* install some devuan/debian upstream program
* blender?
* gimp
* puredata with GEM (and gl4es?)
* please add your ideas of stuff that people should see!
12fa0a03dccdc946f2c6d0b911706ab97bbe5745
Contacts
0
200
1390
2022-10-09T13:46:02Z
Wizzup
4
Created page with "{{Infobox Package |image= |status=Working |devices=all |date_in_repo= |maemo_leste_repo=https://github.com/maemo-leste/osso-addressbook |category=Office |packager=User:Wizzu..."
wikitext
text/x-wiki
{{Infobox Package
|image=
|status=Working
|devices=all
|date_in_repo=
|maemo_leste_repo=https://github.com/maemo-leste/osso-addressbook
|category=Office
|packager=[[User:Wizzup]]
}}
= Addressbook =
Data is stored EDS, file is /home/user/.local/share/evolution/addressbook/system/contacts.db - in SQLite3 format.
== Qalendar ==
TODO: Cover features, including import/export, online awareness/presence, telepathy
== Synchronising ==
One way to synchronize is CardDAV. The commands below assume that you have already set up synchronisation as discussed in [[Calendar]].
<pre>
syncevolution --configure \
database=http://localhost:5223/USER/UUID/ \
backend=carddav \
target-config@radicale contacts
syncevolution --configure \
sync=two-way \
backend=evolution-contacts \
radicale contacts
</pre>
And then run the initial sync:
<pre>
syncevolution --sync slow radicale contacts
</pre>
And the next time you want to synchronise, just call:
<pre>
syncevolution --sync two-way radicale contacts
</pre>
== Syncevolution-frontend ==
The custom Maemo Syncevolution frontend has also been ported and is available in the application manager; which can be used to set up scheduled synchronisation.
cd820e14f5cc213d59ade5b71e391e9157aebed6
1391
1390
2022-10-09T13:59:59Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Package
|image=
|status=Working
|devices=all
|date_in_repo=
|maemo_leste_repo=https://github.com/maemo-leste/osso-addressbook
|category=Office
|packager=[[User:Wizzup]]
}}
= Addressbook =
Data is stored EDS, file is /home/user/.local/share/evolution/addressbook/system/contacts.db - in SQLite3 format.
== Qalendar ==
TODO: Cover features, including import/export, online awareness/presence, telepathy
== Synchronising ==
One way to synchronize is CardDAV. The commands below assume that you have already set up synchronisation as discussed in [[Calendar]].
<pre>
syncevolution --configure \
database=http://localhost:5223/USER/UUID/ \
backend=carddav \
target-config@radicale contacts
syncevolution --configure \
sync=two-way \
backend=evolution-contacts \
radicale contacts
</pre>
And then run the initial sync:
<pre>
syncevolution --sync slow radicale contacts
</pre>
== Syncevolution-frontend ==
The custom Maemo Syncevolution frontend has also been ported and is available in the application manager; which can be used to set up scheduled synchronisation.
725360a4751eddc8d67e8497d16ca785290c07a0
1392
1391
2022-10-09T14:04:51Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Package
|image=
|status=Working
|devices=all
|date_in_repo=
|maemo_leste_repo=https://github.com/maemo-leste/osso-addressbook
|category=Office
|packager=[[User:Wizzup]]
}}
= Addressbook =
Data is stored EDS, file is /home/user/.local/share/evolution/addressbook/system/contacts.db - in SQLite3 format.
== Qalendar ==
TODO: Cover features, including import/export, online awareness/presence, telepathy
== Synchronising ==
One way to synchronize is CardDAV. The commands below assume that you have already set up synchronisation as discussed in [[Calendar]].
<pre>
syncevolution --configure \
database=http://localhost:5223/USER/UUID/ \
backend=carddav \
target-config@radicale contacts
syncevolution --configure \
sync=two-way \
backend=evolution-contacts \
radicale contacts
</pre>
And then run the initial sync:
<pre>
syncevolution --sync slow radicale contacts
</pre>
Then, if you want to synchronise:
<pre>
syncevolution --sync two-way radicale contacts
</pre>
== Syncevolution-frontend ==
The custom Maemo Syncevolution frontend has also been ported and is available in the application manager; which can be used to set up scheduled synchronisation.
f65ce2605850ff0a00e67c0fa85011586f2a6792
Sync
0
201
1393
2022-10-09T19:03:43Z
Wizzup
4
Created page with "= Synchronisation = This page explains and suggests various ways of synchronising contacts, calendars and files. == Calendar, Notes, Tasks and Contacts == Synchronising cal..."
wikitext
text/x-wiki
= Synchronisation =
This page explains and suggests various ways of synchronising contacts, calendars and files.
== Calendar, Notes, Tasks and Contacts ==
Synchronising calendar, notes and tasks (using CalDav) and contacts (using CardDav) can be done using syncevolution (other [https://syncevolution.org/documentation/backends/ backends are available], but not currently documented here). A frontend to running synchronisation tasks is available in the repository (Syncevolution Frontend).
=== Synchronising with syncevolution CalDav + CardDav ===
If you get stuck in an odd state setting this up, you could consider running the following to get to a clean state, at least with regards to syncevolution configuration:
<pre>
rm -rf /home/user/.config/syncevolution
</pre>
==== NextCloud synchronising ====
We will be synchronising the calendar and such using local '''maemo-events''', '''maemo-notes''' and '''maemo-tasks''' backends using the '''caldav''' backend. For contacts, we will synchronise '''evolution-contacts''' using '''carddav'''.
A few URLs are required, first, the '''main Nextcloud DAV url''', this seems to be of the form:
<pre>https://my.nextcloud.org/remote.php/dav</pre>
then there is the '''url for a specific calendar''', this is called the "Private Link" and you can get it by clicking "Copy Private Link" for a given calendar in Nextcloud, this might look like so:
<pre>
https://my.nextcloud.org/remote.php/dav/calendars/userhere/calendarnamehere/
</pre>
Finally, for your address book (contacts) synchronisation, the '''contacts URL''' is needed (in Nextcloud, go to contacts, settings, "Copy Link" for your contacts):
<pre>
https://my.nextcloud.org/remote.php/dav/addressbooks/users/username/contacts/
</pre>
Given the above, a setup to synchronise calendar, tasks, notes and contacts could look like this:
<pre>
syncevolution --configure \
--template webdav \
username=NEXTCLOUD-USER-HERE \
password=NEXTCLOUD-PASS-HERE \
syncURL=MAIN-DAV-URL-HERE \
target-config@nextcloud
syncevolution --configure \
database=CALENDAR-URL-HERE \
backend=caldavtodo \
target-config@nextcloud nextcloudtodo
syncevolution --configure \
database=CALENDAR-URL-HERE \
backend=caldavjournal \
target-config@nextcloud nextcloudjournal
syncevolution --configure \
database=CALENDAR-URL-HERE \
backend=caldav \
target-config@nextcloud nextcloudcal
syncevolution --configure \
database=CONTACTS-URL-HERE \
backend=carddav \
target-config@nextcloud contacts
syncevolution --configure \
--template SyncEvolution_Client \
sync=none \
syncURL=local://@nextcloud \
username= \
password= \
nextcloud
syncevolution --configure \
sync=two-way \
backend=maemo-tasks \
database= \
nextcloud nextcloudtodo
syncevolution --configure \
sync=two-way \
backend=maemo-notes\
database= \
nextcloud nextcloudjournal
syncevolution --configure \
sync=two-way \
backend=maemo-events \
database= \
nextcloud nextcloudcal
syncevolution --configure \
sync=two-way \
backend=evolution-contacts \
nextcloud contacts
</pre>
All of the above is configuration that only needs to be done once.
Depending on your exact situation, your initial synchronisation could only use only values from your phone, from your nextcloud, or both. If you want to merge both, my understanding is that the '''slow''' method achieves this:
<pre>
syncevolution --sync slow nextcloud nextcloudjournal
syncevolution --sync slow nextcloud nextcloudtodo
syncevolution --sync slow nextcloud nextcloudcal
syncevolution --sync slow nextcloud contacts
</pre>
Use the '''two-way''' synchronisation method for '''normal synchronisation''' (daily, hourly, etc synchronisations), like so:
<pre>
syncevolution --sync two-way nextcloud nextcloudjournal
syncevolution --sync two-way nextcloud nextcloudtodo
syncevolution --sync two-way nextcloud nextcloudcal
syncevolution --sync two-way nextcloud contacts
</pre>
===== Warning: TLS Chain validation issues =====
If you run into problems with TLS Chain validation, first try to figure out if the problem is on your end. Syncevolution did have a problem for me validation the chain of my next cloud instance, so for testing purposes I set '''SSLVerifyServer = 0''' in '''/home/user/.config/syncevolution/nextcloud/peers/target-config/config.ini'''
==== Radicale synchronising ====
Radicale is a simple CardDAV and CalDAV server, and is set up similarly to nextcloud. Just browse to the Radicale web URL, and use the following URLs:
# The main DAV url is simple the URL to your radicale server (without the .web part)
# The calendar URL is simply the http(s) URL to the calendar that you want to synchronise
# The contacts URL is simple the http(s) URL of the addressbook that you want to synchronise
The username (and optional password) are the radicale credentials.
===== Radicale Testing Server =====
For testing purposes, here is how to quickly run a radicale server, this assumed it's installed.
<pre>
mkdir -p ~/radicale
cd ~/radicale
python3 -m radicale --config "" --storage-filesystem-folder `pwd` -H localhost:5223 --logging-level info
</pre>
Now brose to http://localhost:5223, create an account (password is optional), and you should be able to synchronise, assuming the devices can reach your radicale server (don't have it listen on localhost only, perhaps use 0.0.0.0:5223 for LAN testing)
== Files synchronisation ==
TODO
7e677a3d920083eb47caa5ef4ea40fb3182e2bae
1394
1393
2022-10-09T19:05:35Z
Wizzup
4
/* NextCloud synchronising */
wikitext
text/x-wiki
= Synchronisation =
This page explains and suggests various ways of synchronising contacts, calendars and files.
== Calendar, Notes, Tasks and Contacts ==
Synchronising calendar, notes and tasks (using CalDav) and contacts (using CardDav) can be done using syncevolution (other [https://syncevolution.org/documentation/backends/ backends are available], but not currently documented here). A frontend to running synchronisation tasks is available in the repository (Syncevolution Frontend).
=== Synchronising with syncevolution CalDav + CardDav ===
If you get stuck in an odd state setting this up, you could consider running the following to get to a clean state, at least with regards to syncevolution configuration:
<pre>
rm -rf /home/user/.config/syncevolution
</pre>
==== NextCloud synchronising ====
We will be synchronising the calendar and such using local '''maemo-events''', '''maemo-notes''' and '''maemo-tasks''' backends using the '''caldav''' backend. For contacts, we will synchronise '''evolution-contacts''' using '''carddav'''.
A few URLs are required, first, the '''main Nextcloud DAV url''', this seems to be of the form:
<pre>https://my.nextcloud.org/remote.php/dav</pre>
then there is the '''url for a specific calendar''', this is called the "Private Link" and you can get it by clicking "Copy Private Link" for a given calendar in Nextcloud, this might look like so:
<pre>
https://my.nextcloud.org/remote.php/dav/calendars/userhere/calendarnamehere/
</pre>
Finally, for your address book (contacts) synchronisation, the '''contacts URL''' is needed (in Nextcloud, go to contacts, settings, "Copy Link" for your contacts):
<pre>
https://my.nextcloud.org/remote.php/dav/addressbooks/users/userhere/contacts/
</pre>
Given the above, a setup to synchronise calendar, tasks, notes and contacts could look like this:
<pre>
syncevolution --configure \
--template webdav \
username=NEXTCLOUD-USER-HERE \
password=NEXTCLOUD-PASS-HERE \
syncURL=MAIN-DAV-URL-HERE \
target-config@nextcloud
syncevolution --configure \
database=CALENDAR-URL-HERE \
backend=caldavtodo \
target-config@nextcloud nextcloudtodo
syncevolution --configure \
database=CALENDAR-URL-HERE \
backend=caldavjournal \
target-config@nextcloud nextcloudjournal
syncevolution --configure \
database=CALENDAR-URL-HERE \
backend=caldav \
target-config@nextcloud nextcloudcal
syncevolution --configure \
database=CONTACTS-URL-HERE \
backend=carddav \
target-config@nextcloud contacts
syncevolution --configure \
--template SyncEvolution_Client \
sync=none \
syncURL=local://@nextcloud \
username= \
password= \
nextcloud
syncevolution --configure \
sync=two-way \
backend=maemo-tasks \
database= \
nextcloud nextcloudtodo
syncevolution --configure \
sync=two-way \
backend=maemo-notes\
database= \
nextcloud nextcloudjournal
syncevolution --configure \
sync=two-way \
backend=maemo-events \
database= \
nextcloud nextcloudcal
syncevolution --configure \
sync=two-way \
backend=evolution-contacts \
nextcloud contacts
</pre>
All of the above is configuration that only needs to be done once.
Depending on your exact situation, your initial synchronisation could only use only values from your phone, from your nextcloud, or both. If you want to merge both, my understanding is that the '''slow''' method achieves this:
<pre>
syncevolution --sync slow nextcloud nextcloudjournal
syncevolution --sync slow nextcloud nextcloudtodo
syncevolution --sync slow nextcloud nextcloudcal
syncevolution --sync slow nextcloud contacts
</pre>
Use the '''two-way''' synchronisation method for '''normal synchronisation''' (daily, hourly, etc synchronisations), like so:
<pre>
syncevolution --sync two-way nextcloud nextcloudjournal
syncevolution --sync two-way nextcloud nextcloudtodo
syncevolution --sync two-way nextcloud nextcloudcal
syncevolution --sync two-way nextcloud contacts
</pre>
===== Warning: TLS Chain validation issues =====
If you run into problems with TLS Chain validation, first try to figure out if the problem is on your end. Syncevolution did have a problem for me validation the chain of my next cloud instance, so for testing purposes I set '''SSLVerifyServer = 0''' in '''/home/user/.config/syncevolution/nextcloud/peers/target-config/config.ini'''
==== Radicale synchronising ====
Radicale is a simple CardDAV and CalDAV server, and is set up similarly to nextcloud. Just browse to the Radicale web URL, and use the following URLs:
# The main DAV url is simple the URL to your radicale server (without the .web part)
# The calendar URL is simply the http(s) URL to the calendar that you want to synchronise
# The contacts URL is simple the http(s) URL of the addressbook that you want to synchronise
The username (and optional password) are the radicale credentials.
===== Radicale Testing Server =====
For testing purposes, here is how to quickly run a radicale server, this assumed it's installed.
<pre>
mkdir -p ~/radicale
cd ~/radicale
python3 -m radicale --config "" --storage-filesystem-folder `pwd` -H localhost:5223 --logging-level info
</pre>
Now brose to http://localhost:5223, create an account (password is optional), and you should be able to synchronise, assuming the devices can reach your radicale server (don't have it listen on localhost only, perhaps use 0.0.0.0:5223 for LAN testing)
== Files synchronisation ==
TODO
afa585cc920c1c3d56241a54741d0edd18ec3650
1395
1394
2022-10-09T19:06:58Z
Wizzup
4
/* Radicale Testing Server */
wikitext
text/x-wiki
= Synchronisation =
This page explains and suggests various ways of synchronising contacts, calendars and files.
== Calendar, Notes, Tasks and Contacts ==
Synchronising calendar, notes and tasks (using CalDav) and contacts (using CardDav) can be done using syncevolution (other [https://syncevolution.org/documentation/backends/ backends are available], but not currently documented here). A frontend to running synchronisation tasks is available in the repository (Syncevolution Frontend).
=== Synchronising with syncevolution CalDav + CardDav ===
If you get stuck in an odd state setting this up, you could consider running the following to get to a clean state, at least with regards to syncevolution configuration:
<pre>
rm -rf /home/user/.config/syncevolution
</pre>
==== NextCloud synchronising ====
We will be synchronising the calendar and such using local '''maemo-events''', '''maemo-notes''' and '''maemo-tasks''' backends using the '''caldav''' backend. For contacts, we will synchronise '''evolution-contacts''' using '''carddav'''.
A few URLs are required, first, the '''main Nextcloud DAV url''', this seems to be of the form:
<pre>https://my.nextcloud.org/remote.php/dav</pre>
then there is the '''url for a specific calendar''', this is called the "Private Link" and you can get it by clicking "Copy Private Link" for a given calendar in Nextcloud, this might look like so:
<pre>
https://my.nextcloud.org/remote.php/dav/calendars/userhere/calendarnamehere/
</pre>
Finally, for your address book (contacts) synchronisation, the '''contacts URL''' is needed (in Nextcloud, go to contacts, settings, "Copy Link" for your contacts):
<pre>
https://my.nextcloud.org/remote.php/dav/addressbooks/users/userhere/contacts/
</pre>
Given the above, a setup to synchronise calendar, tasks, notes and contacts could look like this:
<pre>
syncevolution --configure \
--template webdav \
username=NEXTCLOUD-USER-HERE \
password=NEXTCLOUD-PASS-HERE \
syncURL=MAIN-DAV-URL-HERE \
target-config@nextcloud
syncevolution --configure \
database=CALENDAR-URL-HERE \
backend=caldavtodo \
target-config@nextcloud nextcloudtodo
syncevolution --configure \
database=CALENDAR-URL-HERE \
backend=caldavjournal \
target-config@nextcloud nextcloudjournal
syncevolution --configure \
database=CALENDAR-URL-HERE \
backend=caldav \
target-config@nextcloud nextcloudcal
syncevolution --configure \
database=CONTACTS-URL-HERE \
backend=carddav \
target-config@nextcloud contacts
syncevolution --configure \
--template SyncEvolution_Client \
sync=none \
syncURL=local://@nextcloud \
username= \
password= \
nextcloud
syncevolution --configure \
sync=two-way \
backend=maemo-tasks \
database= \
nextcloud nextcloudtodo
syncevolution --configure \
sync=two-way \
backend=maemo-notes\
database= \
nextcloud nextcloudjournal
syncevolution --configure \
sync=two-way \
backend=maemo-events \
database= \
nextcloud nextcloudcal
syncevolution --configure \
sync=two-way \
backend=evolution-contacts \
nextcloud contacts
</pre>
All of the above is configuration that only needs to be done once.
Depending on your exact situation, your initial synchronisation could only use only values from your phone, from your nextcloud, or both. If you want to merge both, my understanding is that the '''slow''' method achieves this:
<pre>
syncevolution --sync slow nextcloud nextcloudjournal
syncevolution --sync slow nextcloud nextcloudtodo
syncevolution --sync slow nextcloud nextcloudcal
syncevolution --sync slow nextcloud contacts
</pre>
Use the '''two-way''' synchronisation method for '''normal synchronisation''' (daily, hourly, etc synchronisations), like so:
<pre>
syncevolution --sync two-way nextcloud nextcloudjournal
syncevolution --sync two-way nextcloud nextcloudtodo
syncevolution --sync two-way nextcloud nextcloudcal
syncevolution --sync two-way nextcloud contacts
</pre>
===== Warning: TLS Chain validation issues =====
If you run into problems with TLS Chain validation, first try to figure out if the problem is on your end. Syncevolution did have a problem for me validation the chain of my next cloud instance, so for testing purposes I set '''SSLVerifyServer = 0''' in '''/home/user/.config/syncevolution/nextcloud/peers/target-config/config.ini'''
==== Radicale synchronising ====
Radicale is a simple CardDAV and CalDAV server, and is set up similarly to nextcloud. Just browse to the Radicale web URL, and use the following URLs:
# The main DAV url is simple the URL to your radicale server (without the .web part)
# The calendar URL is simply the http(s) URL to the calendar that you want to synchronise
# The contacts URL is simple the http(s) URL of the addressbook that you want to synchronise
The username (and optional password) are the radicale credentials.
===== Radicale Testing Server =====
For testing purposes, here is how to quickly run a radicale server, this assumed it's installed.
<pre>
mkdir -p ~/radicale
cd ~/radicale
python3 -m radicale --config "" --storage-filesystem-folder `pwd` -H localhost:5223 --logging-level info
</pre>
Now browse to http://localhost:5223, create an account (password is optional), and you should be able to synchronise, assuming the devices can reach your radicale server (don't have it listen on localhost only, perhaps use 0.0.0.0:5223 for LAN testing)
== Files synchronisation ==
TODO
ee232cdd01383ce5d5c560ac4e5a91d0f12b3308
Calendar
0
109
1396
1222
2022-10-09T20:38:22Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Package
|image=
|status=Working
|devices=all
|date_in_repo=
|maemo_leste_repo=https://github.com/maemo-leste/qalendar
|category=Office
|packager=[[User:Wizzup]]
}}
= Calendar =
Data is stored in /home/user/.calendar/calendardb - in SQLite3 format.
== Qalendar ==
Qalendar is Qt5 implementation of the Maemo Calendar, source is here: https://github.com/maemo-leste/qalendar
It should mostly function as the Maemo calendar, see the feature comparison here: https://wiki.maemo.org/Qalendar
* cal-home-widget has also been ported
== Improvements over Fremantle Qalendar ==
* Supports landscape at dynamic resolutions (vs only 800x480)
Planned:
* Portrait support
== Synchronising ==
See the [[Sync]] page. Alternatively, one can try this script, but it currently only syncs the calendar
# Install syncevolution first via 'apt install syncevolution'
# Grab the script at: http://uvos.xyz/maserati/maemo-calendar-sync.sh
# Open it and change the vars to reflect your server
# Run it
if that doesn't work try the section below
Random resources:
* https://www.mail-archive.com/syncevolution@syncevolution.org/msg03379.html
* https://wiki.maemo.org/Calendar_database
* https://wiki.maemo.org/Sync
* http://maemo.org/packages/source/view/fremantle_extras-devel_free_source/syncevolution-frontend/0.12/
* https://talk.maemo.org/showthread.php?t=75810
3326f9eaafa1384c894c7e61ec186d21d963cc8e
Packaging
0
69
1397
989
2022-10-09T23:33:07Z
BuZz
32
wikitext
text/x-wiki
The packages we build for Maemo Leste are hosted on Github: https://github.com/maemo-leste
We use the Jenkins CI https://phoenix.maemo.org along with helper scripts that can be found at https://github.com/maemo-leste/jenkins-integration
The base logic of buildng Debian packages in Jenkins comes from https://jenkins-debian-glue.org
= Workflow =
Our workflow consists of having the packages in Git, along with respective branches.
The master branch in git should represent the latest development. When the sources are ready, we create a new branch called "maemo/ascii", which represents the Devuan suite we base it on.
Being git-based, our packages require the gbp.conf file inside the debian directory.
All of our packages contain the exact same gbp.conf, which is the following:
<pre>
[DEFAULT]
upstream-tag=%(version)s
</pre>
This file is used by gbp, which in turn is used by jenkins-debian-glue.
The rest is standard Debian packaging.
= Initial packaging =
TODO
= Updating a package =
TODO
= Links =
* https://wiki.maemo.org/Packaging
* https://wiki.maemo.org/Extras-testing/Command_line_applications
* https://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide/Application_Development/Writing_a_new_maemo_application#Adding_application_to_menu
84d77b171c29ea2df99b9fb268f328c1d59ddf6b
Sync
0
201
1398
1395
2022-10-10T00:24:21Z
BuZz
32
wikitext
text/x-wiki
= Synchronisation =
This page explains and suggests various ways of synchronising contacts, calendars and files.
== Calendar, Notes, Tasks and Contacts ==
Synchronising calendar, notes and tasks (using CalDav) and contacts (using CardDav) can be done using syncevolution (other [https://syncevolution.org/documentation/backends/ backends are available], but not currently documented here). A frontend to running synchronisation tasks is available in the repository (Syncevolution Frontend).
=== Synchronising with syncevolution CalDav + CardDav ===
If you get stuck in an odd state setting this up, you could consider running the following to get to a clean state, at least with regards to syncevolution configuration:
<pre>
rm -rf /home/user/.config/syncevolution
</pre>
==== NextCloud synchronizing ====
We will be synchronising the calendar and such using local '''maemo-events''', '''maemo-notes''' and '''maemo-tasks''' backends using the '''caldav''' backend. For contacts, we will synchronise '''evolution-contacts''' using '''carddav'''.
A few URLs are required, first, the '''main Nextcloud DAV url''', this seems to be of the form:
<pre>https://my.nextcloud.org/remote.php/dav</pre>
then there is the '''url for a specific calendar''', this is called the "Private Link" and you can get it by clicking "Copy Private Link" for a given calendar in Nextcloud, this might look like so:
<pre>
https://my.nextcloud.org/remote.php/dav/calendars/userhere/calendarnamehere/
</pre>
Finally, for your address book (contacts) synchronization, the '''contacts URL''' is needed (in Nextcloud, go to contacts, settings, "Copy Link" for your contacts):
<pre>
https://my.nextcloud.org/remote.php/dav/addressbooks/users/userhere/contacts/
</pre>
Given the above, a setup to synchronize calendar, tasks, notes and contacts could look like this:
<pre>
syncevolution --configure \
--template webdav \
username=NEXTCLOUD-USER-HERE \
password=NEXTCLOUD-PASS-HERE \
syncURL=MAIN-DAV-URL-HERE \
target-config@nextcloud
syncevolution --configure \
--template webdav \
database=CALENDAR-URL-HERE \
backend=caldavtodo \
target-config@nextcloud nextcloudtodo
syncevolution --configure \
--template webdav \
database=CALENDAR-URL-HERE \
backend=caldavjournal \
target-config@nextcloud nextcloudjournal
syncevolution --configure \
--template webdav \
database=CALENDAR-URL-HERE \
backend=caldav \
target-config@nextcloud nextcloudcal
syncevolution --configure \
--template webdav \
database=CONTACTS-URL-HERE \
backend=carddav \
target-config@nextcloud contacts
syncevolution --configure \
--template SyncEvolution_Client \
sync=none \
syncURL=local://@nextcloud \
username= \
password= \
nextcloud
syncevolution --configure \
sync=two-way \
backend=maemo-tasks \
database= \
nextcloud nextcloudtodo
syncevolution --configure \
sync=two-way \
backend=maemo-notes\
database= \
nextcloud nextcloudjournal
syncevolution --configure \
sync=two-way \
backend=maemo-events \
database= \
nextcloud nextcloudcal
syncevolution --configure \
sync=two-way \
backend=evolution-contacts \
nextcloud contacts
</pre>
All of the above is configuration that only needs to be done once.
Depending on your exact situation, your initial synchronisation could only use only values from your phone, from your nextcloud, or both. If you want to merge both, my understanding is that the '''slow''' method achieves this:
<pre>
syncevolution --sync slow nextcloud nextcloudjournal
syncevolution --sync slow nextcloud nextcloudtodo
syncevolution --sync slow nextcloud nextcloudcal
syncevolution --sync slow nextcloud contacts
</pre>
Use the '''two-way''' synchronization method for '''normal synchronization''' (daily, hourly, etc synchronizations), like so:
<pre>
syncevolution --sync two-way nextcloud nextcloudjournal
syncevolution --sync two-way nextcloud nextcloudtodo
syncevolution --sync two-way nextcloud nextcloudcal
syncevolution --sync two-way nextcloud contacts
</pre>
===== Warning: TLS Chain validation issues =====
If you run into problems with TLS Chain validation, first try to figure out if the problem is on your end. Syncevolution did have a problem for me validation the chain of my next cloud instance, so for testing purposes I set '''SSLVerifyServer = 0''' in '''/home/user/.config/syncevolution/nextcloud/peers/target-config/config.ini'''
==== Radicale synchronising ====
Radicale is a simple CardDAV and CalDAV server, and is set up similarly to nextcloud. Just browse to the Radicale web URL, and use the following URLs:
# The main DAV url is simple the URL to your radicale server (without the .web part)
# The calendar URL is simply the http(s) URL to the calendar that you want to synchronize
# The contacts URL is simple the http(s) URL of the addressbook that you want to synchronize
The username (and optional password) are the radicale credentials.
===== Radicale Testing Server =====
For testing purposes, here is how to quickly run a radicale server, this assumed it's installed.
<pre>
mkdir -p ~/radicale
cd ~/radicale
python3 -m radicale --config "" --storage-filesystem-folder `pwd` -H localhost:5223 --logging-level info
</pre>
Now browse to http://localhost:5223, create an account (password is optional), and you should be able to synchronize, assuming the devices can reach your radicale server (don't have it listen on localhost only, perhaps use 0.0.0.0:5223 for LAN testing)
== Files synchronization ==
TODO
57396e303a53795b50667689f1b48f0a2e2b3a8f
1399
1398
2022-10-10T00:26:34Z
BuZz
32
wikitext
text/x-wiki
= Synchronization =
This page explains and suggests various ways of synchronizing contacts, calendars and files.
== Calendar, Notes, Tasks and Contacts ==
Synchronizing calendar, notes and tasks (using CalDav) and contacts (using CardDav) can be done using syncevolution (other [https://syncevolution.org/documentation/backends/ backends are available], but not currently documented here). A frontend to running synchronization tasks is available in the repository (Syncevolution Frontend).
=== Synchronizing with syncevolution CalDav + CardDav ===
If you get stuck in an odd state setting this up, you could consider running the following to get to a clean state, at least with regards to syncevolution configuration:
<pre>
rm -rf /home/user/.config/syncevolution
</pre>
==== NextCloud synchronizing ====
We will be synchronizing the calendar and such using local '''maemo-events''', '''maemo-notes''' and '''maemo-tasks''' backends using the '''caldav''' backend.
For contacts, we will synchronize '''evolution-contacts''' using '''carddav'''.
A few URLs are required, first, the '''main Nextcloud DAV url''', this will appear like:
<pre>https://my.nextcloud.org/remote.php/dav</pre>
then there is the '''url for a specific calendar''', this is called the "Private Link" and you can get it by clicking "Copy Private Link" for a given calendar in Nextcloud, this might look like so:
<pre>
https://my.nextcloud.org/remote.php/dav/calendars/userhere/calendarnamehere/
</pre>
Finally, for your address book (contacts) synchronization, the '''contacts URL''' is needed (in Nextcloud, go to contacts, settings, "Copy Link" for your contacts):
<pre>
https://my.nextcloud.org/remote.php/dav/addressbooks/users/userhere/contacts/
</pre>
Given the above, a setup to synchronize calendar, tasks, notes and contacts could look like this:
<pre>
syncevolution --configure \
--template webdav \
username=NEXTCLOUD-USER-HERE \
password=NEXTCLOUD-PASS-HERE \
syncURL=MAIN-DAV-URL-HERE \
target-config@nextcloud
syncevolution --configure \
--template webdav \
database=CALENDAR-URL-HERE \
backend=caldavtodo \
target-config@nextcloud nextcloudtodo
syncevolution --configure \
--template webdav \
database=CALENDAR-URL-HERE \
backend=caldavjournal \
target-config@nextcloud nextcloudjournal
syncevolution --configure \
--template webdav \
database=CALENDAR-URL-HERE \
backend=caldav \
target-config@nextcloud nextcloudcal
syncevolution --configure \
--template webdav \
database=CONTACTS-URL-HERE \
backend=carddav \
target-config@nextcloud contacts
syncevolution --configure \
--template SyncEvolution_Client \
sync=none \
syncURL=local://@nextcloud \
username= \
password= \
nextcloud
syncevolution --configure \
sync=two-way \
backend=maemo-tasks \
database= \
nextcloud nextcloudtodo
syncevolution --configure \
sync=two-way \
backend=maemo-notes\
database= \
nextcloud nextcloudjournal
syncevolution --configure \
sync=two-way \
backend=maemo-events \
database= \
nextcloud nextcloudcal
syncevolution --configure \
sync=two-way \
backend=evolution-contacts \
nextcloud contacts
</pre>
All of the above is configuration that only needs to be done once.
Depending on your exact situation, your initial synchronisation could only use only values from your phone, from your nextcloud, or both. If you want to merge both, my understanding is that the '''slow''' method achieves this:
<pre>
syncevolution --sync slow nextcloud nextcloudjournal
syncevolution --sync slow nextcloud nextcloudtodo
syncevolution --sync slow nextcloud nextcloudcal
syncevolution --sync slow nextcloud contacts
</pre>
Use the '''two-way''' synchronization method for '''normal synchronization''' (daily, hourly, etc synchronizations), like so:
<pre>
syncevolution --sync two-way nextcloud nextcloudjournal
syncevolution --sync two-way nextcloud nextcloudtodo
syncevolution --sync two-way nextcloud nextcloudcal
syncevolution --sync two-way nextcloud contacts
</pre>
===== Warning: TLS Chain validation issues =====
If you run into problems with TLS Chain validation, first try to figure out if the problem is on your end. Syncevolution did have a problem for me validation the chain of my next cloud instance, so for testing purposes I set '''SSLVerifyServer = 0''' in '''/home/user/.config/syncevolution/nextcloud/peers/target-config/config.ini'''
==== Radicale synchronising ====
Radicale is a simple CardDAV and CalDAV server, and is set up similarly to nextcloud. Just browse to the Radicale web URL, and use the following URLs:
# The main DAV url is simple the URL to your radicale server (without the .web part)
# The calendar URL is simply the http(s) URL to the calendar that you want to synchronize
# The contacts URL is simple the http(s) URL of the addressbook that you want to synchronize
The username (and optional password) are the radicale credentials.
===== Radicale Testing Server =====
For testing purposes, here is how to quickly run a radicale server, this assumed it's installed.
<pre>
mkdir -p ~/radicale
cd ~/radicale
python3 -m radicale --config "" --storage-filesystem-folder `pwd` -H localhost:5223 --logging-level info
</pre>
Now browse to http://localhost:5223, create an account (password is optional), and you should be able to synchronize, assuming the devices can reach your radicale server (don't have it listen on localhost only, perhaps use 0.0.0.0:5223 for LAN testing)
== Files synchronization ==
TODO
5cbd333d24d85130d5b64e62a5b1ce5b685690fc
1400
1399
2022-10-10T00:34:10Z
BuZz
32
wikitext
text/x-wiki
= Synchronization =
This page explains and suggests various ways of synchronizing contacts, calendars and files.
== Calendar, Notes, Tasks and Contacts ==
Synchronizing calendar, notes and tasks (using CalDav) and contacts (using CardDav) can be done using syncevolution (other [https://syncevolution.org/documentation/backends/ backends are available], but not currently documented here). A frontend to running synchronization tasks is available in the repository (Syncevolution Frontend).
=== Synchronizing with syncevolution CalDav + CardDav ===
If you get stuck in an odd state setting this up, you could consider running the following to get to a clean state, at least with regards to syncevolution configuration:
<pre>
rm -rf /home/user/.config/syncevolution
</pre>
==== NextCloud synchronizing ====
We will be synchronizing the calendar and such using local '''maemo-events''', '''maemo-notes''' and '''maemo-tasks''' backends using the '''caldav''' backend.
For contacts, we will synchronize '''evolution-contacts''' using '''carddav'''.
A few URLs are required, first, the '''main Nextcloud DAV url''', this will appear like:
<pre>https://my.nextcloud.org/remote.php/dav</pre>
then there is the '''url for a specific calendar''', this is called the "Private Link" and you can get it by clicking "Copy Private Link" for a given calendar in Nextcloud, this might look like so:
<pre>
https://my.nextcloud.org/remote.php/dav/calendars/userhere/calendarnamehere/
</pre>
Finally, for your address book (contacts) synchronization, the '''contacts URL''' is needed (in Nextcloud, go to contacts, settings, "Copy Link" for your contacts):
<pre>
https://my.nextcloud.org/remote.php/dav/addressbooks/users/userhere/contacts/
</pre>
Given the above, a setup to synchronize calendar, tasks, notes and contacts could look like this:
<pre>
syncevolution --configure \
--template webdav \
username=NEXTCLOUD-USER-HERE \
password=NEXTCLOUD-PASS-HERE \
syncURL=MAIN-DAV-URL-HERE \
target-config@nextcloud
syncevolution --configure \
--template webdav \
database=CALENDAR-URL-HERE \
backend=caldavtodo \
target-config@nextcloud nextcloudtodo
syncevolution --configure \
--template webdav \
database=CALENDAR-URL-HERE \
backend=caldavjournal \
target-config@nextcloud nextcloudjournal
syncevolution --configure \
--template webdav \
database=CALENDAR-URL-HERE \
backend=caldav \
target-config@nextcloud nextcloudcal
syncevolution --configure \
--template webdav \
database=CONTACTS-URL-HERE \
backend=carddav \
target-config@nextcloud contacts
syncevolution --configure \
--template SyncEvolution_Client \
sync=none \
syncURL=local://@nextcloud \
username= \
password= \
nextcloud
syncevolution --configure \
sync=two-way \
backend=maemo-tasks \
database= \
nextcloud nextcloudtodo
syncevolution --configure \
sync=two-way \
backend=maemo-notes\
database= \
nextcloud nextcloudjournal
syncevolution --configure \
sync=two-way \
backend=maemo-events \
database= \
nextcloud nextcloudcal
syncevolution --configure \
sync=two-way \
backend=evolution-contacts \
nextcloud contacts
</pre>
All of the above is configuration that only needs to be done once.
Depending on your exact situation, your initial synchronisation could only use only values from your phone, from your nextcloud, or both. If you want to merge both, my understanding is that the '''slow''' method achieves this:
<pre>
syncevolution --sync slow nextcloud nextcloudjournal
syncevolution --sync slow nextcloud nextcloudtodo
syncevolution --sync slow nextcloud nextcloudcal
syncevolution --sync slow nextcloud contacts
</pre>
Use the '''two-way''' synchronization method for '''normal synchronization''' (daily, hourly, etc synchronizations), like so:
<pre>
syncevolution --sync two-way nextcloud nextcloudjournal
syncevolution --sync two-way nextcloud nextcloudtodo
syncevolution --sync two-way nextcloud nextcloudcal
syncevolution --sync two-way nextcloud contacts
</pre>
===== Warning: TLS Chain validation issues =====
If you run into problems with TLS Chain validation, first try to figure out if the problem is on your end. Syncevolution did have a problem for me validation the chain of my next cloud instance, so for testing purposes I set '''SSLVerifyServer = 0''' in '''/home/user/.config/syncevolution/nextcloud/peers/target-config/config.ini'''
=== Radicale synchronising ===
Radicale is a simple CardDAV and CalDAV server, and is set up similarly to nextcloud. Just browse to the Radicale web URL, and use the following URLs:
# The main DAV url is simple the URL to your radicale server (without the .web part)
# The calendar URL is simply the http(s) URL to the calendar that you want to synchronize
# The contacts URL is simple the http(s) URL of the addressbook that you want to synchronize
The username (and optional password) are the radicale credentials.
==== Radicale Testing Server ====
For testing purposes, here is how to quickly run a radicale server, this assumed it's installed.
<pre>
mkdir -p ~/radicale
cd ~/radicale
python3 -m radicale --config "" --storage-filesystem-folder `pwd` -H localhost:5223 --logging-level info
</pre>
Now browse to http://localhost:5223, create an account (password is optional), and you should be able to synchronize, assuming the devices can reach your radicale server (don't have it listen on localhost only, perhaps use 0.0.0.0:5223 for LAN testing)
== Files synchronization ==
TODO
== Known Issues ==
* Synchronizing calendar to radicale gives errors if there are unnamed calendar events.
* Synchronizing contacts to radicale gives errors if there are contacts without Firstname or Lastname.
f1b1b9dd704ca9da5f10daa0634e5d197c9127d4
1401
1400
2022-10-10T00:34:59Z
BuZz
32
wikitext
text/x-wiki
This page explains and suggests various ways of synchronizing contacts, calendars and files.
= Calendar, Notes, Tasks and Contacts =
Synchronizing calendar, notes and tasks (using CalDav) and contacts (using CardDav) can be done using syncevolution (other [https://syncevolution.org/documentation/backends/ backends are available], but not currently documented here). A frontend to running synchronization tasks is available in the repository (Syncevolution Frontend).
== Synchronizing with syncevolution CalDav + CardDav ==
If you get stuck in an odd state setting this up, you could consider running the following to get to a clean state, at least with regards to syncevolution configuration:
<pre>
rm -rf /home/user/.config/syncevolution
</pre>
=== NextCloud synchronizing ===
We will be synchronizing the calendar and such using local '''maemo-events''', '''maemo-notes''' and '''maemo-tasks''' backends using the '''caldav''' backend.
For contacts, we will synchronize '''evolution-contacts''' using '''carddav'''.
A few URLs are required, first, the '''main Nextcloud DAV url''', this will appear like:
<pre>https://my.nextcloud.org/remote.php/dav</pre>
then there is the '''url for a specific calendar''', this is called the "Private Link" and you can get it by clicking "Copy Private Link" for a given calendar in Nextcloud, this might look like so:
<pre>
https://my.nextcloud.org/remote.php/dav/calendars/userhere/calendarnamehere/
</pre>
Finally, for your address book (contacts) synchronization, the '''contacts URL''' is needed (in Nextcloud, go to contacts, settings, "Copy Link" for your contacts):
<pre>
https://my.nextcloud.org/remote.php/dav/addressbooks/users/userhere/contacts/
</pre>
Given the above, a setup to synchronize calendar, tasks, notes and contacts could look like this:
<pre>
syncevolution --configure \
--template webdav \
username=NEXTCLOUD-USER-HERE \
password=NEXTCLOUD-PASS-HERE \
syncURL=MAIN-DAV-URL-HERE \
target-config@nextcloud
syncevolution --configure \
--template webdav \
database=CALENDAR-URL-HERE \
backend=caldavtodo \
target-config@nextcloud nextcloudtodo
syncevolution --configure \
--template webdav \
database=CALENDAR-URL-HERE \
backend=caldavjournal \
target-config@nextcloud nextcloudjournal
syncevolution --configure \
--template webdav \
database=CALENDAR-URL-HERE \
backend=caldav \
target-config@nextcloud nextcloudcal
syncevolution --configure \
--template webdav \
database=CONTACTS-URL-HERE \
backend=carddav \
target-config@nextcloud contacts
syncevolution --configure \
--template SyncEvolution_Client \
sync=none \
syncURL=local://@nextcloud \
username= \
password= \
nextcloud
syncevolution --configure \
sync=two-way \
backend=maemo-tasks \
database= \
nextcloud nextcloudtodo
syncevolution --configure \
sync=two-way \
backend=maemo-notes\
database= \
nextcloud nextcloudjournal
syncevolution --configure \
sync=two-way \
backend=maemo-events \
database= \
nextcloud nextcloudcal
syncevolution --configure \
sync=two-way \
backend=evolution-contacts \
nextcloud contacts
</pre>
All of the above is configuration that only needs to be done once.
Depending on your exact situation, your initial synchronisation could only use only values from your phone, from your nextcloud, or both. If you want to merge both, my understanding is that the '''slow''' method achieves this:
<pre>
syncevolution --sync slow nextcloud nextcloudjournal
syncevolution --sync slow nextcloud nextcloudtodo
syncevolution --sync slow nextcloud nextcloudcal
syncevolution --sync slow nextcloud contacts
</pre>
Use the '''two-way''' synchronization method for '''normal synchronization''' (daily, hourly, etc synchronizations), like so:
<pre>
syncevolution --sync two-way nextcloud nextcloudjournal
syncevolution --sync two-way nextcloud nextcloudtodo
syncevolution --sync two-way nextcloud nextcloudcal
syncevolution --sync two-way nextcloud contacts
</pre>
==== Warning: TLS Chain validation issues ====
If you run into problems with TLS Chain validation, first try to figure out if the problem is on your end. Syncevolution did have a problem for me validation the chain of my next cloud instance, so for testing purposes I set '''SSLVerifyServer = 0''' in '''/home/user/.config/syncevolution/nextcloud/peers/target-config/config.ini'''
== Radicale synchronising ==
Radicale is a simple CardDAV and CalDAV server, and is set up similarly to nextcloud. Just browse to the Radicale web URL, and use the following URLs:
# The main DAV url is simple the URL to your radicale server (without the .web part)
# The calendar URL is simply the http(s) URL to the calendar that you want to synchronize
# The contacts URL is simple the http(s) URL of the addressbook that you want to synchronize
The username (and optional password) are the radicale credentials.
=== Radicale Testing Server ===
For testing purposes, here is how to quickly run a radicale server, this assumed it's installed.
<pre>
mkdir -p ~/radicale
cd ~/radicale
python3 -m radicale --config "" --storage-filesystem-folder `pwd` -H localhost:5223 --logging-level info
</pre>
Now browse to http://localhost:5223, create an account (password is optional), and you should be able to synchronize, assuming the devices can reach your radicale server (don't have it listen on localhost only, perhaps use 0.0.0.0:5223 for LAN testing)
= Files synchronization =
TODO
= Known Issues =
* Synchronizing calendar to radicale gives errors if there are unnamed calendar events.
* Synchronizing contacts to radicale gives errors if there are contacts without Firstname or Lastname.
72689c5a8280a0aa6b990e610c494f5dbee4479b
1404
1401
2022-10-10T10:26:56Z
Wizzup
4
wikitext
text/x-wiki
This page explains and suggests various ways of synchronizing contacts, calendars and files.
= Calendar, Notes, Tasks and Contacts =
Synchronizing calendar, notes and tasks (using CalDav) and contacts (using CardDav) can be done using syncevolution (other [https://syncevolution.org/documentation/backends/ backends are available], but not currently documented here). A frontend to running synchronization tasks is available in the repository (Syncevolution Frontend).
== GUI ==
<gallery widths=320px heights=173px>
File:syncevolution.png|main syncevolution screen
File:syncevolution-2.png|syncevolution for a specific sync target
</gallery>
== Synchronizing with syncevolution CalDav + CardDav ==
If you get stuck in an odd state setting this up, you could consider running the following to get to a clean state, at least with regards to syncevolution configuration:
<pre>
rm -rf /home/user/.config/syncevolution
</pre>
=== NextCloud synchronizing ===
We will be synchronizing the calendar and such using local '''maemo-events''', '''maemo-notes''' and '''maemo-tasks''' backends using the '''caldav''' backend.
For contacts, we will synchronize '''evolution-contacts''' using '''carddav'''.
A few URLs are required, first, the '''main Nextcloud DAV url''', this will appear like:
<pre>https://my.nextcloud.org/remote.php/dav</pre>
then there is the '''url for a specific calendar''', this is called the "Private Link" and you can get it by clicking "Copy Private Link" for a given calendar in Nextcloud, this might look like so:
<pre>
https://my.nextcloud.org/remote.php/dav/calendars/userhere/calendarnamehere/
</pre>
Finally, for your address book (contacts) synchronization, the '''contacts URL''' is needed (in Nextcloud, go to contacts, settings, "Copy Link" for your contacts):
<pre>
https://my.nextcloud.org/remote.php/dav/addressbooks/users/userhere/contacts/
</pre>
Given the above, a setup to synchronize calendar, tasks, notes and contacts could look like this:
<pre>
syncevolution --configure \
--template webdav \
username=NEXTCLOUD-USER-HERE \
password=NEXTCLOUD-PASS-HERE \
syncURL=MAIN-DAV-URL-HERE \
target-config@nextcloud
syncevolution --configure \
--template webdav \
database=CALENDAR-URL-HERE \
backend=caldavtodo \
target-config@nextcloud nextcloudtodo
syncevolution --configure \
--template webdav \
database=CALENDAR-URL-HERE \
backend=caldavjournal \
target-config@nextcloud nextcloudjournal
syncevolution --configure \
--template webdav \
database=CALENDAR-URL-HERE \
backend=caldav \
target-config@nextcloud nextcloudcal
syncevolution --configure \
--template webdav \
database=CONTACTS-URL-HERE \
backend=carddav \
target-config@nextcloud contacts
syncevolution --configure \
--template SyncEvolution_Client \
sync=none \
syncURL=local://@nextcloud \
username= \
password= \
nextcloud
syncevolution --configure \
sync=two-way \
backend=maemo-tasks \
database= \
nextcloud nextcloudtodo
syncevolution --configure \
sync=two-way \
backend=maemo-notes\
database= \
nextcloud nextcloudjournal
syncevolution --configure \
sync=two-way \
backend=maemo-events \
database= \
nextcloud nextcloudcal
syncevolution --configure \
sync=two-way \
backend=evolution-contacts \
nextcloud contacts
</pre>
All of the above is configuration that only needs to be done once.
Depending on your exact situation, your initial synchronisation could only use only values from your phone, from your nextcloud, or both. If you want to merge both, my understanding is that the '''slow''' method achieves this:
<pre>
syncevolution --sync slow nextcloud nextcloudjournal
syncevolution --sync slow nextcloud nextcloudtodo
syncevolution --sync slow nextcloud nextcloudcal
syncevolution --sync slow nextcloud contacts
</pre>
Use the '''two-way''' synchronization method for '''normal synchronization''' (daily, hourly, etc synchronizations), like so:
<pre>
syncevolution --sync two-way nextcloud nextcloudjournal
syncevolution --sync two-way nextcloud nextcloudtodo
syncevolution --sync two-way nextcloud nextcloudcal
syncevolution --sync two-way nextcloud contacts
</pre>
==== Warning: TLS Chain validation issues ====
If you run into problems with TLS Chain validation, first try to figure out if the problem is on your end. Syncevolution did have a problem for me validation the chain of my next cloud instance, so for testing purposes I set '''SSLVerifyServer = 0''' in '''/home/user/.config/syncevolution/nextcloud/peers/target-config/config.ini'''
== Radicale synchronising ==
Radicale is a simple CardDAV and CalDAV server, and is set up similarly to nextcloud. Just browse to the Radicale web URL, and use the following URLs:
# The main DAV url is simple the URL to your radicale server (without the .web part)
# The calendar URL is simply the http(s) URL to the calendar that you want to synchronize
# The contacts URL is simple the http(s) URL of the addressbook that you want to synchronize
The username (and optional password) are the radicale credentials.
=== Radicale Testing Server ===
For testing purposes, here is how to quickly run a radicale server, this assumed it's installed.
<pre>
mkdir -p ~/radicale
cd ~/radicale
python3 -m radicale --config "" --storage-filesystem-folder `pwd` -H localhost:5223 --logging-level info
</pre>
Now browse to http://localhost:5223, create an account (password is optional), and you should be able to synchronize, assuming the devices can reach your radicale server (don't have it listen on localhost only, perhaps use 0.0.0.0:5223 for LAN testing)
= Files synchronization =
TODO
= Known Issues =
* Synchronizing calendar to radicale gives errors if there are unnamed calendar events.
* Synchronizing contacts to radicale gives errors if there are contacts without Firstname or Lastname.
63c1fd5a319997b40c515fa500f11f7a27d99b78
1405
1404
2022-10-10T10:29:32Z
Wizzup
4
wikitext
text/x-wiki
This page explains and suggests various ways of synchronizing contacts, calendars and files.
= Calendar, Notes, Tasks and Contacts =
Synchronizing calendar, notes and tasks (using CalDav) and contacts (using CardDav) can be done using syncevolution (other [https://syncevolution.org/documentation/backends/ backends are available], but not currently documented here). A frontend to running synchronization tasks is available in the repository (Syncevolution Frontend).
== GUI ==
The "Syncevolution Frontend" application is a graphical interface to syncevolution. While the interface can technically help you set up the synchronisation configuration through the graphical interface, we haven't tried it and do not have instructions for it at the moment. We only use it for scheduling and running synchronisations - the configuration still has to be done using the console, currently.
(Contributions welcome)
<gallery widths=320px heights=173px>
File:syncevolution.png|main syncevolution screen
File:syncevolution-2.png|syncevolution for a specific sync target
</gallery>
== Synchronizing with syncevolution CalDav + CardDav ==
If you get stuck in an odd state setting this up, you could consider running the following to get to a clean state, at least with regards to syncevolution configuration:
<pre>
rm -rf /home/user/.config/syncevolution
</pre>
=== NextCloud synchronizing ===
We will be synchronizing the calendar and such using local '''maemo-events''', '''maemo-notes''' and '''maemo-tasks''' backends using the '''caldav''' backend.
For contacts, we will synchronize '''evolution-contacts''' using '''carddav'''.
A few URLs are required, first, the '''main Nextcloud DAV url''', this will appear like:
<pre>https://my.nextcloud.org/remote.php/dav</pre>
then there is the '''url for a specific calendar''', this is called the "Private Link" and you can get it by clicking "Copy Private Link" for a given calendar in Nextcloud, this might look like so:
<pre>
https://my.nextcloud.org/remote.php/dav/calendars/userhere/calendarnamehere/
</pre>
Finally, for your address book (contacts) synchronization, the '''contacts URL''' is needed (in Nextcloud, go to contacts, settings, "Copy Link" for your contacts):
<pre>
https://my.nextcloud.org/remote.php/dav/addressbooks/users/userhere/contacts/
</pre>
Given the above, a setup to synchronize calendar, tasks, notes and contacts could look like this:
<pre>
syncevolution --configure \
--template webdav \
username=NEXTCLOUD-USER-HERE \
password=NEXTCLOUD-PASS-HERE \
syncURL=MAIN-DAV-URL-HERE \
target-config@nextcloud
syncevolution --configure \
--template webdav \
database=CALENDAR-URL-HERE \
backend=caldavtodo \
target-config@nextcloud nextcloudtodo
syncevolution --configure \
--template webdav \
database=CALENDAR-URL-HERE \
backend=caldavjournal \
target-config@nextcloud nextcloudjournal
syncevolution --configure \
--template webdav \
database=CALENDAR-URL-HERE \
backend=caldav \
target-config@nextcloud nextcloudcal
syncevolution --configure \
--template webdav \
database=CONTACTS-URL-HERE \
backend=carddav \
target-config@nextcloud contacts
syncevolution --configure \
--template SyncEvolution_Client \
sync=none \
syncURL=local://@nextcloud \
username= \
password= \
nextcloud
syncevolution --configure \
sync=two-way \
backend=maemo-tasks \
database= \
nextcloud nextcloudtodo
syncevolution --configure \
sync=two-way \
backend=maemo-notes\
database= \
nextcloud nextcloudjournal
syncevolution --configure \
sync=two-way \
backend=maemo-events \
database= \
nextcloud nextcloudcal
syncevolution --configure \
sync=two-way \
backend=evolution-contacts \
nextcloud contacts
</pre>
All of the above is configuration that only needs to be done once.
Depending on your exact situation, your initial synchronisation could only use only values from your phone, from your nextcloud, or both. If you want to merge both, my understanding is that the '''slow''' method achieves this:
<pre>
syncevolution --sync slow nextcloud nextcloudjournal
syncevolution --sync slow nextcloud nextcloudtodo
syncevolution --sync slow nextcloud nextcloudcal
syncevolution --sync slow nextcloud contacts
</pre>
Use the '''two-way''' synchronization method for '''normal synchronization''' (daily, hourly, etc synchronizations), like so:
<pre>
syncevolution --sync two-way nextcloud nextcloudjournal
syncevolution --sync two-way nextcloud nextcloudtodo
syncevolution --sync two-way nextcloud nextcloudcal
syncevolution --sync two-way nextcloud contacts
</pre>
==== Warning: TLS Chain validation issues ====
If you run into problems with TLS Chain validation, first try to figure out if the problem is on your end. Syncevolution did have a problem for me validation the chain of my next cloud instance, so for testing purposes I set '''SSLVerifyServer = 0''' in '''/home/user/.config/syncevolution/nextcloud/peers/target-config/config.ini'''
== Radicale synchronising ==
Radicale is a simple CardDAV and CalDAV server, and is set up similarly to nextcloud. Just browse to the Radicale web URL, and use the following URLs:
# The main DAV url is simple the URL to your radicale server (without the .web part)
# The calendar URL is simply the http(s) URL to the calendar that you want to synchronize
# The contacts URL is simple the http(s) URL of the addressbook that you want to synchronize
The username (and optional password) are the radicale credentials.
=== Radicale Testing Server ===
For testing purposes, here is how to quickly run a radicale server, this assumed it's installed.
<pre>
mkdir -p ~/radicale
cd ~/radicale
python3 -m radicale --config "" --storage-filesystem-folder `pwd` -H localhost:5223 --logging-level info
</pre>
Now browse to http://localhost:5223, create an account (password is optional), and you should be able to synchronize, assuming the devices can reach your radicale server (don't have it listen on localhost only, perhaps use 0.0.0.0:5223 for LAN testing)
= Files synchronization =
TODO
= Known Issues =
* Synchronizing calendar to radicale gives errors if there are unnamed calendar events.
* Synchronizing contacts to radicale gives errors if there are contacts without Firstname or Lastname.
1649b430fa16e1c37154f859f12ccbf4f625e7ff
1407
1405
2022-10-10T10:37:48Z
Wizzup
4
/* Files synchronization */
wikitext
text/x-wiki
This page explains and suggests various ways of synchronizing contacts, calendars and files.
= Calendar, Notes, Tasks and Contacts =
Synchronizing calendar, notes and tasks (using CalDav) and contacts (using CardDav) can be done using syncevolution (other [https://syncevolution.org/documentation/backends/ backends are available], but not currently documented here). A frontend to running synchronization tasks is available in the repository (Syncevolution Frontend).
== GUI ==
The "Syncevolution Frontend" application is a graphical interface to syncevolution. While the interface can technically help you set up the synchronisation configuration through the graphical interface, we haven't tried it and do not have instructions for it at the moment. We only use it for scheduling and running synchronisations - the configuration still has to be done using the console, currently.
(Contributions welcome)
<gallery widths=320px heights=173px>
File:syncevolution.png|main syncevolution screen
File:syncevolution-2.png|syncevolution for a specific sync target
</gallery>
== Synchronizing with syncevolution CalDav + CardDav ==
If you get stuck in an odd state setting this up, you could consider running the following to get to a clean state, at least with regards to syncevolution configuration:
<pre>
rm -rf /home/user/.config/syncevolution
</pre>
=== NextCloud synchronizing ===
We will be synchronizing the calendar and such using local '''maemo-events''', '''maemo-notes''' and '''maemo-tasks''' backends using the '''caldav''' backend.
For contacts, we will synchronize '''evolution-contacts''' using '''carddav'''.
A few URLs are required, first, the '''main Nextcloud DAV url''', this will appear like:
<pre>https://my.nextcloud.org/remote.php/dav</pre>
then there is the '''url for a specific calendar''', this is called the "Private Link" and you can get it by clicking "Copy Private Link" for a given calendar in Nextcloud, this might look like so:
<pre>
https://my.nextcloud.org/remote.php/dav/calendars/userhere/calendarnamehere/
</pre>
Finally, for your address book (contacts) synchronization, the '''contacts URL''' is needed (in Nextcloud, go to contacts, settings, "Copy Link" for your contacts):
<pre>
https://my.nextcloud.org/remote.php/dav/addressbooks/users/userhere/contacts/
</pre>
Given the above, a setup to synchronize calendar, tasks, notes and contacts could look like this:
<pre>
syncevolution --configure \
--template webdav \
username=NEXTCLOUD-USER-HERE \
password=NEXTCLOUD-PASS-HERE \
syncURL=MAIN-DAV-URL-HERE \
target-config@nextcloud
syncevolution --configure \
--template webdav \
database=CALENDAR-URL-HERE \
backend=caldavtodo \
target-config@nextcloud nextcloudtodo
syncevolution --configure \
--template webdav \
database=CALENDAR-URL-HERE \
backend=caldavjournal \
target-config@nextcloud nextcloudjournal
syncevolution --configure \
--template webdav \
database=CALENDAR-URL-HERE \
backend=caldav \
target-config@nextcloud nextcloudcal
syncevolution --configure \
--template webdav \
database=CONTACTS-URL-HERE \
backend=carddav \
target-config@nextcloud contacts
syncevolution --configure \
--template SyncEvolution_Client \
sync=none \
syncURL=local://@nextcloud \
username= \
password= \
nextcloud
syncevolution --configure \
sync=two-way \
backend=maemo-tasks \
database= \
nextcloud nextcloudtodo
syncevolution --configure \
sync=two-way \
backend=maemo-notes\
database= \
nextcloud nextcloudjournal
syncevolution --configure \
sync=two-way \
backend=maemo-events \
database= \
nextcloud nextcloudcal
syncevolution --configure \
sync=two-way \
backend=evolution-contacts \
nextcloud contacts
</pre>
All of the above is configuration that only needs to be done once.
Depending on your exact situation, your initial synchronisation could only use only values from your phone, from your nextcloud, or both. If you want to merge both, my understanding is that the '''slow''' method achieves this:
<pre>
syncevolution --sync slow nextcloud nextcloudjournal
syncevolution --sync slow nextcloud nextcloudtodo
syncevolution --sync slow nextcloud nextcloudcal
syncevolution --sync slow nextcloud contacts
</pre>
Use the '''two-way''' synchronization method for '''normal synchronization''' (daily, hourly, etc synchronizations), like so:
<pre>
syncevolution --sync two-way nextcloud nextcloudjournal
syncevolution --sync two-way nextcloud nextcloudtodo
syncevolution --sync two-way nextcloud nextcloudcal
syncevolution --sync two-way nextcloud contacts
</pre>
==== Warning: TLS Chain validation issues ====
If you run into problems with TLS Chain validation, first try to figure out if the problem is on your end. Syncevolution did have a problem for me validation the chain of my next cloud instance, so for testing purposes I set '''SSLVerifyServer = 0''' in '''/home/user/.config/syncevolution/nextcloud/peers/target-config/config.ini'''
== Radicale synchronising ==
Radicale is a simple CardDAV and CalDAV server, and is set up similarly to nextcloud. Just browse to the Radicale web URL, and use the following URLs:
# The main DAV url is simple the URL to your radicale server (without the .web part)
# The calendar URL is simply the http(s) URL to the calendar that you want to synchronize
# The contacts URL is simple the http(s) URL of the addressbook that you want to synchronize
The username (and optional password) are the radicale credentials.
=== Radicale Testing Server ===
For testing purposes, here is how to quickly run a radicale server, this assumed it's installed.
<pre>
mkdir -p ~/radicale
cd ~/radicale
python3 -m radicale --config "" --storage-filesystem-folder `pwd` -H localhost:5223 --logging-level info
</pre>
Now browse to http://localhost:5223, create an account (password is optional), and you should be able to synchronize, assuming the devices can reach your radicale server (don't have it listen on localhost only, perhaps use 0.0.0.0:5223 for LAN testing)
= Files synchronization =
This section ought to discuss software that can be used for this purpose, e.g. syncthing, nextcloud, ...
Parazyd started on a GUI for nextcloud file synchronisation, here: https://github.com/maemo-leste-extras/nextcloud-sync
= Known Issues =
* Synchronizing calendar to radicale gives errors if there are unnamed calendar events.
* Synchronizing contacts to radicale gives errors if there are contacts without Firstname or Lastname.
9ddc57ab0e90c11977155bc9054e2c9c542309c3
1408
1407
2022-10-10T10:38:58Z
Wizzup
4
wikitext
text/x-wiki
This page explains and suggests various ways of synchronizing contacts, calendars and files.
= Calendar, Notes, Tasks and Contacts =
Synchronizing calendar, notes and tasks (using CalDav) and contacts (using CardDav) can be done using syncevolution (other [https://syncevolution.org/documentation/backends/ backends are available], but not currently documented here). A frontend to running synchronization tasks is available in the repository (Syncevolution Frontend).
== GUI ==
The "Syncevolution Frontend" application is a graphical interface to syncevolution. While the interface can technically help you set up the synchronisation configuration through the graphical interface, we haven't tried it and do not have instructions for it at the moment. We only use it for scheduling and running synchronisations - the configuration still has to be done using the console, currently.
(Contributions welcome)
<gallery widths=320px heights=173px>
File:syncevolution.png|main syncevolution screen
File:syncevolution-2.png|syncevolution for a specific sync target
</gallery>
== Synchronizing with syncevolution CalDav + CardDav ==
If you get stuck in an odd state setting this up, you could consider running the following to get to a clean state, at least with regards to syncevolution configuration:
<pre>
rm -rf /home/user/.config/syncevolution
</pre>
=== NextCloud synchronizing ===
We will be synchronizing the calendar and such using local '''maemo-events''', '''maemo-notes''' and '''maemo-tasks''' backends using the '''caldav''' backend.
For contacts, we will synchronize '''evolution-contacts''' using '''carddav'''.
A few URLs are required, first, the '''main Nextcloud DAV url''', this will appear like:
<pre>https://my.nextcloud.org/remote.php/dav</pre>
then there is the '''url for a specific calendar''', this is called the "Private Link" and you can get it by clicking "Copy Private Link" for a given calendar in Nextcloud, this might look like so:
<pre>
https://my.nextcloud.org/remote.php/dav/calendars/userhere/calendarnamehere/
</pre>
Finally, for your address book (contacts) synchronization, the '''contacts URL''' is needed (in Nextcloud, go to contacts, settings, "Copy Link" for your contacts):
<pre>
https://my.nextcloud.org/remote.php/dav/addressbooks/users/userhere/contacts/
</pre>
Given the above, a setup to synchronize calendar, tasks, notes and contacts could look like this:
<pre>
syncevolution --configure \
--template webdav \
username=NEXTCLOUD-USER-HERE \
password=NEXTCLOUD-PASS-HERE \
syncURL=MAIN-DAV-URL-HERE \
target-config@nextcloud
syncevolution --configure \
--template webdav \
database=CALENDAR-URL-HERE \
backend=caldavtodo \
target-config@nextcloud nextcloudtodo
syncevolution --configure \
--template webdav \
database=CALENDAR-URL-HERE \
backend=caldavjournal \
target-config@nextcloud nextcloudjournal
syncevolution --configure \
--template webdav \
database=CALENDAR-URL-HERE \
backend=caldav \
target-config@nextcloud nextcloudcal
syncevolution --configure \
--template webdav \
database=CONTACTS-URL-HERE \
backend=carddav \
target-config@nextcloud contacts
syncevolution --configure \
--template SyncEvolution_Client \
sync=none \
syncURL=local://@nextcloud \
username= \
password= \
nextcloud
syncevolution --configure \
sync=two-way \
backend=maemo-tasks \
database= \
nextcloud nextcloudtodo
syncevolution --configure \
sync=two-way \
backend=maemo-notes\
database= \
nextcloud nextcloudjournal
syncevolution --configure \
sync=two-way \
backend=maemo-events \
database= \
nextcloud nextcloudcal
syncevolution --configure \
sync=two-way \
backend=evolution-contacts \
nextcloud contacts
</pre>
All of the above is configuration that only needs to be done once.
Depending on your exact situation, your initial synchronisation could only use only values from your phone, from your nextcloud, or both. If you want to merge both, my understanding is that the '''slow''' method achieves this:
<pre>
syncevolution --sync slow nextcloud nextcloudjournal
syncevolution --sync slow nextcloud nextcloudtodo
syncevolution --sync slow nextcloud nextcloudcal
syncevolution --sync slow nextcloud contacts
</pre>
Use the '''two-way''' synchronization method for '''normal synchronization''' (daily, hourly, etc synchronizations), like so:
<pre>
syncevolution --sync two-way nextcloud nextcloudjournal
syncevolution --sync two-way nextcloud nextcloudtodo
syncevolution --sync two-way nextcloud nextcloudcal
syncevolution --sync two-way nextcloud contacts
</pre>
==== Warning: TLS Chain validation issues ====
If you run into problems with TLS Chain validation, first try to figure out if the problem is on your end. Syncevolution did have a problem for me validation the chain of my next cloud instance, so for testing purposes I set '''SSLVerifyServer = 0''' in '''/home/user/.config/syncevolution/nextcloud/peers/target-config/config.ini'''
== Radicale synchronising ==
Radicale is a simple CardDAV and CalDAV server, and is set up similarly to nextcloud. Just browse to the Radicale web URL, and use the following URLs:
# The main DAV url is simple the URL to your radicale server (without the .web part)
# The calendar URL is simply the http(s) URL to the calendar that you want to synchronize
# The contacts URL is simple the http(s) URL of the addressbook that you want to synchronize
The username (and optional password) are the radicale credentials.
=== Radicale Testing Server ===
For testing purposes, here is how to quickly run a radicale server, this assumed it's installed.
<pre>
mkdir -p ~/radicale
cd ~/radicale
python3 -m radicale --config "" --storage-filesystem-folder `pwd` -H localhost:5223 --logging-level info
</pre>
Now browse to http://localhost:5223, create an account (password is optional), and you should be able to synchronize, assuming the devices can reach your radicale server (don't have it listen on localhost only, perhaps use 0.0.0.0:5223 for LAN testing)
= Files synchronization =
This section ought to discuss software that can be used for this purpose, e.g. syncthing, nextcloud, ...
Parazyd started on a GUI for nextcloud file synchronisation, here: https://github.com/maemo-leste-extras/nextcloud-sync
= Known Issues =
* Synchronizing calendar to radicale gives errors if there are unnamed calendar events.
* Synchronizing contacts to radicale gives errors if there are contacts without Firstname or Lastname.
= Further reading =
The "old" Maemo page on synchronisation might prove fruitful for those wanting to port over more: https://wiki.maemo.org/Sync
cb7f4beb008393c7a288e9bea4714df11193985f
1409
1408
2022-10-10T10:39:21Z
Wizzup
4
/* NextCloud synchronizing */
wikitext
text/x-wiki
This page explains and suggests various ways of synchronizing contacts, calendars and files.
= Calendar, Notes, Tasks and Contacts =
Synchronizing calendar, notes and tasks (using CalDav) and contacts (using CardDav) can be done using syncevolution (other [https://syncevolution.org/documentation/backends/ backends are available], but not currently documented here). A frontend to running synchronization tasks is available in the repository (Syncevolution Frontend).
== GUI ==
The "Syncevolution Frontend" application is a graphical interface to syncevolution. While the interface can technically help you set up the synchronisation configuration through the graphical interface, we haven't tried it and do not have instructions for it at the moment. We only use it for scheduling and running synchronisations - the configuration still has to be done using the console, currently.
(Contributions welcome)
<gallery widths=320px heights=173px>
File:syncevolution.png|main syncevolution screen
File:syncevolution-2.png|syncevolution for a specific sync target
</gallery>
== Synchronizing with syncevolution CalDav + CardDav ==
If you get stuck in an odd state setting this up, you could consider running the following to get to a clean state, at least with regards to syncevolution configuration:
<pre>
rm -rf /home/user/.config/syncevolution
</pre>
=== NextCloud synchronizing ===
We will be synchronizing the calendar and such using local '''maemo-events''', '''maemo-notes''' and '''maemo-tasks''' backends using the '''caldav''' backend.
For contacts, we will synchronize '''evolution-contacts''' using '''carddav'''.
A few URLs are required, first, the '''main Nextcloud DAV url''', this will appear like:
<pre>https://my.nextcloud.org/remote.php/dav</pre>
then there is the '''url for a specific calendar''', this is called the "Private Link" and you can get it by clicking "Copy Private Link" for a given calendar in Nextcloud, this might look like so:
<pre>
https://my.nextcloud.org/remote.php/dav/calendars/userhere/calendarnamehere/
</pre>
Finally, for your address book (contacts) synchronization, the '''contacts URL''' is needed (in Nextcloud, go to contacts, settings, "Copy Link" for your contacts):
<pre>
https://my.nextcloud.org/remote.php/dav/addressbooks/users/userhere/contacts/
</pre>
Given the above, a setup to synchronize calendar, tasks, notes and contacts could look like this:
<pre>
syncevolution --configure \
--template webdav \
username=NEXTCLOUD-USER-HERE \
password=NEXTCLOUD-PASS-HERE \
syncURL=MAIN-DAV-URL-HERE \
target-config@nextcloud
syncevolution --configure \
--template webdav \
database=CALENDAR-URL-HERE \
backend=caldavtodo \
target-config@nextcloud nextcloudtodo
syncevolution --configure \
--template webdav \
database=CALENDAR-URL-HERE \
backend=caldavjournal \
target-config@nextcloud nextcloudjournal
syncevolution --configure \
--template webdav \
database=CALENDAR-URL-HERE \
backend=caldav \
target-config@nextcloud nextcloudcal
syncevolution --configure \
--template webdav \
database=CONTACTS-URL-HERE \
backend=carddav \
target-config@nextcloud contacts
syncevolution --configure \
--template SyncEvolution_Client \
sync=none \
syncURL=local://@nextcloud \
username= \
password= \
nextcloud
syncevolution --configure \
sync=two-way \
backend=maemo-tasks \
database= \
nextcloud nextcloudtodo
syncevolution --configure \
sync=two-way \
backend=maemo-notes\
database= \
nextcloud nextcloudjournal
syncevolution --configure \
sync=two-way \
backend=maemo-events \
database= \
nextcloud nextcloudcal
syncevolution --configure \
sync=two-way \
backend=evolution-contacts \
nextcloud contacts
</pre>
All of the above is configuration that only needs to be done once.
Depending on your exact situation, your initial synchronisation could only use only values from your phone, from your nextcloud, or both. If you want to merge both, my understanding is that the '''slow''' method achieves this:
<pre>
syncevolution --sync slow nextcloud nextcloudjournal
syncevolution --sync slow nextcloud nextcloudtodo
syncevolution --sync slow nextcloud nextcloudcal
syncevolution --sync slow nextcloud contacts
</pre>
Use the '''two-way''' synchronization method for '''normal synchronization''' (daily, hourly, etc synchronizations), like so:
<pre>
syncevolution --sync two-way nextcloud nextcloudjournal
syncevolution --sync two-way nextcloud nextcloudtodo
syncevolution --sync two-way nextcloud nextcloudcal
syncevolution --sync two-way nextcloud contacts
</pre>
==== Warning: TLS Chain validation issues ====
If you run into problems with TLS Chain validation, first try to figure out if the problem is on your end. Syncevolution did have a problem for me validation the chain of my next cloud instance, so for testing purposes I set '''SSLVerifyServer = 0''' in '''/home/user/.config/syncevolution/nextcloud/peers/target-config/config.ini'''
== Radicale synchronising ==
Radicale is a simple CardDAV and CalDAV server, and is set up similarly to nextcloud. Just browse to the Radicale web URL, and use the following URLs:
# The main DAV url is simple the URL to your radicale server (without the .web part)
# The calendar URL is simply the http(s) URL to the calendar that you want to synchronize
# The contacts URL is simple the http(s) URL of the addressbook that you want to synchronize
The username (and optional password) are the radicale credentials.
=== Radicale Testing Server ===
For testing purposes, here is how to quickly run a radicale server, this assumed it's installed.
<pre>
mkdir -p ~/radicale
cd ~/radicale
python3 -m radicale --config "" --storage-filesystem-folder `pwd` -H localhost:5223 --logging-level info
</pre>
Now browse to http://localhost:5223, create an account (password is optional), and you should be able to synchronize, assuming the devices can reach your radicale server (don't have it listen on localhost only, perhaps use 0.0.0.0:5223 for LAN testing)
= Files synchronization =
This section ought to discuss software that can be used for this purpose, e.g. syncthing, nextcloud, ...
Parazyd started on a GUI for nextcloud file synchronisation, here: https://github.com/maemo-leste-extras/nextcloud-sync
= Known Issues =
* Synchronizing calendar to radicale gives errors if there are unnamed calendar events.
* Synchronizing contacts to radicale gives errors if there are contacts without Firstname or Lastname.
= Further reading =
The "old" Maemo page on synchronisation might prove fruitful for those wanting to port over more: https://wiki.maemo.org/Sync
3451b705be3a8d626f36239d135b60888a8f3cf2
1411
1409
2022-10-10T10:44:45Z
Wizzup
4
wikitext
text/x-wiki
This page explains and suggests various ways of synchronizing contacts, calendars and files.
= Calendar, Notes, Tasks and Contacts =
Synchronizing calendar, notes and tasks (using CalDav) and contacts (using CardDav) can be done using syncevolution (other [https://syncevolution.org/documentation/backends/ backends are available], but not currently documented here). A frontend to running synchronization tasks is available in the repository (Syncevolution Frontend).
== GUI ==
The "Syncevolution Frontend" application is a graphical interface to syncevolution. While the interface can technically help you set up the synchronisation configuration through the graphical interface, we haven't tried it and do not have instructions for it at the moment. We only use it for scheduling and running synchronisations - the configuration still has to be done using the console, currently.
(Contributions welcome)
<gallery widths=320px heights=173px>
File:syncevolution.png|main syncevolution screen
File:syncevolution-2.png|syncevolution for a specific sync target
</gallery>
== Synchronizing with syncevolution CalDav + CardDav ==
First, install syncevolution using '''sudo apt-get install syncevolution'''.
If you get stuck in an odd state setting this up, you could consider running the following to get to a clean state, at least with regards to syncevolution configuration:
<pre>
rm -rf /home/user/.config/syncevolution
</pre>
=== NextCloud synchronizing ===
We will be synchronizing the calendar and such using local '''maemo-events''', '''maemo-notes''' and '''maemo-tasks''' backends using the '''caldav''' backend.
For contacts, we will synchronize '''evolution-contacts''' using '''carddav'''.
A few URLs are required, first, the '''main Nextcloud DAV url''', this will appear like:
<pre>https://my.nextcloud.org/remote.php/dav</pre>
then there is the '''url for a specific calendar''', this is called the "Private Link" and you can get it by clicking "Copy Private Link" for a given calendar in Nextcloud, this might look like so:
<pre>
https://my.nextcloud.org/remote.php/dav/calendars/userhere/calendarnamehere/
</pre>
Finally, for your address book (contacts) synchronization, the '''contacts URL''' is needed (in Nextcloud, go to contacts, settings, "Copy Link" for your contacts):
<pre>
https://my.nextcloud.org/remote.php/dav/addressbooks/users/userhere/contacts/
</pre>
Given the above, a setup to synchronize calendar, tasks, notes and contacts could look like this:
<pre>
syncevolution --configure \
--template webdav \
username=NEXTCLOUD-USER-HERE \
password=NEXTCLOUD-PASS-HERE \
syncURL=MAIN-DAV-URL-HERE \
target-config@nextcloud
syncevolution --configure \
--template webdav \
database=CALENDAR-URL-HERE \
backend=caldavtodo \
target-config@nextcloud nextcloudtodo
syncevolution --configure \
--template webdav \
database=CALENDAR-URL-HERE \
backend=caldavjournal \
target-config@nextcloud nextcloudjournal
syncevolution --configure \
--template webdav \
database=CALENDAR-URL-HERE \
backend=caldav \
target-config@nextcloud nextcloudcal
syncevolution --configure \
--template webdav \
database=CONTACTS-URL-HERE \
backend=carddav \
target-config@nextcloud contacts
syncevolution --configure \
--template SyncEvolution_Client \
sync=none \
syncURL=local://@nextcloud \
username= \
password= \
nextcloud
syncevolution --configure \
sync=two-way \
backend=maemo-tasks \
database= \
nextcloud nextcloudtodo
syncevolution --configure \
sync=two-way \
backend=maemo-notes\
database= \
nextcloud nextcloudjournal
syncevolution --configure \
sync=two-way \
backend=maemo-events \
database= \
nextcloud nextcloudcal
syncevolution --configure \
sync=two-way \
backend=evolution-contacts \
nextcloud contacts
</pre>
All of the above is configuration that only needs to be done once.
Depending on your exact situation, your initial synchronisation could only use only values from your phone, from your nextcloud, or both. If you want to merge both, my understanding is that the '''slow''' method achieves this:
<pre>
syncevolution --sync slow nextcloud nextcloudjournal
syncevolution --sync slow nextcloud nextcloudtodo
syncevolution --sync slow nextcloud nextcloudcal
syncevolution --sync slow nextcloud contacts
</pre>
Use the '''two-way''' synchronization method for '''normal synchronization''' (daily, hourly, etc synchronizations), like so:
<pre>
syncevolution --sync two-way nextcloud nextcloudjournal
syncevolution --sync two-way nextcloud nextcloudtodo
syncevolution --sync two-way nextcloud nextcloudcal
syncevolution --sync two-way nextcloud contacts
</pre>
==== Warning: TLS Chain validation issues ====
If you run into problems with TLS Chain validation, first try to figure out if the problem is on your end. Syncevolution did have a problem for me validation the chain of my next cloud instance, so for testing purposes I set '''SSLVerifyServer = 0''' in '''/home/user/.config/syncevolution/nextcloud/peers/target-config/config.ini'''
== Radicale synchronising ==
Radicale is a simple CardDAV and CalDAV server, and is set up similarly to nextcloud. Just browse to the Radicale web URL, and use the following URLs:
# The main DAV url is simple the URL to your radicale server (without the .web part)
# The calendar URL is simply the http(s) URL to the calendar that you want to synchronize
# The contacts URL is simple the http(s) URL of the addressbook that you want to synchronize
The username (and optional password) are the radicale credentials.
=== Radicale Testing Server ===
For testing purposes, here is how to quickly run a radicale server, this assumed it's installed.
<pre>
mkdir -p ~/radicale
cd ~/radicale
python3 -m radicale --config "" --storage-filesystem-folder `pwd` -H localhost:5223 --logging-level info
</pre>
Now browse to http://localhost:5223, create an account (password is optional), and you should be able to synchronize, assuming the devices can reach your radicale server (don't have it listen on localhost only, perhaps use 0.0.0.0:5223 for LAN testing)
= Files synchronization =
This section ought to discuss software that can be used for this purpose, e.g. syncthing, nextcloud, ...
Parazyd started on a GUI for nextcloud file synchronisation, here: https://github.com/maemo-leste-extras/nextcloud-sync
= Known Issues =
* Synchronizing calendar to radicale gives errors if there are unnamed calendar events.
* Synchronizing contacts to radicale gives errors if there are contacts without Firstname or Lastname.
= Further reading =
The "old" Maemo page on synchronisation might prove fruitful for those wanting to port over more: https://wiki.maemo.org/Sync
cb99ec0ae89c2c5c0885e73e7d07c38d68971c7d
File:Syncevolution.png
6
202
1402
2022-10-10T10:26:36Z
Wizzup
4
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Syncevolution-2.png
6
203
1403
2022-10-10T10:26:48Z
Wizzup
4
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Contacts
0
200
1406
1392
2022-10-10T10:31:18Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Package
|image=
|status=Working
|devices=all
|date_in_repo=
|maemo_leste_repo=https://github.com/maemo-leste/osso-addressbook
|category=Office
|packager=[[User:Wizzup]]
}}
= Contacts =
Data is stored EDS, file is /home/user/.local/share/evolution/addressbook/system/contacts.db - in SQLite3 format.
TODO: Cover features, including import/export, online awareness/presence, telepathy
e4e134a8da557dd0233e8d6040127107c47c2ff4
1410
1406
2022-10-10T10:43:33Z
Wizzup
4
wikitext
text/x-wiki
{{Infobox Package
|image=
|status=Working
|devices=all
|date_in_repo=
|maemo_leste_repo=https://github.com/maemo-leste/osso-addressbook
|category=Office
|packager=[[User:Wizzup]]
}}
= Addressbook application =
The '''osso-addressbook''' application is the main interface to the Maemo contacts database, which in turn stores its contacts in the so called "Evolution Data Server" (EDS). The Maemo contacts are stored in a sqlite3 database located at '''/home/user/.local/share/evolution/addressbook/system/contacts.db''', but this database is managed by EDS and it's best to interface with EDS directly.
TODO: Cover features, including import/export, online awareness/presence, telepathy
== Telepathy integration ==
The address book also integrates directly with any messaging and telephone accounts that are set up, for example, if a jabber/XMPP account is online, the contacts of that account will be shown in the address book, as well as the online status of the contact.
= Synchronisation =
Check out the [[Sync]] page on how to synchronise your contacts.
3a9402dc509cfef275c5411ab89deacadcb37f76
File:Advertizing-in-nurdspace.jpg
6
204
1412
2022-10-10T11:52:21Z
BuZz
32
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Propaganda
0
136
1413
1127
2022-10-10T12:00:31Z
BuZz
32
wikitext
text/x-wiki
Place all memes of Maemo Leste you find here.
== Propaganda ==
[[File:Dont-slave.jpg|200px]]
[[File:Great-war.jpg|200px]]
[[File:Join-leste.jpg|200px]]
[[File:Privacy-and-more.png|200px]]
[[File:Refuse-duopoly.jpg|200px]]
== Memes ==
[[File:Os-addicts.jpg|200px]]
== Various ==
[[File:MaemoSealeste.jpg|200px]]
[[File:Advertizing-in-nurdspace.jpg|200px]]
fbf3f96b4d40534b25f7de0820acf4b05195f7d5
1415
1413
2022-10-10T16:39:47Z
BuZz
32
wikitext
text/x-wiki
Place all memes of Maemo Leste you find here.
== Propaganda ==
[[File:Dont-slave.jpg|200px]]
[[File:Great-war.jpg|200px]]
[[File:Join-leste.jpg|200px]]
[[File:Privacy-and-more.png|200px]]
[[File:Refuse-duopoly.jpg|200px]]
== Memes ==
[[File:Os-addicts.jpg|200px]]
== Various ==
[[File:MaemoSealeste.jpg|200px]]
[[File:Advertizing-in-nurdspace.jpg|200px]]
[[Maemo-raised-bar.png]]
958ebc9400a57cd324a90f30c94915988859d2a8
1416
1415
2022-10-10T16:40:02Z
BuZz
32
wikitext
text/x-wiki
Place all memes of Maemo Leste you find here.
== Propaganda ==
[[File:Dont-slave.jpg|200px]]
[[File:Great-war.jpg|200px]]
[[File:Join-leste.jpg|200px]]
[[File:Privacy-and-more.png|200px]]
[[File:Refuse-duopoly.jpg|200px]]
== Memes ==
[[File:Os-addicts.jpg|200px]]
== Various ==
[[File:MaemoSealeste.jpg|200px]]
[[File:Advertizing-in-nurdspace.jpg|200px]]
[[File:Maemo-raised-bar.png|200px]]
bdf9b1be15f5eca703de565b0adaf4de46824e77
File:Maemo-raised-bar.png
6
205
1414
2022-10-10T16:39:28Z
BuZz
32
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Virtual Machine
0
60
1417
1180
2022-10-15T16:22:19Z
Flok
58
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Generic
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
Generic virtual machine target. This is particularly useful when doing development and testing.
== Installation ==
https://maedevu.maemo.org/images/virtual-machines/
There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration.
Converting the qcow2 image to raw allows it to be used on real hardware.
=== VirtualBox ===
Download latest .vdi.xz image, unpack it with "xz -d" command.
Create new Virtual Machine, select "Debian (64-bit)" and 1024MB RAM. Use the downloaded file as virtual hard disk.
You are done!
=== QEMU ===
In general something like:
qemu-system-x86_64 -hda maemo-leste-1.0-amd64.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024
should work. But there seem to be issues with some QEMU versions, for more details see [https://github.com/maemo-leste/bugtracker/issues/198 issue#198].
To set up a port forward for SSH, add:
-nic user,hostfwd=tcp:127.0.0.1:7722-:22
And then log in like this (password: <code>toor</code>):
ssh root@localhost -p 7722
If the mouse pointer is grabbed and no cursor shows, you can add:
-usb -device usb-tablet
to the command line. Alternatively if that dose not work you can instead add:
-usb -device usb-mouse -machine vmport=off
If you have a USB modem you can also use that in QEMU. You can either use sudo to elevate your privileges to be able to use it:
sudo qemu-system-x86_64 -hda maemo-leste-1.0-amd64-virtual-20200324.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024 \
-nic user,hostfwd=tcp:127.0.0.1:7722-:22 \
-usb -device usb-ehci,id=ehci \
-device usb-host,bus=ehci.0,vendorid=0x0bdb,productid=0x193e
Or you can make a udev rule for your device. For example, with a Lenovo Ericsson N5321 gw you can create "/etc/udev/rules.d/45-n5321.rules" with this in it:
# Lenovo Ericsson N5321 gw simple udev rule
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="193e", \
MODE:="0666"
And then activate it by running these two commands as root:
# udevadm control --reload-rules
# udevadm trigger
Now you can run QEMU without the need for sudo!
=== virt-manager ===
Virt-manager can use multiple virtualisation backends via libvirt and its default is QEMU/KVM, allowing easy importing of the QEMU image.
The following tweaks need to be done when importing (before starting the instance) to ensure the qemu image works correctly.
* Change the disk driver from VirtIO to sata; there is an [https://github.com/maemo-leste/bugtracker/issues/291 outstanding bug] with how drives are mounted.
* In some situations changing from QVA to VGA may be required (see [https://github.com/maemo-leste/bugtracker/issues/291 the previously linked] issue.
* Make sure you have a USB (not ps/2) mouse configured
== Initial configuration ==
On the first run you may want to generate ssh host keys and set the timezone. To do so open the "X Terminal" application and run:
sudo -i
dpkg-reconfigure openssh-server
dpkg-reconfigure tzdata
Make the system up-to-date:
apt update
apt upgrade
apt install linux-image-amd64
reboot
To get networking to work (at least in virtualbox), launch a shell and do
sudo ifconfig eth0 up
sudo dhclient eth0
A fresh Maemo VM image will also lock the device screen by default. In Qemu this means the only way to gain access to the VM again is either via SSH or by sending the power button command. This happens after 30 seconds of no activity on the device. We recommend disabling this behaviour by going to the settings and then open the "display" applet - uncheck "Lock screen automatically".
== Connectivity ==
If you have a modem exposed to QEMU, you still need to do some steps manually to get connectivity.
First off you need to add the development APT repository to your APT sources:
# echo 'deb https://maedevu.maemo.org/leste beowulf-devel main contrib non-free' >> /etc/apt/sources.list
Now update and upgrade:
# apt update && apt upgrade
Then you can install these things:
# apt install ofono libicd-network-ofono connui-iapsettings-gprs connui-statusbar-cellular connui-home-cellular connui-cellular-settings connui-conndlgs-cellular
We need mdbus2 to manipulate oFono:
# wget http://ftp.nl.debian.org/debian/pool/main/m/mdbus/mdbus2_2.3.3-2_amd64.deb
# dpkg -i mdbus2_2.3.3-2_amd64.deb
Then we can check if oFono finds our modem:
# mdbus2 -s org.ofono
/
/bluetooth
/bluetooth/profile
/bluetooth/profile/dun_gw
/bluetooth/profile/hfp_ag
/bluetooth/profile/hfp_hf
/mbm_0
Then can check our mbm_0 modem:
# mdbus2 -s org.ofono /mbm_0
[METHOD] org.freedesktop.DBus.Introspectable.Introspect() -> (s:xml)
[METHOD] org.ofono.Modem.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.Modem.SetProperty(s:property, v:value) -> ()
[SIGNAL] org.ofono.Modem.PropertyChanged(s:name, v:value)
# mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.GetProperties
({'Online': <false>, 'Powered': <false>, 'Lockdown': <false>, 'Emergency': <false>, 'SystemPath': <'/sys/devices/pci0000:00/0000:00:04.0/usb1/1-1'>, 'Interfaces': <@as []>, 'Features': <@as []>, 'Type': <'hardware'>},)
Power on the modem:
# mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.SetProperty Powered true
()
# mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.GetProperties
({'Online': <false>, 'Powered': <true>, 'Lockdown': <false>, 'Emergency': <false>, 'Manufacturer': <'Lenovo'>, 'Model': <'N5321 gw'>, 'Revision': <'R3C11'>, 'Serial': <'xxxxxxxxxxxx'>, 'SystemPath': <'/sys/devices/pci0000:00/0000:00:04.0/usb1/1-1'>, 'Interfaces': <['org.ofono.SimManager']>, 'Features': <['sim']>, 'Type': <'hardware'>},)
Check if we need to enter a pin:
# mdbus2 -s org.ofono /mbm_0 org.ofono.SimManager.GetProperties
({'Present': <true>, 'CardIdentifier': <'xxxxxx'>, 'FixedDialing': <false>, 'BarredDialing': <false>, 'SubscriberNumbers': <@as []>, 'LockedPins': <['pin']>, 'PreferredLanguages': <['de', 'en', 'fr']>, 'PinRequired': <'pin'>, 'Retries': <{'pin': byte 0x03, 'pin2': 0x03, 'puk': 0x0a, 'puk2': 0x0a}>, 'CardSlotCount': <uint32 1>, 'ActiveCardSlot': <uint32 1>},)
If PinRequired is 'pin' we need to enter a pin to unlock the sim:
# mdbus2 -s org.ofono /mbm_0 org.ofono.SimManager.EnterPin pin 1234
()
Then we can bring the modem online:
# mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.SetProperty Online true
()
If we now redo the first mdbus2 command on /mbm_0:
# mdbus2 -s org.ofono /mbm_0
[METHOD] org.freedesktop.DBus.Introspectable.Introspect() -> (s:xml)
[METHOD] org.ofono.Modem.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.Modem.SetProperty(s:property, v:value) -> ()
[SIGNAL] org.ofono.Modem.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.SimManager.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.SimManager.SetProperty(s:property, v:value) -> ()
[METHOD] org.ofono.SimManager.ChangePin(s:type, s:oldpin, s:newpin) -> ()
[METHOD] org.ofono.SimManager.EnterPin(s:type, s:pin) -> ()
[METHOD] org.ofono.SimManager.ResetPin(s:type, s:puk, s:newpin) -> ()
[METHOD] org.ofono.SimManager.LockPin(s:type, s:pin) -> ()
[METHOD] org.ofono.SimManager.UnlockPin(s:type, s:pin) -> ()
[METHOD] org.ofono.SimManager.GetIcon(y:id) -> (ay:icon)
[SIGNAL] org.ofono.SimManager.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.AllowedAccessPoints.GetAllowedAccessPoints() -> (as:apnlist)
[METHOD] org.ofono.SimAuthentication.GetApplications() -> (a{oa{sv}}:applications)
[METHOD] org.ofono.SimAuthentication.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.SimToolkit.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.SimToolkit.SelectItem(y:item, o:agent) -> ()
[METHOD] org.ofono.SimToolkit.RegisterAgent(o:path) -> ()
[METHOD] org.ofono.SimToolkit.UnregisterAgent(o:path) -> ()
[SIGNAL] org.ofono.SimToolkit.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.RadioSettings.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.RadioSettings.SetProperty(s:property, v:value) -> ()
[SIGNAL] org.ofono.RadioSettings.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.MessageManager.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.MessageManager.SetProperty(s:property, v:value) -> ()
[METHOD] org.ofono.MessageManager.SendMessage(s:to, s:text) -> (o:path)
[METHOD] org.ofono.MessageManager.GetMessages() -> (a(oa{sv}):messages)
[SIGNAL] org.ofono.MessageManager.PropertyChanged(s:name, v:value)
[SIGNAL] org.ofono.MessageManager.IncomingMessage(s:message, a{sv}:info)
[SIGNAL] org.ofono.MessageManager.ImmediateMessage(s:message, a{sv}:info)
[SIGNAL] org.ofono.MessageManager.MessageAdded(o:path, a{sv}:properties)
[SIGNAL] org.ofono.MessageManager.MessageRemoved(o:path)
[METHOD] org.ofono.PushNotification.RegisterAgent(o:path) -> ()
[METHOD] org.ofono.PushNotification.UnregisterAgent(o:path) -> ()
[METHOD] org.ofono.SmartMessaging.RegisterAgent(o:path) -> ()
[METHOD] org.ofono.SmartMessaging.UnregisterAgent(o:path) -> ()
[METHOD] org.ofono.SmartMessaging.SendBusinessCard(s:to, ay:card) -> (o:path)
[METHOD] org.ofono.SmartMessaging.SendAppointment(s:to, ay:appointment) -> (o:path)
[METHOD] org.ofono.LocationReporting.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.LocationReporting.Request() -> (h:fd)
[METHOD] org.ofono.LocationReporting.Release() -> ()
[SIGNAL] org.ofono.LocationReporting.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.SupplementaryServices.Initiate(s:command) -> (s:result_name, v:value)
[METHOD] org.ofono.SupplementaryServices.Respond(s:reply) -> (s:result)
[METHOD] org.ofono.SupplementaryServices.Cancel() -> ()
[METHOD] org.ofono.SupplementaryServices.GetProperties() -> (a{sv}:properties)
[SIGNAL] org.ofono.SupplementaryServices.NotificationReceived(s:message)
[SIGNAL] org.ofono.SupplementaryServices.RequestReceived(s:message)
[SIGNAL] org.ofono.SupplementaryServices.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.CellBroadcast.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.CellBroadcast.SetProperty(s:property, v:value) -> ()
[SIGNAL] org.ofono.CellBroadcast.PropertyChanged(s:property, v:value)
[SIGNAL] org.ofono.CellBroadcast.IncomingBroadcast(s:message, q:channel)
[SIGNAL] org.ofono.CellBroadcast.EmergencyBroadcast(s:message, a{sv}:dict)
[METHOD] org.ofono.ConnectionManager.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.ConnectionManager.SetProperty(s:property, v:value) -> ()
[METHOD] org.ofono.ConnectionManager.AddContext(s:type) -> (o:path)
[METHOD] org.ofono.ConnectionManager.RemoveContext(o:path) -> ()
[METHOD] org.ofono.ConnectionManager.DeactivateAll() -> ()
[METHOD] org.ofono.ConnectionManager.GetContexts() -> (a(oa{sv}):contexts_with_properties)
[METHOD] org.ofono.ConnectionManager.ResetContexts() -> ()
[SIGNAL] org.ofono.ConnectionManager.PropertyChanged(s:name, v:value)
[SIGNAL] org.ofono.ConnectionManager.ContextAdded(o:path, a{sv}:properties)
[SIGNAL] org.ofono.ConnectionManager.ContextRemoved(o:path)
[METHOD] org.ofono.NetworkRegistration.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.NetworkRegistration.Register() -> ()
[METHOD] org.ofono.NetworkRegistration.GetOperators() -> (a(oa{sv}):operators_with_properties)
[METHOD] org.ofono.NetworkRegistration.Scan() -> (a(oa{sv}):operators_with_properties)
[SIGNAL] org.ofono.NetworkRegistration.PropertyChanged(s:name, v:value)
[[Category:Device]]
14c73808a16f026323cabbdca3de771a05cc030d
1418
1417
2022-10-15T16:24:37Z
Flok
58
/* virt-manager */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Generic
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
Generic virtual machine target. This is particularly useful when doing development and testing.
== Installation ==
https://maedevu.maemo.org/images/virtual-machines/
There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration.
Converting the qcow2 image to raw allows it to be used on real hardware.
=== VirtualBox ===
Download latest .vdi.xz image, unpack it with "xz -d" command.
Create new Virtual Machine, select "Debian (64-bit)" and 1024MB RAM. Use the downloaded file as virtual hard disk.
You are done!
=== QEMU ===
In general something like:
qemu-system-x86_64 -hda maemo-leste-1.0-amd64.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024
should work. But there seem to be issues with some QEMU versions, for more details see [https://github.com/maemo-leste/bugtracker/issues/198 issue#198].
To set up a port forward for SSH, add:
-nic user,hostfwd=tcp:127.0.0.1:7722-:22
And then log in like this (password: <code>toor</code>):
ssh root@localhost -p 7722
If the mouse pointer is grabbed and no cursor shows, you can add:
-usb -device usb-tablet
to the command line. Alternatively if that dose not work you can instead add:
-usb -device usb-mouse -machine vmport=off
If you have a USB modem you can also use that in QEMU. You can either use sudo to elevate your privileges to be able to use it:
sudo qemu-system-x86_64 -hda maemo-leste-1.0-amd64-virtual-20200324.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024 \
-nic user,hostfwd=tcp:127.0.0.1:7722-:22 \
-usb -device usb-ehci,id=ehci \
-device usb-host,bus=ehci.0,vendorid=0x0bdb,productid=0x193e
Or you can make a udev rule for your device. For example, with a Lenovo Ericsson N5321 gw you can create "/etc/udev/rules.d/45-n5321.rules" with this in it:
# Lenovo Ericsson N5321 gw simple udev rule
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="193e", \
MODE:="0666"
And then activate it by running these two commands as root:
# udevadm control --reload-rules
# udevadm trigger
Now you can run QEMU without the need for sudo!
=== virt-manager ===
Virt-manager can use multiple virtualisation backends via libvirt and its default is QEMU/KVM, allowing easy importing of the QEMU image.
The following tweaks need to be done when importing (before starting the instance) to ensure the qemu image works correctly.
* Change the disk driver from VirtIO to sata; there is an [https://github.com/maemo-leste/bugtracker/issues/291 outstanding bug] with how drives are mounted.
* In some situations changing from QVA to VGA may be required (see [https://github.com/maemo-leste/bugtracker/issues/291 the previously linked] issue.
* Make sure you have a USB (not ps/2) mouse configured
When the screensaver kicks in, press the virt-manager power button to unlock.
== Initial configuration ==
On the first run you may want to generate ssh host keys and set the timezone. To do so open the "X Terminal" application and run:
sudo -i
dpkg-reconfigure openssh-server
dpkg-reconfigure tzdata
Make the system up-to-date:
apt update
apt upgrade
apt install linux-image-amd64
reboot
To get networking to work (at least in virtualbox), launch a shell and do
sudo ifconfig eth0 up
sudo dhclient eth0
A fresh Maemo VM image will also lock the device screen by default. In Qemu this means the only way to gain access to the VM again is either via SSH or by sending the power button command. This happens after 30 seconds of no activity on the device. We recommend disabling this behaviour by going to the settings and then open the "display" applet - uncheck "Lock screen automatically".
== Connectivity ==
If you have a modem exposed to QEMU, you still need to do some steps manually to get connectivity.
First off you need to add the development APT repository to your APT sources:
# echo 'deb https://maedevu.maemo.org/leste beowulf-devel main contrib non-free' >> /etc/apt/sources.list
Now update and upgrade:
# apt update && apt upgrade
Then you can install these things:
# apt install ofono libicd-network-ofono connui-iapsettings-gprs connui-statusbar-cellular connui-home-cellular connui-cellular-settings connui-conndlgs-cellular
We need mdbus2 to manipulate oFono:
# wget http://ftp.nl.debian.org/debian/pool/main/m/mdbus/mdbus2_2.3.3-2_amd64.deb
# dpkg -i mdbus2_2.3.3-2_amd64.deb
Then we can check if oFono finds our modem:
# mdbus2 -s org.ofono
/
/bluetooth
/bluetooth/profile
/bluetooth/profile/dun_gw
/bluetooth/profile/hfp_ag
/bluetooth/profile/hfp_hf
/mbm_0
Then can check our mbm_0 modem:
# mdbus2 -s org.ofono /mbm_0
[METHOD] org.freedesktop.DBus.Introspectable.Introspect() -> (s:xml)
[METHOD] org.ofono.Modem.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.Modem.SetProperty(s:property, v:value) -> ()
[SIGNAL] org.ofono.Modem.PropertyChanged(s:name, v:value)
# mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.GetProperties
({'Online': <false>, 'Powered': <false>, 'Lockdown': <false>, 'Emergency': <false>, 'SystemPath': <'/sys/devices/pci0000:00/0000:00:04.0/usb1/1-1'>, 'Interfaces': <@as []>, 'Features': <@as []>, 'Type': <'hardware'>},)
Power on the modem:
# mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.SetProperty Powered true
()
# mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.GetProperties
({'Online': <false>, 'Powered': <true>, 'Lockdown': <false>, 'Emergency': <false>, 'Manufacturer': <'Lenovo'>, 'Model': <'N5321 gw'>, 'Revision': <'R3C11'>, 'Serial': <'xxxxxxxxxxxx'>, 'SystemPath': <'/sys/devices/pci0000:00/0000:00:04.0/usb1/1-1'>, 'Interfaces': <['org.ofono.SimManager']>, 'Features': <['sim']>, 'Type': <'hardware'>},)
Check if we need to enter a pin:
# mdbus2 -s org.ofono /mbm_0 org.ofono.SimManager.GetProperties
({'Present': <true>, 'CardIdentifier': <'xxxxxx'>, 'FixedDialing': <false>, 'BarredDialing': <false>, 'SubscriberNumbers': <@as []>, 'LockedPins': <['pin']>, 'PreferredLanguages': <['de', 'en', 'fr']>, 'PinRequired': <'pin'>, 'Retries': <{'pin': byte 0x03, 'pin2': 0x03, 'puk': 0x0a, 'puk2': 0x0a}>, 'CardSlotCount': <uint32 1>, 'ActiveCardSlot': <uint32 1>},)
If PinRequired is 'pin' we need to enter a pin to unlock the sim:
# mdbus2 -s org.ofono /mbm_0 org.ofono.SimManager.EnterPin pin 1234
()
Then we can bring the modem online:
# mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.SetProperty Online true
()
If we now redo the first mdbus2 command on /mbm_0:
# mdbus2 -s org.ofono /mbm_0
[METHOD] org.freedesktop.DBus.Introspectable.Introspect() -> (s:xml)
[METHOD] org.ofono.Modem.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.Modem.SetProperty(s:property, v:value) -> ()
[SIGNAL] org.ofono.Modem.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.SimManager.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.SimManager.SetProperty(s:property, v:value) -> ()
[METHOD] org.ofono.SimManager.ChangePin(s:type, s:oldpin, s:newpin) -> ()
[METHOD] org.ofono.SimManager.EnterPin(s:type, s:pin) -> ()
[METHOD] org.ofono.SimManager.ResetPin(s:type, s:puk, s:newpin) -> ()
[METHOD] org.ofono.SimManager.LockPin(s:type, s:pin) -> ()
[METHOD] org.ofono.SimManager.UnlockPin(s:type, s:pin) -> ()
[METHOD] org.ofono.SimManager.GetIcon(y:id) -> (ay:icon)
[SIGNAL] org.ofono.SimManager.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.AllowedAccessPoints.GetAllowedAccessPoints() -> (as:apnlist)
[METHOD] org.ofono.SimAuthentication.GetApplications() -> (a{oa{sv}}:applications)
[METHOD] org.ofono.SimAuthentication.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.SimToolkit.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.SimToolkit.SelectItem(y:item, o:agent) -> ()
[METHOD] org.ofono.SimToolkit.RegisterAgent(o:path) -> ()
[METHOD] org.ofono.SimToolkit.UnregisterAgent(o:path) -> ()
[SIGNAL] org.ofono.SimToolkit.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.RadioSettings.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.RadioSettings.SetProperty(s:property, v:value) -> ()
[SIGNAL] org.ofono.RadioSettings.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.MessageManager.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.MessageManager.SetProperty(s:property, v:value) -> ()
[METHOD] org.ofono.MessageManager.SendMessage(s:to, s:text) -> (o:path)
[METHOD] org.ofono.MessageManager.GetMessages() -> (a(oa{sv}):messages)
[SIGNAL] org.ofono.MessageManager.PropertyChanged(s:name, v:value)
[SIGNAL] org.ofono.MessageManager.IncomingMessage(s:message, a{sv}:info)
[SIGNAL] org.ofono.MessageManager.ImmediateMessage(s:message, a{sv}:info)
[SIGNAL] org.ofono.MessageManager.MessageAdded(o:path, a{sv}:properties)
[SIGNAL] org.ofono.MessageManager.MessageRemoved(o:path)
[METHOD] org.ofono.PushNotification.RegisterAgent(o:path) -> ()
[METHOD] org.ofono.PushNotification.UnregisterAgent(o:path) -> ()
[METHOD] org.ofono.SmartMessaging.RegisterAgent(o:path) -> ()
[METHOD] org.ofono.SmartMessaging.UnregisterAgent(o:path) -> ()
[METHOD] org.ofono.SmartMessaging.SendBusinessCard(s:to, ay:card) -> (o:path)
[METHOD] org.ofono.SmartMessaging.SendAppointment(s:to, ay:appointment) -> (o:path)
[METHOD] org.ofono.LocationReporting.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.LocationReporting.Request() -> (h:fd)
[METHOD] org.ofono.LocationReporting.Release() -> ()
[SIGNAL] org.ofono.LocationReporting.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.SupplementaryServices.Initiate(s:command) -> (s:result_name, v:value)
[METHOD] org.ofono.SupplementaryServices.Respond(s:reply) -> (s:result)
[METHOD] org.ofono.SupplementaryServices.Cancel() -> ()
[METHOD] org.ofono.SupplementaryServices.GetProperties() -> (a{sv}:properties)
[SIGNAL] org.ofono.SupplementaryServices.NotificationReceived(s:message)
[SIGNAL] org.ofono.SupplementaryServices.RequestReceived(s:message)
[SIGNAL] org.ofono.SupplementaryServices.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.CellBroadcast.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.CellBroadcast.SetProperty(s:property, v:value) -> ()
[SIGNAL] org.ofono.CellBroadcast.PropertyChanged(s:property, v:value)
[SIGNAL] org.ofono.CellBroadcast.IncomingBroadcast(s:message, q:channel)
[SIGNAL] org.ofono.CellBroadcast.EmergencyBroadcast(s:message, a{sv}:dict)
[METHOD] org.ofono.ConnectionManager.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.ConnectionManager.SetProperty(s:property, v:value) -> ()
[METHOD] org.ofono.ConnectionManager.AddContext(s:type) -> (o:path)
[METHOD] org.ofono.ConnectionManager.RemoveContext(o:path) -> ()
[METHOD] org.ofono.ConnectionManager.DeactivateAll() -> ()
[METHOD] org.ofono.ConnectionManager.GetContexts() -> (a(oa{sv}):contexts_with_properties)
[METHOD] org.ofono.ConnectionManager.ResetContexts() -> ()
[SIGNAL] org.ofono.ConnectionManager.PropertyChanged(s:name, v:value)
[SIGNAL] org.ofono.ConnectionManager.ContextAdded(o:path, a{sv}:properties)
[SIGNAL] org.ofono.ConnectionManager.ContextRemoved(o:path)
[METHOD] org.ofono.NetworkRegistration.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.NetworkRegistration.Register() -> ()
[METHOD] org.ofono.NetworkRegistration.GetOperators() -> (a(oa{sv}):operators_with_properties)
[METHOD] org.ofono.NetworkRegistration.Scan() -> (a(oa{sv}):operators_with_properties)
[SIGNAL] org.ofono.NetworkRegistration.PropertyChanged(s:name, v:value)
[[Category:Device]]
35e8f9253f256e60c673d465ef4a73442c8bf0cb
Development/Porting Packages
0
82
1419
755
2022-10-20T20:56:28Z
Norayr
36
/* Porting existing Maemo Fremantle packages */
wikitext
text/x-wiki
= Porting / Creating packages =
If you're looking at creating your own package, or porting software, the first things to do are:
# Check if someone already ported the package (if it in the repository? Is there an issue for it?)
# Check if there already are Debian packaging scripts/files. Debian packages a LOT of software, so it's likely that the software is already in the Maemo repository, or someone at least has build scripts for it.
# (TODO)
= Porting existing Maemo Fremantle packages =
Maemo Fremantle ("Nokia Maemo for the N900") contains a lot of packages that are open source. Most of them should run with very few changes on Maemo Leste, the main changes you will need to make will be:
# Check if someone already ported the package (if it in the repository? Is there an issue for it?)
# Updating of the Debian packaging files/scripts.
# Porting to newer libraries if old libraries are used (OpenSSL 0.9.8 -> OpenSSL 1.1.x, Qt4 -> Qt5, etc)
# Fixing any compile errors/warnings due to more strict compile flags
Source of the packages can be found at one of these places:
* http://maemo.org/packages/
* https://garage.maemo.org/
* http://repository.maemo.org/extras/pool/fremantle/free/source/
= Example =
== Getting the source package ==
Let's say we'd like to port a package "msid".
it's here: <pre>http://repository.maemo.org/extras/pool/fremantle/free/source/m/msid/</pre>
get the latest version:
<pre>
wget http://repository.maemo.org/extras/pool/fremantle/free/source/m/msid/msid_0.4.8-2.tar.gz
</pre>
<pre>
tar zxvf msid_0.4.8-2.tar.gz
cd msid-0.4.8
</pre>
== Creating new repo ==
init a git repo:
<pre>
git init
git add *
git commit -a -m "initial commit from fremantle sources"
</pre>
change content of `debian/compat` to `9`.
edit <pre>debian/changelog</pre>.
let's say the last release was:
<pre>
msid (0.4.8-2) unstable; urgency=low
</pre>
now the release should be:
<pre>
msid (0.4.8-2+leste1) unstable; urgency=low
</pre>
record your changes, add your name.
look if <pre>debian/control</pre> dependency versions should be changed.
== installing build dependencies==
<pre>
sudo apt build-dep .
</pre>
== building ==
<pre>
dpkg-buildpackage -b -uc
</pre>
add <pre>gbp.conf</pre> file in <pre>debian</pre> directory with the following content:
<pre>
[DEFAULT]
upstream-tag=%(version)s
</pre>
in <pre>debian/control</pre> file add (if not added)
<pre>
XSBC-Bugtracker: mailto:yourname@yourserver.am
</pre>
== icon ==
and the icon (this is not necessary if you port existing maemo5 package).
it is done [http://wiki.maemo.org/Maemo_packaging#Displaying_an_icon_in_the_Application_Manager_next_to_your_package|this] way.
you need to have `sharutils` installed. (app-arch/sharutils in gentoo).
* prepare a `48x48` png file.
* base64 encode it
<pre>
uuencode -m maeFat.png maeFat.png > maeFat.png.base64
</pre>
* Add the field <pre>XB-Maemo-Icon-26</pre> to your <pre>debian/control</pre> (in Maemo 4 the size of the icons was 26×26 pixels, hence the name of the field, which has not changed in Maemo 5)
* Open the <pre>base64</pre> version of your image and copy from the line under <pre>begin-base64 644 <name of 48×48 image></pre> to the line above the <pre>===</pre>.
* Add this to the XB-Maemo-Icon-26 field
* Add a space in front of every line of the encoded icon. You can do that automatically using sed when you base64 encode the image:
<pre>
uuencode -m <name of 48×48 image> <name of 48×48 image> | sed -e s,^,\ , > <name of 48×48 image>.base64
</pre>
== cli apps ==
if the program that is being ported is a <code>cli</code> application, then <code>cli icon</code> can be used.
[http://lists.maemo.org/pipermail/maemo-community/2010-January/003870.html cli icon announcement]
[http://n900.tannerlab.com/tools/cli.icon.txt old unexistent in archive.org too, txt file]
[http://samoff.com/random/maemo/cli_icon/ icons as images]
this is how the icon looks in <code>ham</code>:
<span class="image"></span>
and this is the <code>48x48</code> size icon:
<span class="image"></span>
its <code>base64</code> encoded and shifted for <code>maemo</code> <code>text file</code> is [[port_maemo_package_to_leste/maemo-term_icon_v002_a001_48p.png.base64|here]]
or here:
<pre> begin-base64 644 maemo-term_icon_v002_a001_48p.png
iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAGXRFWHRTb2Z0
d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAACYtJREFUeNrUWkurZUcVXvXY
59zbtyXpICEiaFrJQFDo6CDOHAi2UQdOFBw4CAqCDhU0DuIPEBtCRupIBxk4
MBMHgpIMnChE1OAD2uADEkFpUM9z710vv7Wq6ty6u09f0+nb3Tcb6u7Hqb33
96361qq1al/1vscfp+Ac3fjH6+S9v3owP/iYMfqyMaabz2ax62wwtnPDOPgY
ok8pxpQoKKW9UhRC8IFI+UQ4ds7HFKLW1mujffDexRi9MXiGMQG34uborbEO
515pckopZ7RxuN8RyflgtBrxfKeNGlNMY0ppxItGUnowSm3Rr7ezubfdnCwe
SuMw2EsPPvi9x957+SlrNAXvCCTIWkMKvQP6JEYdorQoG6gkUIpo+SgkStyV
SQb0RwOolACOQdBIlAaQ7XGtT4q2lGhDDCjRGsZYg8Qa71sR75WSPe5Z411o
doPfN1rrDs/q8MaVVt5Z5T1dnM++8sEPXHnqXzduxOuv/iVutlsGKeCxJbyE
jxN2uJc3FfkcJzHviBlG5sq/kUq8D4qvyzWKpQ/fzn94H/Mzub88L0hfJc/w
OPc8Ijh3is8xUhqIMZr+woULscMwRmjCwoDdY+959xcXiwX9/KVfRAyV0gYD
xTBVeY2mjJuvAR3+aMrgjPRQKtVzrRSDwE1Kl1uEuBADKCX34g5VzKLk/ihk
lQBl8CKt3IQA5MMEICttPIY5XDw6glSVspv15tGLRxcu/+rl3/D4q9lsJtjl
1WyTA7TxBKRYfjZEO2IMTufRosxdVcoCPvEIQTaBrYlLjuWFH0Z0Y433LC3Y
occ5a3ybz7EvmjdaD9IfvudG57d6G4E12fmse+d6tT76z38XcC6TwcOdEtvj
EGL7jif/fU3x1yaDmWejNuCpEI4ilZT3AFPAwifgA9gPuGMIFAESfqDUBpw2
inWuVNY+6z4l7NkX1ApWgI/QlvuD/qDZoWMEeRskaODBlmJ4oB9HGoYxycCy
1R9OavYtT92nweIRotnn4ZkvBhqfRvc/oM8MUJIQqC00zeemWL/FutRnq8Jp
uam0BtA1yC5x8xLHS7xa9sREEjsy+ogTg4CiASQGpZVDjBMJcTDEEajEeDSM
DjxCHm/s5s96mn0W0ekF3PZ2eSR1n0qk3+/U5koXaQU9G6q6nwCXcMgWF/CF
QAVfQHGESSsmQHTcUiYi0QfH6K8YfF8iGEASnBjagPGgp4SoTdra7tAhEnFc
ZIdVhxD3h3GI1/afgcV/B/pfsnG4plP8pU7q0s76twTPsbyAL3quwKUJUIBa
4HiBvrLHNd6DFI9MqpbvAWsANifPR2iGUnA6JDiwRAcLz547FwQThihxpE5/
Bol3YSS+G0g/iuuPQLxftUHEb9HRngDvmv0O/EQ2FfyqtTg3oBGrcyvgNzje
8nMYKT8XGANvmGhzGG68DzIKc4fJNAmDHC+Gr1kKf1Q0/0Kk7qOJDl/y+vAn
mDyfwOj5E1av4MVJG/CnAW8tn7XfWL6A7xvwwO134GmycUye8+y6+9FCG7/V
kbW+eRJzxcsYlb+q1H0yqQs/852+Ehm2b2QzNpavkmkJTMHv9F4IrCqBBvzY
gOe5aS94IYDOMw7R0oH/HqRkPhJJfyiS+yl+/j3i2FXr+meQ+7wN/J5MWlKE
4xFgy/eNbE61fNF7Bc9EBDzA7sDnWRfx3rlTwYu9Met2nNmIvj1m0YeSPXzR
6fRPIHiii3LrDO49pzyNDSecdtij+XUhsdqneb7GwIvmN9wYPPb8nLHMwCyZ
WHCdull0xghIHgPBk0l/V3H8tlHzrwd9dN1ZhmA/Hg/0OyD26xTdj2Eplo1T
rNFW8xm8Bngrx8tCYNGCLwR2Dgvw/RQ8W/6NgBcCmH2ZgJd8RkmESeM3kW+8
orS9GpX9RNTxFRXG57RzP9Tr9Lra6IcxIg8kg/s4XYXXgHqNSivI6QZAqx34
VRvjJ5bvS7gdVc6Dbgt8HgEE1JRvyK2kYP55ONDzOsyv+QN3zazia5KbsIV6
+zn/UPflcKmZiVPJg8i9oF8dv2H/pDqRUXXYKhukxVFi/EQ2bwq8EAB4Sfkl
rc0kJLNRs2zR8Rm7gKs6nDN4KS7cD8xr/kf6b6mJOJK3ECzb078xV6xvBb5G
GgbPDssZprxn5Een2wIvBJgxW6CkxabMEqk4aYBrSk7DecjOWVe0TQu1Po44
kAVxZEFMZ+mYYwKtbJhkBY/mKni2fDoxPd0mAS73mqSspgmZgJYYz+YZdpGG
HVW3sT6tbxE6V8XyN4Fnh71T8DmMah13TpzTYt0QqOBrmGzj/KbG8X2hskab
Ap5lw5rnRGbkephLzjsFn30AD2IHypUThJJ9IRTnOmn5mg4XSxfwiwJ20ZCR
jHKqebZ8BQ/Nx9MmqDdMQAoOPLg+rJRSgXaVEg3T3KZoejVNhat8JrKpSRk7
rMxObPmzAL8jUPKZpgTMs+wey68ay7fpwLLR/qa1fMlr7gr4EwSK5WNOV2VE
hgJ6O3HQ3ew6Ab8rRKrm26SMl18APp0l+ErAFZ2rov3YyGczyWv2WX65J5c/
kVEiIYu3SofvmECxds/1sKQGx/l967DLKfg9hQjLpm9yeV/Ah7sFvh2BPvuv
LJz4Rj7VYZdTy59SRY37qii6S5tNOaPcFgkxCY5KbMl1ydX3hsry+02yKRnl
/y1Ezm4EkqzZMAj2Xl0WWLcFaAt+57CTdJjJD/cDfK0HhryEsdvGMiInnHYP
+Dq79jU1aMBHukebLbPkuoTRVB24AbwsSx7rPYVIXzPKJh1OdA83Wxx4nYNQ
DqGs7zJhtaFyva+KmoCPdI83duKq91iW0nn9vs0qV00hcqsSMNxry7cFzaaA
5HqA1/T71KyiVctPqig3qV/vC/hcD2QJLWsWWvKfOgKbAn5qeV+qqPhmqqiz
deJs8WVd6yyzabU6E7jJ8qUQSfcbfIlCPOuqKiH+gtKu72wby0sJWAqRcwH+
mECCD+yqMLVbpGoKEUmHzxv4UlIalEZhjVosmKT5i2OtA1rLn2kVdbYE+IOS
0uyknEp7HfUYVeQlQ65fRTZ3oxA5w2xUeaNpw18tEf99UFHWf/iLSLH8uQVf
RyBARltrDaaEEPhbbI408jURmh/TeQWf10ZtF9iRu86mAAImSi4WeLklr5ad
X/BCoOsMf/cdZ11HKJ/4HwdiMHyg0/2cYW8nG+X1IDefzxUI8P9ySP2KITj3
4PMnpqT4ozZrP3bWxq7rUlmle0tsVv6xgWkg/Bg7IxPr/2K8Nbb/CTAAF12f
5l7y6xMAAAAASUVORK5CYII=
====</pre>
Also add the field:
<pre>XSBC-Maemo-Display-Name: Photo light meter</pre>
== pushing to maemo-leste-extras ==
go to [https://github.com/maemo-leste-extras/ maemo-leste-extras] and [https://github.com/maemo-leste-extras/bugtracker/issues/new/choose open an issue] in the [https://github.com/maemo-leste-extras/bugtracker extras bugtracker] repo to request a repository.
ping <code>Wizzup</code> on <code>#maemo-leste@irc.libera.chat</code> to open you repo[s]. then try to be attentive to emails, because you may get github invite which you need to accept, otherwise it’ll time out(not sure when).
push your code to the newly opened repo in <code>maemo/beowulf</code> branch.
<code>beowulf</code> is the codename of the <code>devuan</code> release on which <code>maemo</code> is based.
<pre>$ git remote -v
origin git@github.com:norayr/msid.git (fetch)
origin git@github.com:norayr/msid.git (push)
$ git remote add maemo git@github.com:maemo-leste-extras/msid
$ git remote -v
maemo git@github.com:maemo-leste-extras/msid (fetch)
maemo git@github.com:maemo-leste-extras/msid (push)
origin git@github.com:norayr/msid.git (fetch)
origin git@github.com:norayr/msid.git (push)
$ git push maemo main
Enumerating objects: 176, done.
Counting objects: 100% (176/176), done.
Delta compression using up to 4 threads
Compressing objects: 100% (86/86), done.
Writing objects: 100% (176/176), 578.92 KiB | 4.71 MiB/s, done.
Total 176 (delta 105), reused 141 (delta 85)
remote: Resolving deltas: 100% (105/105), done.
To github.com:maemo-leste-extras/msid
* [new branch] main -> main
$ git checkout -b maemo/beowulf
Switched to a new branch 'maemo/beowulf'
$ git push maemo maemo/beowulf
Total 0 (delta 0), reused 0 (delta 0)
remote:
remote: Create a pull request for 'maemo/beowulf' on GitHub by visiting:
remote: https://github.com/maemo-leste-extras/msid/pull/new/maemo/beowulf
remote:
To github.com:maemo-leste-extras/msid
* [new branch] maemo/beowulf -> maemo/beowulf
$
</pre>
the repo needs to be tagged.
<pre>git tag 0.0.1</pre>
and then the tag has to be pushed:
<pre>git push maemo 0.0.1</pre>
in case you did some changes but don’t want to bump a tag/changelog version, you need to delete the tag locally:
<pre>git tag -d 0.0.1
git push maemo :refs/tags/0.0.1</pre>
= phoenix =
login https://phoenix.maemo.org/
the build sequence is:
* source
* binaries
* repos
find your project. let’s say https://phoenix.maemo.org/job/msid-source/
it has to have ‘build with parameters’ button on the left.
if everything is right it’ll trigger build of binaries https://phoenix.maemo.org/job/msid-binaries/
that link, for instance, will contain <code>arm64</code> build console output: https://phoenix.maemo.org/job/msid-binaries/architecture=arm64,label=arm64/1/console
== wiki ==
add a wiki page about the package [https://leste.maemo.org/Category:Extras here].
links:
https://leste.maemo.org/Development https://leste.maemo.org/Development/Porting_Packages https://leste.maemo.org/Development/Building_Packages https://leste.maemo.org/Development/Modified_Software
If you import a package, please try to preserve history if possible (converting from svn -> git is not too hard)
= Forking Debian/Devuan packages =
(TODO - Describe what branches need to be set up, Jenkins integration, etc)
= Preparing package for the repositories =
See https://leste.maemo.org/Development/Building_Packages
2a0bc08f859d661723abcda08d31f135850c72fb
1420
1419
2022-10-20T20:57:09Z
Norayr
36
/* phoenix */
wikitext
text/x-wiki
= Porting / Creating packages =
If you're looking at creating your own package, or porting software, the first things to do are:
# Check if someone already ported the package (if it in the repository? Is there an issue for it?)
# Check if there already are Debian packaging scripts/files. Debian packages a LOT of software, so it's likely that the software is already in the Maemo repository, or someone at least has build scripts for it.
# (TODO)
= Porting existing Maemo Fremantle packages =
Maemo Fremantle ("Nokia Maemo for the N900") contains a lot of packages that are open source. Most of them should run with very few changes on Maemo Leste, the main changes you will need to make will be:
# Check if someone already ported the package (if it in the repository? Is there an issue for it?)
# Updating of the Debian packaging files/scripts.
# Porting to newer libraries if old libraries are used (OpenSSL 0.9.8 -> OpenSSL 1.1.x, Qt4 -> Qt5, etc)
# Fixing any compile errors/warnings due to more strict compile flags
Source of the packages can be found at one of these places:
* http://maemo.org/packages/
* https://garage.maemo.org/
* http://repository.maemo.org/extras/pool/fremantle/free/source/
= Example =
== Getting the source package ==
Let's say we'd like to port a package "msid".
it's here: <pre>http://repository.maemo.org/extras/pool/fremantle/free/source/m/msid/</pre>
get the latest version:
<pre>
wget http://repository.maemo.org/extras/pool/fremantle/free/source/m/msid/msid_0.4.8-2.tar.gz
</pre>
<pre>
tar zxvf msid_0.4.8-2.tar.gz
cd msid-0.4.8
</pre>
== Creating new repo ==
init a git repo:
<pre>
git init
git add *
git commit -a -m "initial commit from fremantle sources"
</pre>
change content of `debian/compat` to `9`.
edit <pre>debian/changelog</pre>.
let's say the last release was:
<pre>
msid (0.4.8-2) unstable; urgency=low
</pre>
now the release should be:
<pre>
msid (0.4.8-2+leste1) unstable; urgency=low
</pre>
record your changes, add your name.
look if <pre>debian/control</pre> dependency versions should be changed.
== installing build dependencies==
<pre>
sudo apt build-dep .
</pre>
== building ==
<pre>
dpkg-buildpackage -b -uc
</pre>
add <pre>gbp.conf</pre> file in <pre>debian</pre> directory with the following content:
<pre>
[DEFAULT]
upstream-tag=%(version)s
</pre>
in <pre>debian/control</pre> file add (if not added)
<pre>
XSBC-Bugtracker: mailto:yourname@yourserver.am
</pre>
== icon ==
and the icon (this is not necessary if you port existing maemo5 package).
it is done [http://wiki.maemo.org/Maemo_packaging#Displaying_an_icon_in_the_Application_Manager_next_to_your_package|this] way.
you need to have `sharutils` installed. (app-arch/sharutils in gentoo).
* prepare a `48x48` png file.
* base64 encode it
<pre>
uuencode -m maeFat.png maeFat.png > maeFat.png.base64
</pre>
* Add the field <pre>XB-Maemo-Icon-26</pre> to your <pre>debian/control</pre> (in Maemo 4 the size of the icons was 26×26 pixels, hence the name of the field, which has not changed in Maemo 5)
* Open the <pre>base64</pre> version of your image and copy from the line under <pre>begin-base64 644 <name of 48×48 image></pre> to the line above the <pre>===</pre>.
* Add this to the XB-Maemo-Icon-26 field
* Add a space in front of every line of the encoded icon. You can do that automatically using sed when you base64 encode the image:
<pre>
uuencode -m <name of 48×48 image> <name of 48×48 image> | sed -e s,^,\ , > <name of 48×48 image>.base64
</pre>
== cli apps ==
if the program that is being ported is a <code>cli</code> application, then <code>cli icon</code> can be used.
[http://lists.maemo.org/pipermail/maemo-community/2010-January/003870.html cli icon announcement]
[http://n900.tannerlab.com/tools/cli.icon.txt old unexistent in archive.org too, txt file]
[http://samoff.com/random/maemo/cli_icon/ icons as images]
this is how the icon looks in <code>ham</code>:
<span class="image"></span>
and this is the <code>48x48</code> size icon:
<span class="image"></span>
its <code>base64</code> encoded and shifted for <code>maemo</code> <code>text file</code> is [[port_maemo_package_to_leste/maemo-term_icon_v002_a001_48p.png.base64|here]]
or here:
<pre> begin-base64 644 maemo-term_icon_v002_a001_48p.png
iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAGXRFWHRTb2Z0
d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAACYtJREFUeNrUWkurZUcVXvXY
59zbtyXpICEiaFrJQFDo6CDOHAi2UQdOFBw4CAqCDhU0DuIPEBtCRupIBxk4
MBMHgpIMnChE1OAD2uADEkFpUM9z710vv7Wq6ty6u09f0+nb3Tcb6u7Hqb33
96361qq1al/1vscfp+Ac3fjH6+S9v3owP/iYMfqyMaabz2ax62wwtnPDOPgY
ok8pxpQoKKW9UhRC8IFI+UQ4ds7HFKLW1mujffDexRi9MXiGMQG34uborbEO
515pckopZ7RxuN8RyflgtBrxfKeNGlNMY0ppxItGUnowSm3Rr7ezubfdnCwe
SuMw2EsPPvi9x957+SlrNAXvCCTIWkMKvQP6JEYdorQoG6gkUIpo+SgkStyV
SQb0RwOolACOQdBIlAaQ7XGtT4q2lGhDDCjRGsZYg8Qa71sR75WSPe5Z411o
doPfN1rrDs/q8MaVVt5Z5T1dnM++8sEPXHnqXzduxOuv/iVutlsGKeCxJbyE
jxN2uJc3FfkcJzHviBlG5sq/kUq8D4qvyzWKpQ/fzn94H/Mzub88L0hfJc/w
OPc8Ijh3is8xUhqIMZr+woULscMwRmjCwoDdY+959xcXiwX9/KVfRAyV0gYD
xTBVeY2mjJuvAR3+aMrgjPRQKtVzrRSDwE1Kl1uEuBADKCX34g5VzKLk/ihk
lQBl8CKt3IQA5MMEICttPIY5XDw6glSVspv15tGLRxcu/+rl3/D4q9lsJtjl
1WyTA7TxBKRYfjZEO2IMTufRosxdVcoCPvEIQTaBrYlLjuWFH0Z0Y433LC3Y
occ5a3ybz7EvmjdaD9IfvudG57d6G4E12fmse+d6tT76z38XcC6TwcOdEtvj
EGL7jif/fU3x1yaDmWejNuCpEI4ilZT3AFPAwifgA9gPuGMIFAESfqDUBpw2
inWuVNY+6z4l7NkX1ApWgI/QlvuD/qDZoWMEeRskaODBlmJ4oB9HGoYxycCy
1R9OavYtT92nweIRotnn4ZkvBhqfRvc/oM8MUJIQqC00zeemWL/FutRnq8Jp
uam0BtA1yC5x8xLHS7xa9sREEjsy+ogTg4CiASQGpZVDjBMJcTDEEajEeDSM
DjxCHm/s5s96mn0W0ekF3PZ2eSR1n0qk3+/U5koXaQU9G6q6nwCXcMgWF/CF
QAVfQHGESSsmQHTcUiYi0QfH6K8YfF8iGEASnBjagPGgp4SoTdra7tAhEnFc
ZIdVhxD3h3GI1/afgcV/B/pfsnG4plP8pU7q0s76twTPsbyAL3quwKUJUIBa
4HiBvrLHNd6DFI9MqpbvAWsANifPR2iGUnA6JDiwRAcLz547FwQThihxpE5/
Bol3YSS+G0g/iuuPQLxftUHEb9HRngDvmv0O/EQ2FfyqtTg3oBGrcyvgNzje
8nMYKT8XGANvmGhzGG68DzIKc4fJNAmDHC+Gr1kKf1Q0/0Kk7qOJDl/y+vAn
mDyfwOj5E1av4MVJG/CnAW8tn7XfWL6A7xvwwO134GmycUye8+y6+9FCG7/V
kbW+eRJzxcsYlb+q1H0yqQs/852+Ehm2b2QzNpavkmkJTMHv9F4IrCqBBvzY
gOe5aS94IYDOMw7R0oH/HqRkPhJJfyiS+yl+/j3i2FXr+meQ+7wN/J5MWlKE
4xFgy/eNbE61fNF7Bc9EBDzA7sDnWRfx3rlTwYu9Met2nNmIvj1m0YeSPXzR
6fRPIHiii3LrDO49pzyNDSecdtij+XUhsdqneb7GwIvmN9wYPPb8nLHMwCyZ
WHCdull0xghIHgPBk0l/V3H8tlHzrwd9dN1ZhmA/Hg/0OyD26xTdj2Eplo1T
rNFW8xm8Bngrx8tCYNGCLwR2Dgvw/RQ8W/6NgBcCmH2ZgJd8RkmESeM3kW+8
orS9GpX9RNTxFRXG57RzP9Tr9Lra6IcxIg8kg/s4XYXXgHqNSivI6QZAqx34
VRvjJ5bvS7gdVc6Dbgt8HgEE1JRvyK2kYP55ONDzOsyv+QN3zazia5KbsIV6
+zn/UPflcKmZiVPJg8i9oF8dv2H/pDqRUXXYKhukxVFi/EQ2bwq8EAB4Sfkl
rc0kJLNRs2zR8Rm7gKs6nDN4KS7cD8xr/kf6b6mJOJK3ECzb078xV6xvBb5G
GgbPDssZprxn5Een2wIvBJgxW6CkxabMEqk4aYBrSk7DecjOWVe0TQu1Po44
kAVxZEFMZ+mYYwKtbJhkBY/mKni2fDoxPd0mAS73mqSspgmZgJYYz+YZdpGG
HVW3sT6tbxE6V8XyN4Fnh71T8DmMah13TpzTYt0QqOBrmGzj/KbG8X2hskab
Ap5lw5rnRGbkephLzjsFn30AD2IHypUThJJ9IRTnOmn5mg4XSxfwiwJ20ZCR
jHKqebZ8BQ/Nx9MmqDdMQAoOPLg+rJRSgXaVEg3T3KZoejVNhat8JrKpSRk7
rMxObPmzAL8jUPKZpgTMs+wey68ay7fpwLLR/qa1fMlr7gr4EwSK5WNOV2VE
hgJ6O3HQ3ew6Ab8rRKrm26SMl18APp0l+ErAFZ2rov3YyGczyWv2WX65J5c/
kVEiIYu3SofvmECxds/1sKQGx/l967DLKfg9hQjLpm9yeV/Ah7sFvh2BPvuv
LJz4Rj7VYZdTy59SRY37qii6S5tNOaPcFgkxCY5KbMl1ydX3hsry+02yKRnl
/y1Ezm4EkqzZMAj2Xl0WWLcFaAt+57CTdJjJD/cDfK0HhryEsdvGMiInnHYP
+Dq79jU1aMBHukebLbPkuoTRVB24AbwsSx7rPYVIXzPKJh1OdA83Wxx4nYNQ
DqGs7zJhtaFyva+KmoCPdI83duKq91iW0nn9vs0qV00hcqsSMNxry7cFzaaA
5HqA1/T71KyiVctPqig3qV/vC/hcD2QJLWsWWvKfOgKbAn5qeV+qqPhmqqiz
deJs8WVd6yyzabU6E7jJ8qUQSfcbfIlCPOuqKiH+gtKu72wby0sJWAqRcwH+
mECCD+yqMLVbpGoKEUmHzxv4UlIalEZhjVosmKT5i2OtA1rLn2kVdbYE+IOS
0uyknEp7HfUYVeQlQ65fRTZ3oxA5w2xUeaNpw18tEf99UFHWf/iLSLH8uQVf
RyBARltrDaaEEPhbbI408jURmh/TeQWf10ZtF9iRu86mAAImSi4WeLklr5ad
X/BCoOsMf/cdZ11HKJ/4HwdiMHyg0/2cYW8nG+X1IDefzxUI8P9ySP2KITj3
4PMnpqT4ozZrP3bWxq7rUlmle0tsVv6xgWkg/Bg7IxPr/2K8Nbb/CTAAF12f
5l7y6xMAAAAASUVORK5CYII=
====</pre>
Also add the field:
<pre>XSBC-Maemo-Display-Name: Photo light meter</pre>
== pushing to maemo-leste-extras ==
go to [https://github.com/maemo-leste-extras/ maemo-leste-extras] and [https://github.com/maemo-leste-extras/bugtracker/issues/new/choose open an issue] in the [https://github.com/maemo-leste-extras/bugtracker extras bugtracker] repo to request a repository.
ping <code>Wizzup</code> on <code>#maemo-leste@irc.libera.chat</code> to open you repo[s]. then try to be attentive to emails, because you may get github invite which you need to accept, otherwise it’ll time out(not sure when).
push your code to the newly opened repo in <code>maemo/beowulf</code> branch.
<code>beowulf</code> is the codename of the <code>devuan</code> release on which <code>maemo</code> is based.
<pre>$ git remote -v
origin git@github.com:norayr/msid.git (fetch)
origin git@github.com:norayr/msid.git (push)
$ git remote add maemo git@github.com:maemo-leste-extras/msid
$ git remote -v
maemo git@github.com:maemo-leste-extras/msid (fetch)
maemo git@github.com:maemo-leste-extras/msid (push)
origin git@github.com:norayr/msid.git (fetch)
origin git@github.com:norayr/msid.git (push)
$ git push maemo main
Enumerating objects: 176, done.
Counting objects: 100% (176/176), done.
Delta compression using up to 4 threads
Compressing objects: 100% (86/86), done.
Writing objects: 100% (176/176), 578.92 KiB | 4.71 MiB/s, done.
Total 176 (delta 105), reused 141 (delta 85)
remote: Resolving deltas: 100% (105/105), done.
To github.com:maemo-leste-extras/msid
* [new branch] main -> main
$ git checkout -b maemo/beowulf
Switched to a new branch 'maemo/beowulf'
$ git push maemo maemo/beowulf
Total 0 (delta 0), reused 0 (delta 0)
remote:
remote: Create a pull request for 'maemo/beowulf' on GitHub by visiting:
remote: https://github.com/maemo-leste-extras/msid/pull/new/maemo/beowulf
remote:
To github.com:maemo-leste-extras/msid
* [new branch] maemo/beowulf -> maemo/beowulf
$
</pre>
the repo needs to be tagged.
<pre>git tag 0.0.1</pre>
and then the tag has to be pushed:
<pre>git push maemo 0.0.1</pre>
in case you did some changes but don’t want to bump a tag/changelog version, you need to delete the tag locally:
<pre>git tag -d 0.0.1
git push maemo :refs/tags/0.0.1</pre>
== phoenix ==
login https://phoenix.maemo.org/
the build sequence is:
* source
* binaries
* repos
find your project. let’s say https://phoenix.maemo.org/job/msid-source/
it has to have ‘build with parameters’ button on the left.
if everything is right it’ll trigger build of binaries https://phoenix.maemo.org/job/msid-binaries/
that link, for instance, will contain <code>arm64</code> build console output: https://phoenix.maemo.org/job/msid-binaries/architecture=arm64,label=arm64/1/console
== wiki ==
add a wiki page about the package [https://leste.maemo.org/Category:Extras here].
links:
https://leste.maemo.org/Development https://leste.maemo.org/Development/Porting_Packages https://leste.maemo.org/Development/Building_Packages https://leste.maemo.org/Development/Modified_Software
If you import a package, please try to preserve history if possible (converting from svn -> git is not too hard)
= Forking Debian/Devuan packages =
(TODO - Describe what branches need to be set up, Jenkins integration, etc)
= Preparing package for the repositories =
See https://leste.maemo.org/Development/Building_Packages
afe28aa7c4ca78729b0e04c3e54556e8d96c08c4
1423
1420
2022-10-20T21:08:04Z
Norayr
36
/* cli apps */
wikitext
text/x-wiki
= Porting / Creating packages =
If you're looking at creating your own package, or porting software, the first things to do are:
# Check if someone already ported the package (if it in the repository? Is there an issue for it?)
# Check if there already are Debian packaging scripts/files. Debian packages a LOT of software, so it's likely that the software is already in the Maemo repository, or someone at least has build scripts for it.
# (TODO)
= Porting existing Maemo Fremantle packages =
Maemo Fremantle ("Nokia Maemo for the N900") contains a lot of packages that are open source. Most of them should run with very few changes on Maemo Leste, the main changes you will need to make will be:
# Check if someone already ported the package (if it in the repository? Is there an issue for it?)
# Updating of the Debian packaging files/scripts.
# Porting to newer libraries if old libraries are used (OpenSSL 0.9.8 -> OpenSSL 1.1.x, Qt4 -> Qt5, etc)
# Fixing any compile errors/warnings due to more strict compile flags
Source of the packages can be found at one of these places:
* http://maemo.org/packages/
* https://garage.maemo.org/
* http://repository.maemo.org/extras/pool/fremantle/free/source/
= Example =
== Getting the source package ==
Let's say we'd like to port a package "msid".
it's here: <pre>http://repository.maemo.org/extras/pool/fremantle/free/source/m/msid/</pre>
get the latest version:
<pre>
wget http://repository.maemo.org/extras/pool/fremantle/free/source/m/msid/msid_0.4.8-2.tar.gz
</pre>
<pre>
tar zxvf msid_0.4.8-2.tar.gz
cd msid-0.4.8
</pre>
== Creating new repo ==
init a git repo:
<pre>
git init
git add *
git commit -a -m "initial commit from fremantle sources"
</pre>
change content of `debian/compat` to `9`.
edit <pre>debian/changelog</pre>.
let's say the last release was:
<pre>
msid (0.4.8-2) unstable; urgency=low
</pre>
now the release should be:
<pre>
msid (0.4.8-2+leste1) unstable; urgency=low
</pre>
record your changes, add your name.
look if <pre>debian/control</pre> dependency versions should be changed.
== installing build dependencies==
<pre>
sudo apt build-dep .
</pre>
== building ==
<pre>
dpkg-buildpackage -b -uc
</pre>
add <pre>gbp.conf</pre> file in <pre>debian</pre> directory with the following content:
<pre>
[DEFAULT]
upstream-tag=%(version)s
</pre>
in <pre>debian/control</pre> file add (if not added)
<pre>
XSBC-Bugtracker: mailto:yourname@yourserver.am
</pre>
== icon ==
and the icon (this is not necessary if you port existing maemo5 package).
it is done [http://wiki.maemo.org/Maemo_packaging#Displaying_an_icon_in_the_Application_Manager_next_to_your_package|this] way.
you need to have `sharutils` installed. (app-arch/sharutils in gentoo).
* prepare a `48x48` png file.
* base64 encode it
<pre>
uuencode -m maeFat.png maeFat.png > maeFat.png.base64
</pre>
* Add the field <pre>XB-Maemo-Icon-26</pre> to your <pre>debian/control</pre> (in Maemo 4 the size of the icons was 26×26 pixels, hence the name of the field, which has not changed in Maemo 5)
* Open the <pre>base64</pre> version of your image and copy from the line under <pre>begin-base64 644 <name of 48×48 image></pre> to the line above the <pre>===</pre>.
* Add this to the XB-Maemo-Icon-26 field
* Add a space in front of every line of the encoded icon. You can do that automatically using sed when you base64 encode the image:
<pre>
uuencode -m <name of 48×48 image> <name of 48×48 image> | sed -e s,^,\ , > <name of 48×48 image>.base64
</pre>
== cli apps ==
if the program that is being ported is a <code>cli</code> application, then <code>cli icon</code> can be used.
[http://lists.maemo.org/pipermail/maemo-community/2010-January/003870.html cli icon announcement]
[http://n900.tannerlab.com/tools/cli.icon.txt old unexistent in archive.org too, txt file]
[http://samoff.com/random/maemo/cli_icon/ icons as images]
this is how the icon looks in <code>ham</code>:
[[File:Maemo-cli_icon_appman_sample_v002.png]]
and this is the <code>48x48</code> size icon:
[[File:Maemo-term_icon_v002_a001_48p.png]]
its <code>base64</code> encoded and shifted for <code>maemo</code> <code>text file</code> is [[https://norayr.am/tips/port_maemo_package_to_leste/maemo-term_icon_v002_a001_48p.png.base64|here]]
or here:
<pre> begin-base64 644 maemo-term_icon_v002_a001_48p.png
iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAGXRFWHRTb2Z0
d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAACYtJREFUeNrUWkurZUcVXvXY
59zbtyXpICEiaFrJQFDo6CDOHAi2UQdOFBw4CAqCDhU0DuIPEBtCRupIBxk4
MBMHgpIMnChE1OAD2uADEkFpUM9z710vv7Wq6ty6u09f0+nb3Tcb6u7Hqb33
96361qq1al/1vscfp+Ac3fjH6+S9v3owP/iYMfqyMaabz2ax62wwtnPDOPgY
ok8pxpQoKKW9UhRC8IFI+UQ4ds7HFKLW1mujffDexRi9MXiGMQG34uborbEO
515pckopZ7RxuN8RyflgtBrxfKeNGlNMY0ppxItGUnowSm3Rr7ezubfdnCwe
SuMw2EsPPvi9x957+SlrNAXvCCTIWkMKvQP6JEYdorQoG6gkUIpo+SgkStyV
SQb0RwOolACOQdBIlAaQ7XGtT4q2lGhDDCjRGsZYg8Qa71sR75WSPe5Z411o
doPfN1rrDs/q8MaVVt5Z5T1dnM++8sEPXHnqXzduxOuv/iVutlsGKeCxJbyE
jxN2uJc3FfkcJzHviBlG5sq/kUq8D4qvyzWKpQ/fzn94H/Mzub88L0hfJc/w
OPc8Ijh3is8xUhqIMZr+woULscMwRmjCwoDdY+959xcXiwX9/KVfRAyV0gYD
xTBVeY2mjJuvAR3+aMrgjPRQKtVzrRSDwE1Kl1uEuBADKCX34g5VzKLk/ihk
lQBl8CKt3IQA5MMEICttPIY5XDw6glSVspv15tGLRxcu/+rl3/D4q9lsJtjl
1WyTA7TxBKRYfjZEO2IMTufRosxdVcoCPvEIQTaBrYlLjuWFH0Z0Y433LC3Y
occ5a3ybz7EvmjdaD9IfvudG57d6G4E12fmse+d6tT76z38XcC6TwcOdEtvj
EGL7jif/fU3x1yaDmWejNuCpEI4ilZT3AFPAwifgA9gPuGMIFAESfqDUBpw2
inWuVNY+6z4l7NkX1ApWgI/QlvuD/qDZoWMEeRskaODBlmJ4oB9HGoYxycCy
1R9OavYtT92nweIRotnn4ZkvBhqfRvc/oM8MUJIQqC00zeemWL/FutRnq8Jp
uam0BtA1yC5x8xLHS7xa9sREEjsy+ogTg4CiASQGpZVDjBMJcTDEEajEeDSM
DjxCHm/s5s96mn0W0ekF3PZ2eSR1n0qk3+/U5koXaQU9G6q6nwCXcMgWF/CF
QAVfQHGESSsmQHTcUiYi0QfH6K8YfF8iGEASnBjagPGgp4SoTdra7tAhEnFc
ZIdVhxD3h3GI1/afgcV/B/pfsnG4plP8pU7q0s76twTPsbyAL3quwKUJUIBa
4HiBvrLHNd6DFI9MqpbvAWsANifPR2iGUnA6JDiwRAcLz547FwQThihxpE5/
Bol3YSS+G0g/iuuPQLxftUHEb9HRngDvmv0O/EQ2FfyqtTg3oBGrcyvgNzje
8nMYKT8XGANvmGhzGG68DzIKc4fJNAmDHC+Gr1kKf1Q0/0Kk7qOJDl/y+vAn
mDyfwOj5E1av4MVJG/CnAW8tn7XfWL6A7xvwwO134GmycUye8+y6+9FCG7/V
kbW+eRJzxcsYlb+q1H0yqQs/852+Ehm2b2QzNpavkmkJTMHv9F4IrCqBBvzY
gOe5aS94IYDOMw7R0oH/HqRkPhJJfyiS+yl+/j3i2FXr+meQ+7wN/J5MWlKE
4xFgy/eNbE61fNF7Bc9EBDzA7sDnWRfx3rlTwYu9Met2nNmIvj1m0YeSPXzR
6fRPIHiii3LrDO49pzyNDSecdtij+XUhsdqneb7GwIvmN9wYPPb8nLHMwCyZ
WHCdull0xghIHgPBk0l/V3H8tlHzrwd9dN1ZhmA/Hg/0OyD26xTdj2Eplo1T
rNFW8xm8Bngrx8tCYNGCLwR2Dgvw/RQ8W/6NgBcCmH2ZgJd8RkmESeM3kW+8
orS9GpX9RNTxFRXG57RzP9Tr9Lra6IcxIg8kg/s4XYXXgHqNSivI6QZAqx34
VRvjJ5bvS7gdVc6Dbgt8HgEE1JRvyK2kYP55ONDzOsyv+QN3zazia5KbsIV6
+zn/UPflcKmZiVPJg8i9oF8dv2H/pDqRUXXYKhukxVFi/EQ2bwq8EAB4Sfkl
rc0kJLNRs2zR8Rm7gKs6nDN4KS7cD8xr/kf6b6mJOJK3ECzb078xV6xvBb5G
GgbPDssZprxn5Een2wIvBJgxW6CkxabMEqk4aYBrSk7DecjOWVe0TQu1Po44
kAVxZEFMZ+mYYwKtbJhkBY/mKni2fDoxPd0mAS73mqSspgmZgJYYz+YZdpGG
HVW3sT6tbxE6V8XyN4Fnh71T8DmMah13TpzTYt0QqOBrmGzj/KbG8X2hskab
Ap5lw5rnRGbkephLzjsFn30AD2IHypUThJJ9IRTnOmn5mg4XSxfwiwJ20ZCR
jHKqebZ8BQ/Nx9MmqDdMQAoOPLg+rJRSgXaVEg3T3KZoejVNhat8JrKpSRk7
rMxObPmzAL8jUPKZpgTMs+wey68ay7fpwLLR/qa1fMlr7gr4EwSK5WNOV2VE
hgJ6O3HQ3ew6Ab8rRKrm26SMl18APp0l+ErAFZ2rov3YyGczyWv2WX65J5c/
kVEiIYu3SofvmECxds/1sKQGx/l967DLKfg9hQjLpm9yeV/Ah7sFvh2BPvuv
LJz4Rj7VYZdTy59SRY37qii6S5tNOaPcFgkxCY5KbMl1ydX3hsry+02yKRnl
/y1Ezm4EkqzZMAj2Xl0WWLcFaAt+57CTdJjJD/cDfK0HhryEsdvGMiInnHYP
+Dq79jU1aMBHukebLbPkuoTRVB24AbwsSx7rPYVIXzPKJh1OdA83Wxx4nYNQ
DqGs7zJhtaFyva+KmoCPdI83duKq91iW0nn9vs0qV00hcqsSMNxry7cFzaaA
5HqA1/T71KyiVctPqig3qV/vC/hcD2QJLWsWWvKfOgKbAn5qeV+qqPhmqqiz
deJs8WVd6yyzabU6E7jJ8qUQSfcbfIlCPOuqKiH+gtKu72wby0sJWAqRcwH+
mECCD+yqMLVbpGoKEUmHzxv4UlIalEZhjVosmKT5i2OtA1rLn2kVdbYE+IOS
0uyknEp7HfUYVeQlQ65fRTZ3oxA5w2xUeaNpw18tEf99UFHWf/iLSLH8uQVf
RyBARltrDaaEEPhbbI408jURmh/TeQWf10ZtF9iRu86mAAImSi4WeLklr5ad
X/BCoOsMf/cdZ11HKJ/4HwdiMHyg0/2cYW8nG+X1IDefzxUI8P9ySP2KITj3
4PMnpqT4ozZrP3bWxq7rUlmle0tsVv6xgWkg/Bg7IxPr/2K8Nbb/CTAAF12f
5l7y6xMAAAAASUVORK5CYII=
====</pre>
Also add the field:
<pre>XSBC-Maemo-Display-Name: Photo light meter</pre>
== pushing to maemo-leste-extras ==
go to [https://github.com/maemo-leste-extras/ maemo-leste-extras] and [https://github.com/maemo-leste-extras/bugtracker/issues/new/choose open an issue] in the [https://github.com/maemo-leste-extras/bugtracker extras bugtracker] repo to request a repository.
ping <code>Wizzup</code> on <code>#maemo-leste@irc.libera.chat</code> to open you repo[s]. then try to be attentive to emails, because you may get github invite which you need to accept, otherwise it’ll time out(not sure when).
push your code to the newly opened repo in <code>maemo/beowulf</code> branch.
<code>beowulf</code> is the codename of the <code>devuan</code> release on which <code>maemo</code> is based.
<pre>$ git remote -v
origin git@github.com:norayr/msid.git (fetch)
origin git@github.com:norayr/msid.git (push)
$ git remote add maemo git@github.com:maemo-leste-extras/msid
$ git remote -v
maemo git@github.com:maemo-leste-extras/msid (fetch)
maemo git@github.com:maemo-leste-extras/msid (push)
origin git@github.com:norayr/msid.git (fetch)
origin git@github.com:norayr/msid.git (push)
$ git push maemo main
Enumerating objects: 176, done.
Counting objects: 100% (176/176), done.
Delta compression using up to 4 threads
Compressing objects: 100% (86/86), done.
Writing objects: 100% (176/176), 578.92 KiB | 4.71 MiB/s, done.
Total 176 (delta 105), reused 141 (delta 85)
remote: Resolving deltas: 100% (105/105), done.
To github.com:maemo-leste-extras/msid
* [new branch] main -> main
$ git checkout -b maemo/beowulf
Switched to a new branch 'maemo/beowulf'
$ git push maemo maemo/beowulf
Total 0 (delta 0), reused 0 (delta 0)
remote:
remote: Create a pull request for 'maemo/beowulf' on GitHub by visiting:
remote: https://github.com/maemo-leste-extras/msid/pull/new/maemo/beowulf
remote:
To github.com:maemo-leste-extras/msid
* [new branch] maemo/beowulf -> maemo/beowulf
$
</pre>
the repo needs to be tagged.
<pre>git tag 0.0.1</pre>
and then the tag has to be pushed:
<pre>git push maemo 0.0.1</pre>
in case you did some changes but don’t want to bump a tag/changelog version, you need to delete the tag locally:
<pre>git tag -d 0.0.1
git push maemo :refs/tags/0.0.1</pre>
== phoenix ==
login https://phoenix.maemo.org/
the build sequence is:
* source
* binaries
* repos
find your project. let’s say https://phoenix.maemo.org/job/msid-source/
it has to have ‘build with parameters’ button on the left.
if everything is right it’ll trigger build of binaries https://phoenix.maemo.org/job/msid-binaries/
that link, for instance, will contain <code>arm64</code> build console output: https://phoenix.maemo.org/job/msid-binaries/architecture=arm64,label=arm64/1/console
== wiki ==
add a wiki page about the package [https://leste.maemo.org/Category:Extras here].
links:
https://leste.maemo.org/Development https://leste.maemo.org/Development/Porting_Packages https://leste.maemo.org/Development/Building_Packages https://leste.maemo.org/Development/Modified_Software
If you import a package, please try to preserve history if possible (converting from svn -> git is not too hard)
= Forking Debian/Devuan packages =
(TODO - Describe what branches need to be set up, Jenkins integration, etc)
= Preparing package for the repositories =
See https://leste.maemo.org/Development/Building_Packages
9c683dfd1434567b5f47a0dc6cf2cac2bd3644e9
1424
1423
2022-10-20T21:08:57Z
Norayr
36
/* cli apps */
wikitext
text/x-wiki
= Porting / Creating packages =
If you're looking at creating your own package, or porting software, the first things to do are:
# Check if someone already ported the package (if it in the repository? Is there an issue for it?)
# Check if there already are Debian packaging scripts/files. Debian packages a LOT of software, so it's likely that the software is already in the Maemo repository, or someone at least has build scripts for it.
# (TODO)
= Porting existing Maemo Fremantle packages =
Maemo Fremantle ("Nokia Maemo for the N900") contains a lot of packages that are open source. Most of them should run with very few changes on Maemo Leste, the main changes you will need to make will be:
# Check if someone already ported the package (if it in the repository? Is there an issue for it?)
# Updating of the Debian packaging files/scripts.
# Porting to newer libraries if old libraries are used (OpenSSL 0.9.8 -> OpenSSL 1.1.x, Qt4 -> Qt5, etc)
# Fixing any compile errors/warnings due to more strict compile flags
Source of the packages can be found at one of these places:
* http://maemo.org/packages/
* https://garage.maemo.org/
* http://repository.maemo.org/extras/pool/fremantle/free/source/
= Example =
== Getting the source package ==
Let's say we'd like to port a package "msid".
it's here: <pre>http://repository.maemo.org/extras/pool/fremantle/free/source/m/msid/</pre>
get the latest version:
<pre>
wget http://repository.maemo.org/extras/pool/fremantle/free/source/m/msid/msid_0.4.8-2.tar.gz
</pre>
<pre>
tar zxvf msid_0.4.8-2.tar.gz
cd msid-0.4.8
</pre>
== Creating new repo ==
init a git repo:
<pre>
git init
git add *
git commit -a -m "initial commit from fremantle sources"
</pre>
change content of `debian/compat` to `9`.
edit <pre>debian/changelog</pre>.
let's say the last release was:
<pre>
msid (0.4.8-2) unstable; urgency=low
</pre>
now the release should be:
<pre>
msid (0.4.8-2+leste1) unstable; urgency=low
</pre>
record your changes, add your name.
look if <pre>debian/control</pre> dependency versions should be changed.
== installing build dependencies==
<pre>
sudo apt build-dep .
</pre>
== building ==
<pre>
dpkg-buildpackage -b -uc
</pre>
add <pre>gbp.conf</pre> file in <pre>debian</pre> directory with the following content:
<pre>
[DEFAULT]
upstream-tag=%(version)s
</pre>
in <pre>debian/control</pre> file add (if not added)
<pre>
XSBC-Bugtracker: mailto:yourname@yourserver.am
</pre>
== icon ==
and the icon (this is not necessary if you port existing maemo5 package).
it is done [http://wiki.maemo.org/Maemo_packaging#Displaying_an_icon_in_the_Application_Manager_next_to_your_package|this] way.
you need to have `sharutils` installed. (app-arch/sharutils in gentoo).
* prepare a `48x48` png file.
* base64 encode it
<pre>
uuencode -m maeFat.png maeFat.png > maeFat.png.base64
</pre>
* Add the field <pre>XB-Maemo-Icon-26</pre> to your <pre>debian/control</pre> (in Maemo 4 the size of the icons was 26×26 pixels, hence the name of the field, which has not changed in Maemo 5)
* Open the <pre>base64</pre> version of your image and copy from the line under <pre>begin-base64 644 <name of 48×48 image></pre> to the line above the <pre>===</pre>.
* Add this to the XB-Maemo-Icon-26 field
* Add a space in front of every line of the encoded icon. You can do that automatically using sed when you base64 encode the image:
<pre>
uuencode -m <name of 48×48 image> <name of 48×48 image> | sed -e s,^,\ , > <name of 48×48 image>.base64
</pre>
== cli apps ==
if the program that is being ported is a <code>cli</code> application, then <code>cli icon</code> can be used.
[http://lists.maemo.org/pipermail/maemo-community/2010-January/003870.html cli icon announcement]
[http://n900.tannerlab.com/tools/cli.icon.txt old unexistent in archive.org too, txt file]
[http://samoff.com/random/maemo/cli_icon/ icons as images]
this is how the icon looks in <code>ham</code>:
[[File:Maemo-cli_icon_appman_sample_v002.png]]
and this is the <code>48x48</code> size icon:
[[File:Maemo-term_icon_v002_a001_48p.png]]
its <code>base64</code> encoded and shifted for <code>maemo</code> <code>text file</code> is [http://norayr.am/tips/port_maemo_package_to_leste/maemo-term_icon_v002_a001_48p.png.base64 here]
or here:
<pre> begin-base64 644 maemo-term_icon_v002_a001_48p.png
iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAGXRFWHRTb2Z0
d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAACYtJREFUeNrUWkurZUcVXvXY
59zbtyXpICEiaFrJQFDo6CDOHAi2UQdOFBw4CAqCDhU0DuIPEBtCRupIBxk4
MBMHgpIMnChE1OAD2uADEkFpUM9z710vv7Wq6ty6u09f0+nb3Tcb6u7Hqb33
96361qq1al/1vscfp+Ac3fjH6+S9v3owP/iYMfqyMaabz2ax62wwtnPDOPgY
ok8pxpQoKKW9UhRC8IFI+UQ4ds7HFKLW1mujffDexRi9MXiGMQG34uborbEO
515pckopZ7RxuN8RyflgtBrxfKeNGlNMY0ppxItGUnowSm3Rr7ezubfdnCwe
SuMw2EsPPvi9x957+SlrNAXvCCTIWkMKvQP6JEYdorQoG6gkUIpo+SgkStyV
SQb0RwOolACOQdBIlAaQ7XGtT4q2lGhDDCjRGsZYg8Qa71sR75WSPe5Z411o
doPfN1rrDs/q8MaVVt5Z5T1dnM++8sEPXHnqXzduxOuv/iVutlsGKeCxJbyE
jxN2uJc3FfkcJzHviBlG5sq/kUq8D4qvyzWKpQ/fzn94H/Mzub88L0hfJc/w
OPc8Ijh3is8xUhqIMZr+woULscMwRmjCwoDdY+959xcXiwX9/KVfRAyV0gYD
xTBVeY2mjJuvAR3+aMrgjPRQKtVzrRSDwE1Kl1uEuBADKCX34g5VzKLk/ihk
lQBl8CKt3IQA5MMEICttPIY5XDw6glSVspv15tGLRxcu/+rl3/D4q9lsJtjl
1WyTA7TxBKRYfjZEO2IMTufRosxdVcoCPvEIQTaBrYlLjuWFH0Z0Y433LC3Y
occ5a3ybz7EvmjdaD9IfvudG57d6G4E12fmse+d6tT76z38XcC6TwcOdEtvj
EGL7jif/fU3x1yaDmWejNuCpEI4ilZT3AFPAwifgA9gPuGMIFAESfqDUBpw2
inWuVNY+6z4l7NkX1ApWgI/QlvuD/qDZoWMEeRskaODBlmJ4oB9HGoYxycCy
1R9OavYtT92nweIRotnn4ZkvBhqfRvc/oM8MUJIQqC00zeemWL/FutRnq8Jp
uam0BtA1yC5x8xLHS7xa9sREEjsy+ogTg4CiASQGpZVDjBMJcTDEEajEeDSM
DjxCHm/s5s96mn0W0ekF3PZ2eSR1n0qk3+/U5koXaQU9G6q6nwCXcMgWF/CF
QAVfQHGESSsmQHTcUiYi0QfH6K8YfF8iGEASnBjagPGgp4SoTdra7tAhEnFc
ZIdVhxD3h3GI1/afgcV/B/pfsnG4plP8pU7q0s76twTPsbyAL3quwKUJUIBa
4HiBvrLHNd6DFI9MqpbvAWsANifPR2iGUnA6JDiwRAcLz547FwQThihxpE5/
Bol3YSS+G0g/iuuPQLxftUHEb9HRngDvmv0O/EQ2FfyqtTg3oBGrcyvgNzje
8nMYKT8XGANvmGhzGG68DzIKc4fJNAmDHC+Gr1kKf1Q0/0Kk7qOJDl/y+vAn
mDyfwOj5E1av4MVJG/CnAW8tn7XfWL6A7xvwwO134GmycUye8+y6+9FCG7/V
kbW+eRJzxcsYlb+q1H0yqQs/852+Ehm2b2QzNpavkmkJTMHv9F4IrCqBBvzY
gOe5aS94IYDOMw7R0oH/HqRkPhJJfyiS+yl+/j3i2FXr+meQ+7wN/J5MWlKE
4xFgy/eNbE61fNF7Bc9EBDzA7sDnWRfx3rlTwYu9Met2nNmIvj1m0YeSPXzR
6fRPIHiii3LrDO49pzyNDSecdtij+XUhsdqneb7GwIvmN9wYPPb8nLHMwCyZ
WHCdull0xghIHgPBk0l/V3H8tlHzrwd9dN1ZhmA/Hg/0OyD26xTdj2Eplo1T
rNFW8xm8Bngrx8tCYNGCLwR2Dgvw/RQ8W/6NgBcCmH2ZgJd8RkmESeM3kW+8
orS9GpX9RNTxFRXG57RzP9Tr9Lra6IcxIg8kg/s4XYXXgHqNSivI6QZAqx34
VRvjJ5bvS7gdVc6Dbgt8HgEE1JRvyK2kYP55ONDzOsyv+QN3zazia5KbsIV6
+zn/UPflcKmZiVPJg8i9oF8dv2H/pDqRUXXYKhukxVFi/EQ2bwq8EAB4Sfkl
rc0kJLNRs2zR8Rm7gKs6nDN4KS7cD8xr/kf6b6mJOJK3ECzb078xV6xvBb5G
GgbPDssZprxn5Een2wIvBJgxW6CkxabMEqk4aYBrSk7DecjOWVe0TQu1Po44
kAVxZEFMZ+mYYwKtbJhkBY/mKni2fDoxPd0mAS73mqSspgmZgJYYz+YZdpGG
HVW3sT6tbxE6V8XyN4Fnh71T8DmMah13TpzTYt0QqOBrmGzj/KbG8X2hskab
Ap5lw5rnRGbkephLzjsFn30AD2IHypUThJJ9IRTnOmn5mg4XSxfwiwJ20ZCR
jHKqebZ8BQ/Nx9MmqDdMQAoOPLg+rJRSgXaVEg3T3KZoejVNhat8JrKpSRk7
rMxObPmzAL8jUPKZpgTMs+wey68ay7fpwLLR/qa1fMlr7gr4EwSK5WNOV2VE
hgJ6O3HQ3ew6Ab8rRKrm26SMl18APp0l+ErAFZ2rov3YyGczyWv2WX65J5c/
kVEiIYu3SofvmECxds/1sKQGx/l967DLKfg9hQjLpm9yeV/Ah7sFvh2BPvuv
LJz4Rj7VYZdTy59SRY37qii6S5tNOaPcFgkxCY5KbMl1ydX3hsry+02yKRnl
/y1Ezm4EkqzZMAj2Xl0WWLcFaAt+57CTdJjJD/cDfK0HhryEsdvGMiInnHYP
+Dq79jU1aMBHukebLbPkuoTRVB24AbwsSx7rPYVIXzPKJh1OdA83Wxx4nYNQ
DqGs7zJhtaFyva+KmoCPdI83duKq91iW0nn9vs0qV00hcqsSMNxry7cFzaaA
5HqA1/T71KyiVctPqig3qV/vC/hcD2QJLWsWWvKfOgKbAn5qeV+qqPhmqqiz
deJs8WVd6yyzabU6E7jJ8qUQSfcbfIlCPOuqKiH+gtKu72wby0sJWAqRcwH+
mECCD+yqMLVbpGoKEUmHzxv4UlIalEZhjVosmKT5i2OtA1rLn2kVdbYE+IOS
0uyknEp7HfUYVeQlQ65fRTZ3oxA5w2xUeaNpw18tEf99UFHWf/iLSLH8uQVf
RyBARltrDaaEEPhbbI408jURmh/TeQWf10ZtF9iRu86mAAImSi4WeLklr5ad
X/BCoOsMf/cdZ11HKJ/4HwdiMHyg0/2cYW8nG+X1IDefzxUI8P9ySP2KITj3
4PMnpqT4ozZrP3bWxq7rUlmle0tsVv6xgWkg/Bg7IxPr/2K8Nbb/CTAAF12f
5l7y6xMAAAAASUVORK5CYII=
====</pre>
Also add the field:
<pre>XSBC-Maemo-Display-Name: Photo light meter</pre>
== pushing to maemo-leste-extras ==
go to [https://github.com/maemo-leste-extras/ maemo-leste-extras] and [https://github.com/maemo-leste-extras/bugtracker/issues/new/choose open an issue] in the [https://github.com/maemo-leste-extras/bugtracker extras bugtracker] repo to request a repository.
ping <code>Wizzup</code> on <code>#maemo-leste@irc.libera.chat</code> to open you repo[s]. then try to be attentive to emails, because you may get github invite which you need to accept, otherwise it’ll time out(not sure when).
push your code to the newly opened repo in <code>maemo/beowulf</code> branch.
<code>beowulf</code> is the codename of the <code>devuan</code> release on which <code>maemo</code> is based.
<pre>$ git remote -v
origin git@github.com:norayr/msid.git (fetch)
origin git@github.com:norayr/msid.git (push)
$ git remote add maemo git@github.com:maemo-leste-extras/msid
$ git remote -v
maemo git@github.com:maemo-leste-extras/msid (fetch)
maemo git@github.com:maemo-leste-extras/msid (push)
origin git@github.com:norayr/msid.git (fetch)
origin git@github.com:norayr/msid.git (push)
$ git push maemo main
Enumerating objects: 176, done.
Counting objects: 100% (176/176), done.
Delta compression using up to 4 threads
Compressing objects: 100% (86/86), done.
Writing objects: 100% (176/176), 578.92 KiB | 4.71 MiB/s, done.
Total 176 (delta 105), reused 141 (delta 85)
remote: Resolving deltas: 100% (105/105), done.
To github.com:maemo-leste-extras/msid
* [new branch] main -> main
$ git checkout -b maemo/beowulf
Switched to a new branch 'maemo/beowulf'
$ git push maemo maemo/beowulf
Total 0 (delta 0), reused 0 (delta 0)
remote:
remote: Create a pull request for 'maemo/beowulf' on GitHub by visiting:
remote: https://github.com/maemo-leste-extras/msid/pull/new/maemo/beowulf
remote:
To github.com:maemo-leste-extras/msid
* [new branch] maemo/beowulf -> maemo/beowulf
$
</pre>
the repo needs to be tagged.
<pre>git tag 0.0.1</pre>
and then the tag has to be pushed:
<pre>git push maemo 0.0.1</pre>
in case you did some changes but don’t want to bump a tag/changelog version, you need to delete the tag locally:
<pre>git tag -d 0.0.1
git push maemo :refs/tags/0.0.1</pre>
== phoenix ==
login https://phoenix.maemo.org/
the build sequence is:
* source
* binaries
* repos
find your project. let’s say https://phoenix.maemo.org/job/msid-source/
it has to have ‘build with parameters’ button on the left.
if everything is right it’ll trigger build of binaries https://phoenix.maemo.org/job/msid-binaries/
that link, for instance, will contain <code>arm64</code> build console output: https://phoenix.maemo.org/job/msid-binaries/architecture=arm64,label=arm64/1/console
== wiki ==
add a wiki page about the package [https://leste.maemo.org/Category:Extras here].
links:
https://leste.maemo.org/Development https://leste.maemo.org/Development/Porting_Packages https://leste.maemo.org/Development/Building_Packages https://leste.maemo.org/Development/Modified_Software
If you import a package, please try to preserve history if possible (converting from svn -> git is not too hard)
= Forking Debian/Devuan packages =
(TODO - Describe what branches need to be set up, Jenkins integration, etc)
= Preparing package for the repositories =
See https://leste.maemo.org/Development/Building_Packages
7835751ce23c3d3d4f3dd2ae839dbee9abe871cb
1425
1424
2022-10-20T21:16:31Z
Norayr
36
/* icon */
wikitext
text/x-wiki
= Porting / Creating packages =
If you're looking at creating your own package, or porting software, the first things to do are:
# Check if someone already ported the package (if it in the repository? Is there an issue for it?)
# Check if there already are Debian packaging scripts/files. Debian packages a LOT of software, so it's likely that the software is already in the Maemo repository, or someone at least has build scripts for it.
# (TODO)
= Porting existing Maemo Fremantle packages =
Maemo Fremantle ("Nokia Maemo for the N900") contains a lot of packages that are open source. Most of them should run with very few changes on Maemo Leste, the main changes you will need to make will be:
# Check if someone already ported the package (if it in the repository? Is there an issue for it?)
# Updating of the Debian packaging files/scripts.
# Porting to newer libraries if old libraries are used (OpenSSL 0.9.8 -> OpenSSL 1.1.x, Qt4 -> Qt5, etc)
# Fixing any compile errors/warnings due to more strict compile flags
Source of the packages can be found at one of these places:
* http://maemo.org/packages/
* https://garage.maemo.org/
* http://repository.maemo.org/extras/pool/fremantle/free/source/
= Example =
== Getting the source package ==
Let's say we'd like to port a package "msid".
it's here: <pre>http://repository.maemo.org/extras/pool/fremantle/free/source/m/msid/</pre>
get the latest version:
<pre>
wget http://repository.maemo.org/extras/pool/fremantle/free/source/m/msid/msid_0.4.8-2.tar.gz
</pre>
<pre>
tar zxvf msid_0.4.8-2.tar.gz
cd msid-0.4.8
</pre>
== Creating new repo ==
init a git repo:
<pre>
git init
git add *
git commit -a -m "initial commit from fremantle sources"
</pre>
change content of `debian/compat` to `9`.
edit <pre>debian/changelog</pre>.
let's say the last release was:
<pre>
msid (0.4.8-2) unstable; urgency=low
</pre>
now the release should be:
<pre>
msid (0.4.8-2+leste1) unstable; urgency=low
</pre>
record your changes, add your name.
look if <pre>debian/control</pre> dependency versions should be changed.
== installing build dependencies==
<pre>
sudo apt build-dep .
</pre>
== building ==
<pre>
dpkg-buildpackage -b -uc
</pre>
add <pre>gbp.conf</pre> file in <pre>debian</pre> directory with the following content:
<pre>
[DEFAULT]
upstream-tag=%(version)s
</pre>
in <pre>debian/control</pre> file add (if not added)
<pre>
XSBC-Bugtracker: mailto:yourname@yourserver.am
</pre>
== icon ==
and the icon (this is not necessary if you port existing maemo5 package).
it is done [http://wiki.maemo.org/Maemo_packaging#Displaying_an_icon_in_the_Application_Manager_next_to_your_package this] way.
you need to have `sharutils` installed. (app-arch/sharutils in gentoo).
* prepare a `48x48` png file.
* optimize it: <pre>optipng -strip all</pre>
* base64 encode it
<pre>
uuencode -m maeFat.png maeFat.png > maeFat.png.base64
</pre>
* Add the field <pre>XB-Maemo-Icon-26</pre> to your <pre>debian/control</pre> (in Maemo 4 the size of the icons was 26×26 pixels, hence the name of the field, which has not changed in Maemo 5)
* Open the <pre>base64</pre> version of your image and copy from the line under <pre>begin-base64 644 <name of 48×48 image></pre> to the line above the <pre>===</pre>.
* Add this to the XB-Maemo-Icon-26 field
* Add a space in front of every line of the encoded icon. You can do that automatically using sed when you base64 encode the image:
<pre>
uuencode -m <name of 48×48 image> <name of 48×48 image> | sed -e s,^,\ , > <name of 48×48 image>.base64
</pre>
== cli apps ==
if the program that is being ported is a <code>cli</code> application, then <code>cli icon</code> can be used.
[http://lists.maemo.org/pipermail/maemo-community/2010-January/003870.html cli icon announcement]
[http://n900.tannerlab.com/tools/cli.icon.txt old unexistent in archive.org too, txt file]
[http://samoff.com/random/maemo/cli_icon/ icons as images]
this is how the icon looks in <code>ham</code>:
[[File:Maemo-cli_icon_appman_sample_v002.png]]
and this is the <code>48x48</code> size icon:
[[File:Maemo-term_icon_v002_a001_48p.png]]
its <code>base64</code> encoded and shifted for <code>maemo</code> <code>text file</code> is [http://norayr.am/tips/port_maemo_package_to_leste/maemo-term_icon_v002_a001_48p.png.base64 here]
or here:
<pre> begin-base64 644 maemo-term_icon_v002_a001_48p.png
iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAGXRFWHRTb2Z0
d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAACYtJREFUeNrUWkurZUcVXvXY
59zbtyXpICEiaFrJQFDo6CDOHAi2UQdOFBw4CAqCDhU0DuIPEBtCRupIBxk4
MBMHgpIMnChE1OAD2uADEkFpUM9z710vv7Wq6ty6u09f0+nb3Tcb6u7Hqb33
96361qq1al/1vscfp+Ac3fjH6+S9v3owP/iYMfqyMaabz2ax62wwtnPDOPgY
ok8pxpQoKKW9UhRC8IFI+UQ4ds7HFKLW1mujffDexRi9MXiGMQG34uborbEO
515pckopZ7RxuN8RyflgtBrxfKeNGlNMY0ppxItGUnowSm3Rr7ezubfdnCwe
SuMw2EsPPvi9x957+SlrNAXvCCTIWkMKvQP6JEYdorQoG6gkUIpo+SgkStyV
SQb0RwOolACOQdBIlAaQ7XGtT4q2lGhDDCjRGsZYg8Qa71sR75WSPe5Z411o
doPfN1rrDs/q8MaVVt5Z5T1dnM++8sEPXHnqXzduxOuv/iVutlsGKeCxJbyE
jxN2uJc3FfkcJzHviBlG5sq/kUq8D4qvyzWKpQ/fzn94H/Mzub88L0hfJc/w
OPc8Ijh3is8xUhqIMZr+woULscMwRmjCwoDdY+959xcXiwX9/KVfRAyV0gYD
xTBVeY2mjJuvAR3+aMrgjPRQKtVzrRSDwE1Kl1uEuBADKCX34g5VzKLk/ihk
lQBl8CKt3IQA5MMEICttPIY5XDw6glSVspv15tGLRxcu/+rl3/D4q9lsJtjl
1WyTA7TxBKRYfjZEO2IMTufRosxdVcoCPvEIQTaBrYlLjuWFH0Z0Y433LC3Y
occ5a3ybz7EvmjdaD9IfvudG57d6G4E12fmse+d6tT76z38XcC6TwcOdEtvj
EGL7jif/fU3x1yaDmWejNuCpEI4ilZT3AFPAwifgA9gPuGMIFAESfqDUBpw2
inWuVNY+6z4l7NkX1ApWgI/QlvuD/qDZoWMEeRskaODBlmJ4oB9HGoYxycCy
1R9OavYtT92nweIRotnn4ZkvBhqfRvc/oM8MUJIQqC00zeemWL/FutRnq8Jp
uam0BtA1yC5x8xLHS7xa9sREEjsy+ogTg4CiASQGpZVDjBMJcTDEEajEeDSM
DjxCHm/s5s96mn0W0ekF3PZ2eSR1n0qk3+/U5koXaQU9G6q6nwCXcMgWF/CF
QAVfQHGESSsmQHTcUiYi0QfH6K8YfF8iGEASnBjagPGgp4SoTdra7tAhEnFc
ZIdVhxD3h3GI1/afgcV/B/pfsnG4plP8pU7q0s76twTPsbyAL3quwKUJUIBa
4HiBvrLHNd6DFI9MqpbvAWsANifPR2iGUnA6JDiwRAcLz547FwQThihxpE5/
Bol3YSS+G0g/iuuPQLxftUHEb9HRngDvmv0O/EQ2FfyqtTg3oBGrcyvgNzje
8nMYKT8XGANvmGhzGG68DzIKc4fJNAmDHC+Gr1kKf1Q0/0Kk7qOJDl/y+vAn
mDyfwOj5E1av4MVJG/CnAW8tn7XfWL6A7xvwwO134GmycUye8+y6+9FCG7/V
kbW+eRJzxcsYlb+q1H0yqQs/852+Ehm2b2QzNpavkmkJTMHv9F4IrCqBBvzY
gOe5aS94IYDOMw7R0oH/HqRkPhJJfyiS+yl+/j3i2FXr+meQ+7wN/J5MWlKE
4xFgy/eNbE61fNF7Bc9EBDzA7sDnWRfx3rlTwYu9Met2nNmIvj1m0YeSPXzR
6fRPIHiii3LrDO49pzyNDSecdtij+XUhsdqneb7GwIvmN9wYPPb8nLHMwCyZ
WHCdull0xghIHgPBk0l/V3H8tlHzrwd9dN1ZhmA/Hg/0OyD26xTdj2Eplo1T
rNFW8xm8Bngrx8tCYNGCLwR2Dgvw/RQ8W/6NgBcCmH2ZgJd8RkmESeM3kW+8
orS9GpX9RNTxFRXG57RzP9Tr9Lra6IcxIg8kg/s4XYXXgHqNSivI6QZAqx34
VRvjJ5bvS7gdVc6Dbgt8HgEE1JRvyK2kYP55ONDzOsyv+QN3zazia5KbsIV6
+zn/UPflcKmZiVPJg8i9oF8dv2H/pDqRUXXYKhukxVFi/EQ2bwq8EAB4Sfkl
rc0kJLNRs2zR8Rm7gKs6nDN4KS7cD8xr/kf6b6mJOJK3ECzb078xV6xvBb5G
GgbPDssZprxn5Een2wIvBJgxW6CkxabMEqk4aYBrSk7DecjOWVe0TQu1Po44
kAVxZEFMZ+mYYwKtbJhkBY/mKni2fDoxPd0mAS73mqSspgmZgJYYz+YZdpGG
HVW3sT6tbxE6V8XyN4Fnh71T8DmMah13TpzTYt0QqOBrmGzj/KbG8X2hskab
Ap5lw5rnRGbkephLzjsFn30AD2IHypUThJJ9IRTnOmn5mg4XSxfwiwJ20ZCR
jHKqebZ8BQ/Nx9MmqDdMQAoOPLg+rJRSgXaVEg3T3KZoejVNhat8JrKpSRk7
rMxObPmzAL8jUPKZpgTMs+wey68ay7fpwLLR/qa1fMlr7gr4EwSK5WNOV2VE
hgJ6O3HQ3ew6Ab8rRKrm26SMl18APp0l+ErAFZ2rov3YyGczyWv2WX65J5c/
kVEiIYu3SofvmECxds/1sKQGx/l967DLKfg9hQjLpm9yeV/Ah7sFvh2BPvuv
LJz4Rj7VYZdTy59SRY37qii6S5tNOaPcFgkxCY5KbMl1ydX3hsry+02yKRnl
/y1Ezm4EkqzZMAj2Xl0WWLcFaAt+57CTdJjJD/cDfK0HhryEsdvGMiInnHYP
+Dq79jU1aMBHukebLbPkuoTRVB24AbwsSx7rPYVIXzPKJh1OdA83Wxx4nYNQ
DqGs7zJhtaFyva+KmoCPdI83duKq91iW0nn9vs0qV00hcqsSMNxry7cFzaaA
5HqA1/T71KyiVctPqig3qV/vC/hcD2QJLWsWWvKfOgKbAn5qeV+qqPhmqqiz
deJs8WVd6yyzabU6E7jJ8qUQSfcbfIlCPOuqKiH+gtKu72wby0sJWAqRcwH+
mECCD+yqMLVbpGoKEUmHzxv4UlIalEZhjVosmKT5i2OtA1rLn2kVdbYE+IOS
0uyknEp7HfUYVeQlQ65fRTZ3oxA5w2xUeaNpw18tEf99UFHWf/iLSLH8uQVf
RyBARltrDaaEEPhbbI408jURmh/TeQWf10ZtF9iRu86mAAImSi4WeLklr5ad
X/BCoOsMf/cdZ11HKJ/4HwdiMHyg0/2cYW8nG+X1IDefzxUI8P9ySP2KITj3
4PMnpqT4ozZrP3bWxq7rUlmle0tsVv6xgWkg/Bg7IxPr/2K8Nbb/CTAAF12f
5l7y6xMAAAAASUVORK5CYII=
====</pre>
Also add the field:
<pre>XSBC-Maemo-Display-Name: Photo light meter</pre>
== pushing to maemo-leste-extras ==
go to [https://github.com/maemo-leste-extras/ maemo-leste-extras] and [https://github.com/maemo-leste-extras/bugtracker/issues/new/choose open an issue] in the [https://github.com/maemo-leste-extras/bugtracker extras bugtracker] repo to request a repository.
ping <code>Wizzup</code> on <code>#maemo-leste@irc.libera.chat</code> to open you repo[s]. then try to be attentive to emails, because you may get github invite which you need to accept, otherwise it’ll time out(not sure when).
push your code to the newly opened repo in <code>maemo/beowulf</code> branch.
<code>beowulf</code> is the codename of the <code>devuan</code> release on which <code>maemo</code> is based.
<pre>$ git remote -v
origin git@github.com:norayr/msid.git (fetch)
origin git@github.com:norayr/msid.git (push)
$ git remote add maemo git@github.com:maemo-leste-extras/msid
$ git remote -v
maemo git@github.com:maemo-leste-extras/msid (fetch)
maemo git@github.com:maemo-leste-extras/msid (push)
origin git@github.com:norayr/msid.git (fetch)
origin git@github.com:norayr/msid.git (push)
$ git push maemo main
Enumerating objects: 176, done.
Counting objects: 100% (176/176), done.
Delta compression using up to 4 threads
Compressing objects: 100% (86/86), done.
Writing objects: 100% (176/176), 578.92 KiB | 4.71 MiB/s, done.
Total 176 (delta 105), reused 141 (delta 85)
remote: Resolving deltas: 100% (105/105), done.
To github.com:maemo-leste-extras/msid
* [new branch] main -> main
$ git checkout -b maemo/beowulf
Switched to a new branch 'maemo/beowulf'
$ git push maemo maemo/beowulf
Total 0 (delta 0), reused 0 (delta 0)
remote:
remote: Create a pull request for 'maemo/beowulf' on GitHub by visiting:
remote: https://github.com/maemo-leste-extras/msid/pull/new/maemo/beowulf
remote:
To github.com:maemo-leste-extras/msid
* [new branch] maemo/beowulf -> maemo/beowulf
$
</pre>
the repo needs to be tagged.
<pre>git tag 0.0.1</pre>
and then the tag has to be pushed:
<pre>git push maemo 0.0.1</pre>
in case you did some changes but don’t want to bump a tag/changelog version, you need to delete the tag locally:
<pre>git tag -d 0.0.1
git push maemo :refs/tags/0.0.1</pre>
== phoenix ==
login https://phoenix.maemo.org/
the build sequence is:
* source
* binaries
* repos
find your project. let’s say https://phoenix.maemo.org/job/msid-source/
it has to have ‘build with parameters’ button on the left.
if everything is right it’ll trigger build of binaries https://phoenix.maemo.org/job/msid-binaries/
that link, for instance, will contain <code>arm64</code> build console output: https://phoenix.maemo.org/job/msid-binaries/architecture=arm64,label=arm64/1/console
== wiki ==
add a wiki page about the package [https://leste.maemo.org/Category:Extras here].
links:
https://leste.maemo.org/Development https://leste.maemo.org/Development/Porting_Packages https://leste.maemo.org/Development/Building_Packages https://leste.maemo.org/Development/Modified_Software
If you import a package, please try to preserve history if possible (converting from svn -> git is not too hard)
= Forking Debian/Devuan packages =
(TODO - Describe what branches need to be set up, Jenkins integration, etc)
= Preparing package for the repositories =
See https://leste.maemo.org/Development/Building_Packages
cf9eefb886d021b017eeedaf5f6af742db8527b9
File:Maemo-cli icon appman sample v002.png
6
206
1421
2022-10-20T21:04:00Z
Norayr
36
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Maemo-term icon v002 a001 48p.png
6
207
1422
2022-10-20T21:06:15Z
Norayr
36
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Development/Tasks
0
92
1426
1013
2022-11-14T10:32:32Z
Wizzup
4
wikitext
text/x-wiki
== Applications ==
This page lists some of the more important open issues for Maemo Leste. We have a complete list here, on github, but it's a bit hard to navigate: https://github.com/maemo-leste/bugtracker/issues
{| class="wikitable"
! Task
! Description
! Task Status
! User(s) working on task
! GH Bug
! URLs
! Notes
|-
| Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. <b>Funding is available for this task</b> || WIP || || https://github.com/maemo-leste/bugtracker/issues/261 || || Parayzd is working on this
|-
| Qt5 of theme and hildon widgets || Significant task || MOSTLY || [[User:freemangordon]] made a start, [[User:Wizzup]] picked up some of the work || || https://github.com/maemo-leste/qtstyleplugins/ + https://github.com/maemo-leste/qt-platform-maemo/tree/qmenu || Mainly usable already!
|-
| libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || WIP || || || ||
|-
| Extend ofono droid4 modem support || This is done and should be stable. || DONE || Tony, Pavel, [[User:freemangordon]] and [[User:Wizzup]] are working on this || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 ||
|-
| Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || https://github.com/maemo-leste/bugtracker/issues/256 || https://github.com/maemo-leste/connui-cellular ||
|-
| Test phone calls on the N900 || Figure out cmtspeechdata magic || WIP? || [[User:Wizzup]], [[User:Sicelo]], Pavel || || ||
|-
| Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || WIP || ? || || ||
|-
|"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || WIP || [[User:Parazyd]] || || ||
|-
| Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || WIP || [[User:Wizzup]], tmlind || || || Actually works quite well on the droid4. Let's do the same for Droid4. :)
|-
| osso-abook || We need osso-abook in place for all applications that need contacts (phone ui, sms ui, email ui, more) || WIP || [[User:freemangordon]] || ||https://github.com/maemo-leste/osso-abook || Making good progress
|-
| Port all packages for maemo-leste to debhelper 9 or higher || Requires for us to migrate to a newer Debian (Buster) / Devuan (Beowulf) || DONE || [[User:Parazyd]], [[User:Wizzup]], [[User:meridion]], [[User:Spinal84]] || https://github.com/maemo-leste/bugtracker/issues/234 || ||
|-
| Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || DONE || [[User:ThomasAH]], Spinal84 || https://github.com/maemo-leste/ke-recv/pull/2 ; https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || ke-recv part for slide monitoring is in place, we just need live keyboard-attached monitoring now. https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda). mer-core (sailfish/nemomobile) has keyboard monitoring integrated into mce, so we could also look at (using) that
|-
| Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 ? || *MAYBE* Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || DONE (by staying at clutter 0.8) || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches ||
|-
| Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || DONE || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ ||
|-
| hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || DONE || [[User:minicom]], [[User:Wizzup]], [[User:Parazyd]] || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc.
|-
| Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || DONE || || || ||
|-
| Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || DONE || [[User:freemangordon]] || || ||
|-
| Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || DONE || [[User:Wizzup]], [[User:Sicelo]] || || ||
|-
|}
9c65a63499330e102bd874f6550ead1ba123faf4
1427
1426
2022-11-14T10:33:01Z
Wizzup
4
wikitext
text/x-wiki
== Applications ==
This page lists some of the more important open issues for Maemo Leste. We have a complete list here, on github, but it's a bit hard to navigate: https://github.com/maemo-leste/bugtracker/issues
{| class="wikitable"
! Task
! Description
! Task Status
! User(s) working on task
! GH Bug
! URLs
! Notes
|-
| Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. <b>Funding is available for this task</b> || WIP || || https://github.com/maemo-leste/bugtracker/issues/261 || || Parayzd is working on this
|-
| Qt5 of theme and hildon widgets || Significant task || MOSTLY || [[User:freemangordon]] made a start, [[User:Wizzup]] picked up some of the work || || https://github.com/maemo-leste/qtstyleplugins/ + https://github.com/maemo-leste/qt-platform-maemo/tree/qmenu || Mainly usable already!
|-
| libicd-network-ofono should set up ipv4 upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || DONE || || || ||
|-
| Extend ofono droid4 modem support || This is done and should be stable. || DONE || Tony, Pavel, [[User:freemangordon]] and [[User:Wizzup]] are working on this || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 ||
|-
| Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || https://github.com/maemo-leste/bugtracker/issues/256 || https://github.com/maemo-leste/connui-cellular ||
|-
| Test phone calls on the N900 || Figure out cmtspeechdata magic || WIP? || [[User:Wizzup]], [[User:Sicelo]], Pavel || || ||
|-
| Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || WIP || ? || || ||
|-
|"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || WIP || [[User:Parazyd]] || || ||
|-
| Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || WIP || [[User:Wizzup]], tmlind || || || Actually works quite well on the droid4. Let's do the same for Droid4. :)
|-
| osso-abook || We need osso-abook in place for all applications that need contacts (phone ui, sms ui, email ui, more) || WIP || [[User:freemangordon]] || ||https://github.com/maemo-leste/osso-abook || Making good progress
|-
| Port all packages for maemo-leste to debhelper 9 or higher || Requires for us to migrate to a newer Debian (Buster) / Devuan (Beowulf) || DONE || [[User:Parazyd]], [[User:Wizzup]], [[User:meridion]], [[User:Spinal84]] || https://github.com/maemo-leste/bugtracker/issues/234 || ||
|-
| Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || DONE || [[User:ThomasAH]], Spinal84 || https://github.com/maemo-leste/ke-recv/pull/2 ; https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || ke-recv part for slide monitoring is in place, we just need live keyboard-attached monitoring now. https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda). mer-core (sailfish/nemomobile) has keyboard monitoring integrated into mce, so we could also look at (using) that
|-
| Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 ? || *MAYBE* Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || DONE (by staying at clutter 0.8) || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches ||
|-
| Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || DONE || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ ||
|-
| hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || DONE || [[User:minicom]], [[User:Wizzup]], [[User:Parazyd]] || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc.
|-
| Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || DONE || || || ||
|-
| Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || DONE || [[User:freemangordon]] || || ||
|-
| Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || DONE || [[User:Wizzup]], [[User:Sicelo]] || || ||
|-
|}
9d9397e5234587b1128ed39f332040abdf4d1d1c
1428
1427
2022-11-14T10:33:51Z
Wizzup
4
wikitext
text/x-wiki
== Applications ==
This page lists some of the more important open issues for Maemo Leste. We have a complete list here, on github, but it's a bit hard to navigate: https://github.com/maemo-leste/bugtracker/issues
{| class="wikitable"
! Task
! Description
! Task Status
! User(s) working on task
! GH Bug
! URLs
! Notes
|-
| Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. <b>Funding is available for this task</b> || WIP || || https://github.com/maemo-leste/bugtracker/issues/261 || || Parayzd is working on this
|-
| Qt5 of theme and hildon widgets || Significant task || MOSTLY || [[User:freemangordon]] made a start, [[User:Wizzup]] picked up some of the work || || https://github.com/maemo-leste/qtstyleplugins/ + https://github.com/maemo-leste/qt-platform-maemo/tree/qmenu || Mainly usable already!
|-
| libicd-network-ofono should set up ipv4 upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || DONE || || || ||
|-
| Extend ofono droid4 modem support || This is done and should be stable. || DONE || Tony, Pavel, [[User:freemangordon]] and [[User:Wizzup]] are working on this || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 ||
|-
| Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || https://github.com/maemo-leste/bugtracker/issues/256 || https://github.com/maemo-leste/connui-cellular ||
|-
| Test phone calls on the N900 || Figure out cmtspeechdata magic || WIP? || [[User:Wizzup]], [[User:Sicelo]], Pavel || || ||
|-
| Create simple phone UI to test dialing/accepting phone calls using Telepathy || Can use sphone, which works for calls right now, just not using Telepathy. || WIP/MOSTLY || ? || || ||
|-
|"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || WIP || [[User:Parazyd]] || || ||
|-
| Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || WIP || [[User:Wizzup]], tmlind || || || Actually works quite well on the droid4. Let's do the same for Droid4. :)
|-
| osso-abook || We need osso-abook in place for all applications that need contacts (phone ui, sms ui, email ui, more) || WIP || [[User:freemangordon]] || ||https://github.com/maemo-leste/osso-abook || Making good progress
|-
| Port all packages for maemo-leste to debhelper 9 or higher || Requires for us to migrate to a newer Debian (Buster) / Devuan (Beowulf) || DONE || [[User:Parazyd]], [[User:Wizzup]], [[User:meridion]], [[User:Spinal84]] || https://github.com/maemo-leste/bugtracker/issues/234 || ||
|-
| Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || DONE || [[User:ThomasAH]], Spinal84 || https://github.com/maemo-leste/ke-recv/pull/2 ; https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || ke-recv part for slide monitoring is in place, we just need live keyboard-attached monitoring now. https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda). mer-core (sailfish/nemomobile) has keyboard monitoring integrated into mce, so we could also look at (using) that
|-
| Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 ? || *MAYBE* Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || DONE (by staying at clutter 0.8) || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches ||
|-
| Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || DONE || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ ||
|-
| hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || DONE || [[User:minicom]], [[User:Wizzup]], [[User:Parazyd]] || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc.
|-
| Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || DONE || || || ||
|-
| Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || DONE || [[User:freemangordon]] || || ||
|-
| Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || DONE || [[User:Wizzup]], [[User:Sicelo]] || || ||
|-
|}
bdf46cd7762c94a6e57c5bfa46464e118ed97d1a
1429
1428
2022-11-14T10:37:35Z
Wizzup
4
wikitext
text/x-wiki
== Applications ==
This page lists some of the more important open issues for Maemo Leste. We have a complete list here, on github, but it's a bit hard to navigate: https://github.com/maemo-leste/bugtracker/issues
{| class="wikitable"
! Task
! Description
! Task Status
! User(s) working on task
! GH Bug
! URLs
! Notes
|-
| Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. <b>Funding is available for this task</b> || WIP || || https://github.com/maemo-leste/bugtracker/issues/261 || || Parayzd is working on this
|-
| Qt5 of theme and hildon widgets || Significant task || MOSTLY || [[User:freemangordon]] made a start, [[User:Wizzup]] picked up some of the work || || https://github.com/maemo-leste/qtstyleplugins/ + https://github.com/maemo-leste/qt-platform-maemo/tree/qmenu || Mainly usable already!
|-
| libicd-network-ofono should set up ipv4 upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || DONE || || || ||
|-
| Extend ofono droid4 modem support || This is done and should be stable. || DONE || Tony, Pavel, [[User:freemangordon]] and [[User:Wizzup]] are working on this || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 ||
|-
| Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || https://github.com/maemo-leste/bugtracker/issues/256 || https://github.com/maemo-leste/connui-cellular ||
|-
| Test phone calls on the N900 || Figure out cmtspeechdata magic || WIP? || [[User:Wizzup]], [[User:Sicelo]], Pavel || || ||
|-
| Create simple phone UI to test dialing/accepting phone calls using Telepathy || Can use sphone, which works for calls right now, just not using Telepathy. || WIP/MOSTLY || ? || || ||
|-
|"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || WIP || [[User:Parazyd]] || || ||
|-
| Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || WIP || [[User:Wizzup]], tmlind || || || Actually works quite well on the droid4. Let's do the same for Droid4. :)
|-
| osso-abook || We need osso-abook in place for all applications that need contacts (phone ui, sms ui, email ui, more) || MOSTLY DONE || [[User:freemangordon]] || ||https://github.com/maemo-leste/osso-abook || Making good progress
|-
| Port all packages for maemo-leste to debhelper 9 or higher || Requires for us to migrate to a newer Debian (Buster) / Devuan (Beowulf) || DONE || [[User:Parazyd]], [[User:Wizzup]], [[User:meridion]], [[User:Spinal84]] || https://github.com/maemo-leste/bugtracker/issues/234 || ||
|-
| Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || DONE || [[User:ThomasAH]], Spinal84 || https://github.com/maemo-leste/ke-recv/pull/2 ; https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || ke-recv part for slide monitoring is in place, we just need live keyboard-attached monitoring now. https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda). mer-core (sailfish/nemomobile) has keyboard monitoring integrated into mce, so we could also look at (using) that
|-
| Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 ? || *MAYBE* Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || DONE (by staying at clutter 0.8) || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches ||
|-
| Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || DONE || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ ||
|-
| hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || DONE || [[User:minicom]], [[User:Wizzup]], [[User:Parazyd]] || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc.
|-
| Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || DONE || || || ||
|-
| Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || DONE || [[User:freemangordon]] || || ||
|-
| Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || DONE || [[User:Wizzup]], [[User:Sicelo]] || || ||
|-
|}
0457b2f8a819ccf1fb769d89bf7cdadb0fefe119
File:XT910Lockscreen.jpg
6
208
1430
2022-12-04T20:09:38Z
Uvos
39
wikitext
text/x-wiki
A European XT910 running Maemo leste
f61481747615335d90d93a3ee9208165dbe93fe2
Motorola Razr (2011)
0
209
1431
2022-12-04T20:10:24Z
Uvos
39
Created page with "{{Infobox Device |image=[[File:XT910Lockscreen.jpg|250px]] |manufacturer=Motorola |codename=Spyder XT910, XT912 |dimensions=130x68.9x7.1mm |release_date=11-11-11 |soc=TI OMAP4..."
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:XT910Lockscreen.jpg|250px]]
|manufacturer=Motorola
|codename=Spyder XT910, XT912
|dimensions=130x68.9x7.1mm
|release_date=11-11-11
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4.3"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=
|other=
|category=Supported
|sw_kernel=6.1
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Yes
|sw_usb_host=Yes
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=Yes
|sw_tv=
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)
|sw_vibration=Unkown
|sw_audio=Unkown
|sw_calls=Unkown
|sw_sms=Unkown
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=Unkown
|sw_4g=No
|sw_bluetooth=Yes, [[#Bluetooth|see notes]]
|sw_fmtx=No
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=No
|sw_compass=No
|sw_gyro= No
|sw_proximity=Yes
|sw_als=No
|sw_gps=Unkown
|sw_agps=No
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=120mW
|sw_standbytime=
}}
== Installation ==
Hardware requirements:
* A Razr or Droid Razr or Droid Razr MAXX with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* get allow-mbmloader-flashing-mbm.bin for your device (xt910 or xt912) from an android update zip
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-xt910-16-mmcblk1p8-boots-mmcblk1p13-kexecboot.bin
# droid4-kexecboot.img
Installation:
# Create a working directory with above mentioned files in it
# Power off the Razr and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
=== Setting up kexecboot ===
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-xt910-16-mmcblk1p8-boots-mmcblk1p13-kexecboot.bin
sudo fastboot reboot
</pre>
The device should reboot and show kexecboot menu for a few seconds before it boots to Android.
=== Install Maemo Leste to the sdcard ===
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-razr-$DATE.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into the Razr. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab the latest image from https://phoenix.maemo.org/view/Images/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Razr is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Razr will then reboot.
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Razr, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
== Bluetooth ==
Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver (hci_uart) manually, AFTER wifi module loaded
Using a bluetooth headset:
sudo apt install pulseaudio-module-bluetooth blueman bluez
sudo modprobe hci_uart
pactl load-module module-bluetooth-discover
blueman-manager
Pair & trust your device in blueman, connect audiosink. You can close blueman now.
== Additional Tips ==
==== Using a battery without temperature sensor ====
Modprobe the pmic driver as follows:
<pre>
cpcap-battery ignore_temperature_probe=1
</pre>
==== Flashing the boot logo ====
More info: https://github.com/xsetiadi/droid4-kexecboot/blob/master/LOGO
logos can be flashed via fastboot flash logo.bin logo.bin
==== HDMI ====
Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier.
<pre>
xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off
</pre>
Return to internal touchscreen display.
<pre>
xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off
</pre>
== Using a configured Leste sdcard in a different Razr ==
A configured Razr Leste installation will have a unique wlan firmware calibration. The wifi calibration script requires a system set to stock settings to calibrate-from. It cannot just be re-run on an already calibrated system.
To recalibrate the wifi firmware on a different Razr, you must reset the FEM parameters to stock settings on the new device, then recalibrate.
If you can get the device online (usb networking or moving close to the WLAN AP) this can be done with.
apt reinstall firmware-ti-connectivity
If not, you can download the firmware-ti-connectivity_[version]_all.deb on another Leste device
apt download firmware-ti-connectivity
Then copy the .deb to your new device and install that (as root) with
dpkg -i firmware-ti-connectivity_[version]_all.deb
Then (as root) re-calibrate the wifi chip by running
/usr/bin/maserati-calibrate
Then reboot.
[[Category:Device]]
c8ad8a48c47afeaff2272c8da30ac1ddc900ac95
1432
1431
2022-12-04T20:11:12Z
Uvos
39
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:XT910Lockscreen.jpg|250px]]
|manufacturer=Motorola
|codename=Spyder XT910, XT912
|dimensions=130x68.9x7.1mm
|release_date=11-11-11
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4.3"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=
|other=
|category=Supported
|sw_kernel=6.1
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Yes
|sw_usb_host=Yes
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=Yes
|sw_tv=
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)
|sw_vibration=Unkown
|sw_audio=Unkown
|sw_calls=Unkown
|sw_sms=Unkown
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=Unkown
|sw_4g=No
|sw_bluetooth=Yes, [[#Bluetooth|see notes]]
|sw_fmtx=No
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=No
|sw_compass=No
|sw_gyro= No
|sw_proximity=Yes
|sw_als=No
|sw_gps=Unkown
|sw_agps=No
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=Unkown
|sw_standbytime=
}}
== Installation ==
Hardware requirements:
* A Razr or Droid Razr or Droid Razr MAXX with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* get allow-mbmloader-flashing-mbm.bin for your device (xt910 or xt912) from an android update zip
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-xt910-16-mmcblk1p8-boots-mmcblk1p13-kexecboot.bin
# droid4-kexecboot.img
Installation:
# Create a working directory with above mentioned files in it
# Power off the Razr and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
=== Setting up kexecboot ===
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-xt910-16-mmcblk1p8-boots-mmcblk1p13-kexecboot.bin
sudo fastboot reboot
</pre>
The device should reboot and show kexecboot menu for a few seconds before it boots to Android.
=== Install Maemo Leste to the sdcard ===
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-razr-$DATE.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into the Razr. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab the latest image from https://phoenix.maemo.org/view/Images/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Razr is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Razr will then reboot.
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Razr, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
== Bluetooth ==
Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver (hci_uart) manually, AFTER wifi module loaded
Using a bluetooth headset:
sudo apt install pulseaudio-module-bluetooth blueman bluez
sudo modprobe hci_uart
pactl load-module module-bluetooth-discover
blueman-manager
Pair & trust your device in blueman, connect audiosink. You can close blueman now.
== Additional Tips ==
==== Using a battery without temperature sensor ====
Modprobe the pmic driver as follows:
<pre>
cpcap-battery ignore_temperature_probe=1
</pre>
==== Flashing the boot logo ====
More info: https://github.com/xsetiadi/droid4-kexecboot/blob/master/LOGO
logos can be flashed via fastboot flash logo.bin logo.bin
==== HDMI ====
Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier.
<pre>
xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off
</pre>
Return to internal touchscreen display.
<pre>
xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off
</pre>
== Using a configured Leste sdcard in a different Razr ==
A configured Razr Leste installation will have a unique wlan firmware calibration. The wifi calibration script requires a system set to stock settings to calibrate-from. It cannot just be re-run on an already calibrated system.
To recalibrate the wifi firmware on a different Razr, you must reset the FEM parameters to stock settings on the new device, then recalibrate.
If you can get the device online (usb networking or moving close to the WLAN AP) this can be done with.
apt reinstall firmware-ti-connectivity
If not, you can download the firmware-ti-connectivity_[version]_all.deb on another Leste device
apt download firmware-ti-connectivity
Then copy the .deb to your new device and install that (as root) with
dpkg -i firmware-ti-connectivity_[version]_all.deb
Then (as root) re-calibrate the wifi chip by running
/usr/bin/maserati-calibrate
Then reboot.
[[Category:Device]]
b07574e6a8b1b56d62e952c4455c5d6f764e28f0
1433
1432
2022-12-04T20:11:57Z
Uvos
39
Uvos moved page [[Razr]] to [[Motorola Razr (2011)]]
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:XT910Lockscreen.jpg|250px]]
|manufacturer=Motorola
|codename=Spyder XT910, XT912
|dimensions=130x68.9x7.1mm
|release_date=11-11-11
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4.3"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=
|other=
|category=Supported
|sw_kernel=6.1
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Yes
|sw_usb_host=Yes
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=Yes
|sw_tv=
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)
|sw_vibration=Unkown
|sw_audio=Unkown
|sw_calls=Unkown
|sw_sms=Unkown
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=Unkown
|sw_4g=No
|sw_bluetooth=Yes, [[#Bluetooth|see notes]]
|sw_fmtx=No
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=No
|sw_compass=No
|sw_gyro= No
|sw_proximity=Yes
|sw_als=No
|sw_gps=Unkown
|sw_agps=No
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=Unkown
|sw_standbytime=
}}
== Installation ==
Hardware requirements:
* A Razr or Droid Razr or Droid Razr MAXX with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* get allow-mbmloader-flashing-mbm.bin for your device (xt910 or xt912) from an android update zip
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-xt910-16-mmcblk1p8-boots-mmcblk1p13-kexecboot.bin
# droid4-kexecboot.img
Installation:
# Create a working directory with above mentioned files in it
# Power off the Razr and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
=== Setting up kexecboot ===
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-xt910-16-mmcblk1p8-boots-mmcblk1p13-kexecboot.bin
sudo fastboot reboot
</pre>
The device should reboot and show kexecboot menu for a few seconds before it boots to Android.
=== Install Maemo Leste to the sdcard ===
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-razr-$DATE.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into the Razr. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab the latest image from https://phoenix.maemo.org/view/Images/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Razr is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Razr will then reboot.
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Razr, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
== Bluetooth ==
Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver (hci_uart) manually, AFTER wifi module loaded
Using a bluetooth headset:
sudo apt install pulseaudio-module-bluetooth blueman bluez
sudo modprobe hci_uart
pactl load-module module-bluetooth-discover
blueman-manager
Pair & trust your device in blueman, connect audiosink. You can close blueman now.
== Additional Tips ==
==== Using a battery without temperature sensor ====
Modprobe the pmic driver as follows:
<pre>
cpcap-battery ignore_temperature_probe=1
</pre>
==== Flashing the boot logo ====
More info: https://github.com/xsetiadi/droid4-kexecboot/blob/master/LOGO
logos can be flashed via fastboot flash logo.bin logo.bin
==== HDMI ====
Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier.
<pre>
xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off
</pre>
Return to internal touchscreen display.
<pre>
xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off
</pre>
== Using a configured Leste sdcard in a different Razr ==
A configured Razr Leste installation will have a unique wlan firmware calibration. The wifi calibration script requires a system set to stock settings to calibrate-from. It cannot just be re-run on an already calibrated system.
To recalibrate the wifi firmware on a different Razr, you must reset the FEM parameters to stock settings on the new device, then recalibrate.
If you can get the device online (usb networking or moving close to the WLAN AP) this can be done with.
apt reinstall firmware-ti-connectivity
If not, you can download the firmware-ti-connectivity_[version]_all.deb on another Leste device
apt download firmware-ti-connectivity
Then copy the .deb to your new device and install that (as root) with
dpkg -i firmware-ti-connectivity_[version]_all.deb
Then (as root) re-calibrate the wifi chip by running
/usr/bin/maserati-calibrate
Then reboot.
[[Category:Device]]
b07574e6a8b1b56d62e952c4455c5d6f764e28f0
1435
1433
2022-12-04T20:18:29Z
Uvos
39
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:XT910Lockscreen.jpg|250px]]
|manufacturer=Motorola
|codename=Spyder XT910, XT912
|dimensions=130x68.9x7.1mm
|release_date=11-11-11
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4.3"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=
|other=
|category=unsupported
|sw_kernel=6.1
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Yes
|sw_usb_host=Yes
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=Yes
|sw_tv=
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)
|sw_vibration=Unkown
|sw_audio=Unkown
|sw_calls=Unkown
|sw_sms=Unkown
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=Unkown
|sw_4g=No
|sw_bluetooth=Yes, [[#Bluetooth|see notes]]
|sw_fmtx=No
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=No
|sw_compass=No
|sw_gyro= No
|sw_proximity=Yes
|sw_als=No
|sw_gps=Unkown
|sw_agps=No
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=Unkown
|sw_standbytime=
}}
== Installation ==
Hardware requirements:
* A Razr or Droid Razr or Droid Razr MAXX with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* get allow-mbmloader-flashing-mbm.bin for your device (xt910 or xt912) from an android update zip
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-xt910-16-mmcblk1p8-boots-mmcblk1p13-kexecboot.bin
# droid4-kexecboot.img
Installation:
# Create a working directory with above mentioned files in it
# Power off the Razr and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
=== Setting up kexecboot ===
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-xt910-16-mmcblk1p8-boots-mmcblk1p13-kexecboot.bin
sudo fastboot reboot
</pre>
The device should reboot and show kexecboot menu for a few seconds before it boots to Android.
=== Install Maemo Leste to the sdcard ===
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-razr-$DATE.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into the Razr. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab the latest image from https://phoenix.maemo.org/view/Images/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Razr is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Razr will then reboot.
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Razr, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
== Bluetooth ==
Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver (hci_uart) manually, AFTER wifi module loaded
Using a bluetooth headset:
sudo apt install pulseaudio-module-bluetooth blueman bluez
sudo modprobe hci_uart
pactl load-module module-bluetooth-discover
blueman-manager
Pair & trust your device in blueman, connect audiosink. You can close blueman now.
== Additional Tips ==
==== Using a battery without temperature sensor ====
Modprobe the pmic driver as follows:
<pre>
cpcap-battery ignore_temperature_probe=1
</pre>
==== Flashing the boot logo ====
More info: https://github.com/xsetiadi/droid4-kexecboot/blob/master/LOGO
logos can be flashed via fastboot flash logo.bin logo.bin
==== HDMI ====
Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier.
<pre>
xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off
</pre>
Return to internal touchscreen display.
<pre>
xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off
</pre>
== Using a configured Leste sdcard in a different Razr ==
A configured Razr Leste installation will have a unique wlan firmware calibration. The wifi calibration script requires a system set to stock settings to calibrate-from. It cannot just be re-run on an already calibrated system.
To recalibrate the wifi firmware on a different Razr, you must reset the FEM parameters to stock settings on the new device, then recalibrate.
If you can get the device online (usb networking or moving close to the WLAN AP) this can be done with.
apt reinstall firmware-ti-connectivity
If not, you can download the firmware-ti-connectivity_[version]_all.deb on another Leste device
apt download firmware-ti-connectivity
Then copy the .deb to your new device and install that (as root) with
dpkg -i firmware-ti-connectivity_[version]_all.deb
Then (as root) re-calibrate the wifi chip by running
/usr/bin/maserati-calibrate
Then reboot.
[[Category:Device]]
65c737390ee7c32904806f91f284248e26505825
Razr
0
210
1434
2022-12-04T20:11:59Z
Uvos
39
Uvos moved page [[Razr]] to [[Motorola Razr (2011)]]
wikitext
text/x-wiki
#REDIRECT [[Motorola Razr (2011)]]
b2e0d605bf41a953c8a43dc9e48925183e6b5c57
PinePhone
0
93
1436
1366
2023-01-15T18:48:33Z
Rafael2k
54
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro.
== Notes ==
Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project.
== Status ==
Currently, most things work, for example you can:
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
=== More Information ===
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to on. You can check by tapping the top left corner->"Settings"->"Text input"-> ensure the "Use virtual keyboard" option is checked. You may also want to change the keyboard layout by changing the dictionary settings.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* '''VoLTE should work out-of-the-box.''' If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
== Installation ==
Unlike most phones, it's pretty simple.
=== SD Card Installation ===
==== Prepare the SD card ====
Create a new msdos partition table using fdisk
$ sudo fdisk /dev/''SDCARD''
# press 'p' to view current table
# press 'o' to erase and make a new table
# press 'w' to write changes and quit
==== Write the image to an SD-Card. ====
Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here].
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE''
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE''
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
$ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56
Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image:
$ unxz maemo-leste-*-arm64-pinephone-*.img.xz
Write the image to microSD. '''''Be very careful with this step''''' to select the correct device.
$ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync
Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.
<small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one. You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small>
=== eMMC Installation ===
''Note: Currently '''not working'''''
'''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''.
==== Preparing the .img file for eMMC boot ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.''
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install Using Tow-Boot ====
If you [https://tow-boot.org/devices/pine64-pinephoneA64.html flashed tow-boot to the PinePhone] the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode.
The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc.
==== Install Using JumpDrive ====
You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.
The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card.
[https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.]
==== Install from the booted microSD ====
# Flash Maemo Leste to the microSD card
# Insert microSD card and boot the phone
# Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download.
# Extract the image file so that it only ends in ".img"
# Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct.
# Turn off phone, remove microSD card and then turn on the phone.
== Post-Installation ==
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet.
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Other option is to use "cam" to capture to DNG. Example:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/frame-#.dng --capture=10
And then convert to .ppm (for .tiff use "-T" cmd line parameter). Eg:
$ dcraw frame-cam0-stream0-000001.dng
Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with:
$ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
=== Installing apps ===
* Apps can be installed just as on any Devuan system with:
$ sudo apt install ''package-name''
* There is also the app store.
=== Launching apps ===
This works for any app. Say for instance, you want to run Iceweasel/Firefox:
* Launch apps from the desktop
* Launch apps from your console:
$ iceweasel &
* Install a universal app launcher that you can run from desktop:
$ sudo apt install desktop-cmd-exec
=== Make apps show up on desktop ===
Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples])
To view a list of currently installed apps, do:
$ sudo apt list --installed | less
This should help you figure out for which apps to configure .desktop icons. A benefit with all this is that you can decide which apps you want to show or hide.
=== Unhide the keyboard ===
The virtual keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar in a web browser like Firefox). This will be fixed in a future release (image tested: 20220731).
=== Note about Calculator ===
The default GUI calculator works (08/15/2022) but you won't see the numbers appear on screen until after you touch the next key. It should be used in landscape mode for best results, as there are additional display issues in portrait mode.
=== Time zone / World Clock ===
Currently (06/15/2022) the interface to the default GUI clock has a few bugs but the workaround is to:
* Go to Settings > Date and Time > and adjust time zone and date and time there. This also has some bugs, but only in portrait mode.
* Or just use the console:
$ sudo date -s HH:MM
$ sudo date -s YYYYMMDD
$ sudo ln -s /usr/share/zoneinfo/YOURREGION/YOURCITY /etc/localtime
=== Customize the Keyboard ===
TODO: write this
=== More Tips & Tricks ===
Visit [https://leste.maemo.org/Tricks '''this page'''] for more general advice on customizing Maemo on your PinePhone.
[[Category:Device]]
8109ee097331391bf833e5f25a3b86dff1bf0f22
1437
1436
2023-01-15T18:49:05Z
Rafael2k
54
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro.
== Notes ==
Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project.
== Status ==
Currently, most things work, for example you can:
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
=== More Information ===
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to on. You can check by tapping the top left corner->"Settings"->"Text input"-> ensure the "Use virtual keyboard" option is checked. You may also want to change the keyboard layout by changing the dictionary settings.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* '''VoLTE should work out-of-the-box.''' If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
== Installation ==
Unlike most phones, it's pretty simple.
=== SD Card Installation ===
==== Prepare the SD card ====
Create a new msdos partition table using fdisk
$ sudo fdisk /dev/''SDCARD''
# press 'p' to view current table
# press 'o' to erase and make a new table
# press 'w' to write changes and quit
==== Write the image to an SD-Card. ====
Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here].
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE''
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE''
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
$ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56
Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image:
$ unxz maemo-leste-*-arm64-pinephone-*.img.xz
Write the image to microSD. '''''Be very careful with this step''''' to select the correct device.
$ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync
Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.
<small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one. You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small>
=== eMMC Installation ===
''Note: Currently '''not working'''''
'''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''.
==== Preparing the .img file for eMMC boot ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.''
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install Using Tow-Boot ====
If you [https://tow-boot.org/devices/pine64-pinephoneA64.html flashed tow-boot to the PinePhone] the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode.
The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc.
==== Install Using JumpDrive ====
You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.
The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card.
[https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.]
==== Install from the booted microSD ====
# Flash Maemo Leste to the microSD card
# Insert microSD card and boot the phone
# Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download.
# Extract the image file so that it only ends in ".img"
# Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct.
# Turn off phone, remove microSD card and then turn on the phone.
== Post-Installation ==
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet.
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Other option is to use "cam" to capture to DNG. Example:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/frame-#.dng --capture=10
And then convert to .ppm (for .tiff use "-T" cmd line parameter). Eg:
$ dcraw frame-cam0-stream0-000001.dng
Also the graphical tool "qcam" should work, but it has some color space conversion bugs. Run it with:
$ qcam -r gles -spixelformat=SBGGR8,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
=== Installing apps ===
* Apps can be installed just as on any Devuan system with:
$ sudo apt install ''package-name''
* There is also the app store.
=== Launching apps ===
This works for any app. Say for instance, you want to run Iceweasel/Firefox:
* Launch apps from the desktop
* Launch apps from your console:
$ iceweasel &
* Install a universal app launcher that you can run from desktop:
$ sudo apt install desktop-cmd-exec
=== Make apps show up on desktop ===
Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples])
To view a list of currently installed apps, do:
$ sudo apt list --installed | less
This should help you figure out for which apps to configure .desktop icons. A benefit with all this is that you can decide which apps you want to show or hide.
=== Unhide the keyboard ===
The virtual keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar in a web browser like Firefox). This will be fixed in a future release (image tested: 20220731).
=== Note about Calculator ===
The default GUI calculator works (08/15/2022) but you won't see the numbers appear on screen until after you touch the next key. It should be used in landscape mode for best results, as there are additional display issues in portrait mode.
=== Time zone / World Clock ===
Currently (06/15/2022) the interface to the default GUI clock has a few bugs but the workaround is to:
* Go to Settings > Date and Time > and adjust time zone and date and time there. This also has some bugs, but only in portrait mode.
* Or just use the console:
$ sudo date -s HH:MM
$ sudo date -s YYYYMMDD
$ sudo ln -s /usr/share/zoneinfo/YOURREGION/YOURCITY /etc/localtime
=== Customize the Keyboard ===
TODO: write this
=== More Tips & Tricks ===
Visit [https://leste.maemo.org/Tricks '''this page'''] for more general advice on customizing Maemo on your PinePhone.
[[Category:Device]]
7175e0ae1254c3029927a9028346bfdc91c633b2
1438
1437
2023-01-16T07:19:17Z
Rafael2k
54
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro.
== Notes ==
Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project.
== Status ==
Currently, most things work, for example you can:
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
=== More Information ===
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to on. You can check by tapping the top left corner->"Settings"->"Text input"-> ensure the "Use virtual keyboard" option is checked. You may also want to change the keyboard layout by changing the dictionary settings.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* '''VoLTE should work out-of-the-box.''' If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
== Installation ==
Unlike most phones, it's pretty simple.
=== SD Card Installation ===
==== Prepare the SD card ====
Create a new msdos partition table using fdisk
$ sudo fdisk /dev/''SDCARD''
# press 'p' to view current table
# press 'o' to erase and make a new table
# press 'w' to write changes and quit
==== Write the image to an SD-Card. ====
Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here].
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE''
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE''
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
$ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56
Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image:
$ unxz maemo-leste-*-arm64-pinephone-*.img.xz
Write the image to microSD. '''''Be very careful with this step''''' to select the correct device.
$ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync
Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.
<small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one. You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small>
=== eMMC Installation ===
''Note: Currently '''not working'''''
'''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''.
==== Preparing the .img file for eMMC boot ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.''
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install Using Tow-Boot ====
If you [https://tow-boot.org/devices/pine64-pinephoneA64.html flashed tow-boot to the PinePhone] the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode.
The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc.
==== Install Using JumpDrive ====
You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.
The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card.
[https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.]
==== Install from the booted microSD ====
# Flash Maemo Leste to the microSD card
# Insert microSD card and boot the phone
# Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download.
# Extract the image file so that it only ends in ".img"
# Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct.
# Turn off phone, remove microSD card and then turn on the phone.
== Post-Installation ==
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet.
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Other option is to use "cam" to capture to DNG. Example:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/frame-#.dng --capture=10
And then convert to .ppm (for .tiff use "-T" cmd line parameter). Eg:
$ dcraw frame-cam0-stream0-000001.dng
Also the graphical tool "qcam" is working! Run it with:
$ qcam -r gles -spixelformat=NV21,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
=== Installing apps ===
* Apps can be installed just as on any Devuan system with:
$ sudo apt install ''package-name''
* There is also the app store.
=== Launching apps ===
This works for any app. Say for instance, you want to run Iceweasel/Firefox:
* Launch apps from the desktop
* Launch apps from your console:
$ iceweasel &
* Install a universal app launcher that you can run from desktop:
$ sudo apt install desktop-cmd-exec
=== Make apps show up on desktop ===
Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples])
To view a list of currently installed apps, do:
$ sudo apt list --installed | less
This should help you figure out for which apps to configure .desktop icons. A benefit with all this is that you can decide which apps you want to show or hide.
=== Unhide the keyboard ===
The virtual keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar in a web browser like Firefox). This will be fixed in a future release (image tested: 20220731).
=== Note about Calculator ===
The default GUI calculator works (08/15/2022) but you won't see the numbers appear on screen until after you touch the next key. It should be used in landscape mode for best results, as there are additional display issues in portrait mode.
=== Time zone / World Clock ===
Currently (06/15/2022) the interface to the default GUI clock has a few bugs but the workaround is to:
* Go to Settings > Date and Time > and adjust time zone and date and time there. This also has some bugs, but only in portrait mode.
* Or just use the console:
$ sudo date -s HH:MM
$ sudo date -s YYYYMMDD
$ sudo ln -s /usr/share/zoneinfo/YOURREGION/YOURCITY /etc/localtime
=== Customize the Keyboard ===
TODO: write this
=== More Tips & Tricks ===
Visit [https://leste.maemo.org/Tricks '''this page'''] for more general advice on customizing Maemo on your PinePhone.
[[Category:Device]]
7e26611396c096dcdda5deadf4c934a63edd726b
File:Droid4 amazfish pairing failed 202301161800.png
6
211
1439
2023-01-16T14:19:12Z
Norayr
36
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Amazfish in ham 202301141803.png
6
212
1440
2023-01-16T14:21:15Z
Norayr
36
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Amazfish icon 202301141810.png
6
213
1441
2023-01-16T14:22:03Z
Norayr
36
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:202301161835.png
6
214
1442
2023-01-16T14:58:45Z
Norayr
36
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:202301161836.png
6
215
1443
2023-01-16T14:59:22Z
Norayr
36
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:202301161837.png
6
216
1444
2023-01-16T14:59:31Z
Norayr
36
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:202301161838.png
6
217
1445
2023-01-16T15:03:10Z
Norayr
36
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:202301161839.png
6
218
1446
2023-01-16T15:03:21Z
Norayr
36
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:202301161840.png
6
219
1447
2023-01-16T15:03:30Z
Norayr
36
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:202301161846.png
6
220
1448
2023-01-16T15:03:43Z
Norayr
36
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:202301161852.png
6
221
1449
2023-01-16T15:03:57Z
Norayr
36
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:20230116 184201 -fujichrome-sensia-400-exp-2011.jpg
6
222
1450
2023-01-16T15:09:11Z
Norayr
36
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Extras/Amazfish
0
223
1451
2023-01-16T15:10:16Z
Norayr
36
Created page with "{{Infobox Package |image=[[Image:MStarDict_SelectDictionary.png|250px]] |status=Working |date_in_repo=2022-09-16 |maemo_leste_repo=https://github.com/maemo-leste-extras/mstard..."
wikitext
text/x-wiki
{{Infobox Package
|image=[[Image:MStarDict_SelectDictionary.png|250px]]
|status=Working
|date_in_repo=2022-09-16
|maemo_leste_repo=https://github.com/maemo-leste-extras/mstardict
|category=Utilities
|packager=[[User:Norayr]]
}}
== What is this. ==
Amazfish is an application and a daemon initially developed to connect a Sailfish OS to Amazfit Bip watches.
Later support for more watches been added. Also the developer rewrote the interface, so that the application would work on non Sailfish Linux
At the moment of writing this page, the [https://github.com/piggz/harbour-amazfish github page] lists these devices:
<pre>
There are 3 tiers of supported devices:
Gold
These are devices I have, have tested and will try not to break any functioanlity for an include:
Amazfit Bip
Amazfit GTS
Amazfit GTR2
Pinetime Infinitme
Bangle.js
Silver
These are devices which are properly implemented in the application, but I do not have and are tested by the commuity, and include:
Amazfit BipS
Amazfit Bip Lite
Amazfit GTS2
I do not promise not to break funcaionality in these, but will fix where I can
Bronze
These are devices which use a protocol that is close to another suppored device, and so is treated like that device. Your mileage may vary with these devices.
MiBand 2/3/4
Amazfit Cor
</pre>
== How to pair ==
Run the service:
<pre>
/usr/libexec/amazfish-launcher
</pre>
run the app from the menu, or, it would be good to run it for the first time also in console to see the output:
<pre>
/usr/libexec/amazfish-ui-launcher
</pre>
On droid4, the window doesn't fit on the screen, so it may make sense to run the program with ssh X forwarding. Though on droid4, the author of this article was not able to pair the Amazfish Bip watch: the watch connects and disconnects, shows a warning 'Disconnected', and this is visible in the output of terminal running amazfish daemon:
[[Image:Droid4 amazfish pairing failed 202301161800.png]]
and the amazfish app outpit is:
<pre>
void DaemonInterface::changeConnectionState()
void DaemonInterface::changeConnectionState()
void DaemonInterface::changeConnectionState()
void DaemonInterface::pair(const QString&, QString)
kf.bluezqt: PendingCall Error: "No discovery started"
void DaemonInterface::changeConnectionState()
qml: pairing
void DaemonInterface::changeConnectionState()
void DaemonInterface::changeConnectionState()
qml: disconnected
void DaemonInterface::pair(const QString&, QString)
void DaemonInterface::pair(const QString&, QString)
void DaemonInterface::changeConnectionState()
void DaemonInterface::changeConnectionState()
qml: pairing
void DaemonInterface::changeConnectionState()
void DaemonInterface::changeConnectionState()
qml: disconnected
</pre>
Now the app started, and at first start will ask to write a name and configure your profile.
On Pinephone, at the time of writing this article, it was not possible to write in the name field without the hardware keyboard.
Then on the main application screen tap on 'Pair watch'.
If it shows 'Unpair', tap on 'Accept', and then choose 'Pair watch' again.
Tap 'Scan devices'. Without this though we see the running circle, the watch won't be found.
When you see the watch, tap on it, or 'Stop scan' and then choose the watch.
You should get the pairing request on the watch.
If you didn't, that's okay. The Amazfish shows the main screen again, and 'Disconnect from watch' in the upper right corner.
That means it thinks everything is right and the watch is connected.
Tap on 'Disconnect the watch', and then to 'Connect', at that moment you may get a pairing request on the watch.
[[Image:20230116 184201 -fujichrome-sensia-400-exp-2011.jpg]]
If not, repeat the whole sequence again: unpair, and try pairing again.
== How to use ==
When the watch paired and connected, try to go to settings, then debug, then tap on buttons that show test notifications.
Notifications routed via libnotify should be shown from all applications.
Tap on 'Data grahps' and then 'Download data' - that would connect and download the recent statistics from the watch.
Important: it may not show downloaded data! tap on arrow right, to see the next day, then arrow left to see the current day.
Now the data will be there!
[[Image:202301161852.png]]
== Some pictures ==
<gallery>
[[Image:Amazfish in ham 202301141803.png]]
[[Image:Amazfish icon 202301141810.png]]
</gallery>
== Other links ==
* https://github.com/norayr/harbour-amazfish
* https://openrepos.net/content/piggz/amazfish
455ceb524d6f6d678cea80e23118f1b84ae1ef6b
1452
1451
2023-01-16T15:10:52Z
Norayr
36
wikitext
text/x-wiki
{{Infobox Package
|image=[[Image:202301161852.png
|250px]]
|status=Working
|date_in_repo=2022-09-16
|maemo_leste_repo=https://github.com/maemo-leste-extras/mstardict
|category=Utilities
|packager=[[User:Norayr]]
}}
== What is this. ==
Amazfish is an application and a daemon initially developed to connect a Sailfish OS to Amazfit Bip watches.
Later support for more watches been added. Also the developer rewrote the interface, so that the application would work on non Sailfish Linux
At the moment of writing this page, the [https://github.com/piggz/harbour-amazfish github page] lists these devices:
<pre>
There are 3 tiers of supported devices:
Gold
These are devices I have, have tested and will try not to break any functioanlity for an include:
Amazfit Bip
Amazfit GTS
Amazfit GTR2
Pinetime Infinitme
Bangle.js
Silver
These are devices which are properly implemented in the application, but I do not have and are tested by the commuity, and include:
Amazfit BipS
Amazfit Bip Lite
Amazfit GTS2
I do not promise not to break funcaionality in these, but will fix where I can
Bronze
These are devices which use a protocol that is close to another suppored device, and so is treated like that device. Your mileage may vary with these devices.
MiBand 2/3/4
Amazfit Cor
</pre>
== How to pair ==
Run the service:
<pre>
/usr/libexec/amazfish-launcher
</pre>
run the app from the menu, or, it would be good to run it for the first time also in console to see the output:
<pre>
/usr/libexec/amazfish-ui-launcher
</pre>
On droid4, the window doesn't fit on the screen, so it may make sense to run the program with ssh X forwarding. Though on droid4, the author of this article was not able to pair the Amazfish Bip watch: the watch connects and disconnects, shows a warning 'Disconnected', and this is visible in the output of terminal running amazfish daemon:
[[Image:Droid4 amazfish pairing failed 202301161800.png]]
and the amazfish app outpit is:
<pre>
void DaemonInterface::changeConnectionState()
void DaemonInterface::changeConnectionState()
void DaemonInterface::changeConnectionState()
void DaemonInterface::pair(const QString&, QString)
kf.bluezqt: PendingCall Error: "No discovery started"
void DaemonInterface::changeConnectionState()
qml: pairing
void DaemonInterface::changeConnectionState()
void DaemonInterface::changeConnectionState()
qml: disconnected
void DaemonInterface::pair(const QString&, QString)
void DaemonInterface::pair(const QString&, QString)
void DaemonInterface::changeConnectionState()
void DaemonInterface::changeConnectionState()
qml: pairing
void DaemonInterface::changeConnectionState()
void DaemonInterface::changeConnectionState()
qml: disconnected
</pre>
Now the app started, and at first start will ask to write a name and configure your profile.
On Pinephone, at the time of writing this article, it was not possible to write in the name field without the hardware keyboard.
Then on the main application screen tap on 'Pair watch'.
If it shows 'Unpair', tap on 'Accept', and then choose 'Pair watch' again.
Tap 'Scan devices'. Without this though we see the running circle, the watch won't be found.
When you see the watch, tap on it, or 'Stop scan' and then choose the watch.
You should get the pairing request on the watch.
If you didn't, that's okay. The Amazfish shows the main screen again, and 'Disconnect from watch' in the upper right corner.
That means it thinks everything is right and the watch is connected.
Tap on 'Disconnect the watch', and then to 'Connect', at that moment you may get a pairing request on the watch.
[[Image:20230116 184201 -fujichrome-sensia-400-exp-2011.jpg]]
If not, repeat the whole sequence again: unpair, and try pairing again.
== How to use ==
When the watch paired and connected, try to go to settings, then debug, then tap on buttons that show test notifications.
Notifications routed via libnotify should be shown from all applications.
Tap on 'Data grahps' and then 'Download data' - that would connect and download the recent statistics from the watch.
Important: it may not show downloaded data! tap on arrow right, to see the next day, then arrow left to see the current day.
Now the data will be there!
[[Image:202301161852.png]]
== Some pictures ==
<gallery>
[[Image:Amazfish in ham 202301141803.png]]
[[Image:Amazfish icon 202301141810.png]]
</gallery>
== Other links ==
* https://github.com/norayr/harbour-amazfish
* https://openrepos.net/content/piggz/amazfish
cee6134e93b378b3290059219f72863417eae611
1453
1452
2023-01-16T15:12:00Z
Norayr
36
wikitext
text/x-wiki
{{Infobox Package
|image=[[Image:202301161852.png|250px]]
|status=Working
|date_in_repo=2022-09-16
|maemo_leste_repo=https://github.com/maemo-leste-extras/mstardict
|category=Utilities
|packager=[[User:Norayr]]
}}
== What is this. ==
Amazfish is an application and a daemon initially developed to connect a Sailfish OS to Amazfit Bip watches.
Later support for more watches been added. Also the developer rewrote the interface, so that the application would work on non Sailfish Linux
At the moment of writing this page, the [https://github.com/piggz/harbour-amazfish github page] lists these devices:
<pre>
There are 3 tiers of supported devices:
Gold
These are devices I have, have tested and will try not to break any functioanlity for an include:
Amazfit Bip
Amazfit GTS
Amazfit GTR2
Pinetime Infinitme
Bangle.js
Silver
These are devices which are properly implemented in the application, but I do not have and are tested by the commuity, and include:
Amazfit BipS
Amazfit Bip Lite
Amazfit GTS2
I do not promise not to break funcaionality in these, but will fix where I can
Bronze
These are devices which use a protocol that is close to another suppored device, and so is treated like that device. Your mileage may vary with these devices.
MiBand 2/3/4
Amazfit Cor
</pre>
== How to pair ==
Run the service:
<pre>
/usr/libexec/amazfish-launcher
</pre>
run the app from the menu, or, it would be good to run it for the first time also in console to see the output:
<pre>
/usr/libexec/amazfish-ui-launcher
</pre>
On droid4, the window doesn't fit on the screen, so it may make sense to run the program with ssh X forwarding. Though on droid4, the author of this article was not able to pair the Amazfish Bip watch: the watch connects and disconnects, shows a warning 'Disconnected', and this is visible in the output of terminal running amazfish daemon:
[[Image:Droid4 amazfish pairing failed 202301161800.png]]
and the amazfish app outpit is:
<pre>
void DaemonInterface::changeConnectionState()
void DaemonInterface::changeConnectionState()
void DaemonInterface::changeConnectionState()
void DaemonInterface::pair(const QString&, QString)
kf.bluezqt: PendingCall Error: "No discovery started"
void DaemonInterface::changeConnectionState()
qml: pairing
void DaemonInterface::changeConnectionState()
void DaemonInterface::changeConnectionState()
qml: disconnected
void DaemonInterface::pair(const QString&, QString)
void DaemonInterface::pair(const QString&, QString)
void DaemonInterface::changeConnectionState()
void DaemonInterface::changeConnectionState()
qml: pairing
void DaemonInterface::changeConnectionState()
void DaemonInterface::changeConnectionState()
qml: disconnected
</pre>
Now the app started, and at first start will ask to write a name and configure your profile.
On Pinephone, at the time of writing this article, it was not possible to write in the name field without the hardware keyboard.
Then on the main application screen tap on 'Pair watch'.
If it shows 'Unpair', tap on 'Accept', and then choose 'Pair watch' again.
Tap 'Scan devices'. Without this though we see the running circle, the watch won't be found.
When you see the watch, tap on it, or 'Stop scan' and then choose the watch.
You should get the pairing request on the watch.
If you didn't, that's okay. The Amazfish shows the main screen again, and 'Disconnect from watch' in the upper right corner.
That means it thinks everything is right and the watch is connected.
Tap on 'Disconnect the watch', and then to 'Connect', at that moment you may get a pairing request on the watch.
[[Image:20230116 184201 -fujichrome-sensia-400-exp-2011.jpg|300px]]
If not, repeat the whole sequence again: unpair, and try pairing again.
== How to use ==
When the watch paired and connected, try to go to settings, then debug, then tap on buttons that show test notifications.
Notifications routed via libnotify should be shown from all applications.
Tap on 'Data grahps' and then 'Download data' - that would connect and download the recent statistics from the watch.
Important: it may not show downloaded data! tap on arrow right, to see the next day, then arrow left to see the current day.
Now the data will be there!
[[Image:202301161852.png|500px]]
== Some pictures ==
<gallery>
[[Image:Amazfish in ham 202301141803.png]]
[[Image:Amazfish icon 202301141810.png]]
</gallery>
== Other links ==
* https://github.com/norayr/harbour-amazfish
* https://openrepos.net/content/piggz/amazfish
78c0b2e7052f3c845f639a12a111f4c133de93fe
1454
1453
2023-01-16T15:42:53Z
Norayr
36
wikitext
text/x-wiki
{{Infobox Package
|image=[[Image:202301161852.png|250px]]
|status=Working
|date_in_repo=2022-09-16
|maemo_leste_repo=https://github.com/maemo-leste-extras/mstardict
|category=Utilities
|packager=[[User:Norayr]]
}}
== What is this. ==
Amazfish is an application and a daemon initially developed to connect a Sailfish OS to Amazfit Bip watches.
Later support for more watches been added. Also the developer rewrote the interface, so that the application would work on non Sailfish Linux
At the moment of writing this page, the [https://github.com/piggz/harbour-amazfish github page] lists these devices:
<pre>
There are 3 tiers of supported devices:
Gold
These are devices I have, have tested and will try not to break any functioanlity for an include:
Amazfit Bip
Amazfit GTS
Amazfit GTR2
Pinetime Infinitme
Bangle.js
Silver
These are devices which are properly implemented in the application, but I do not have and are tested by the commuity, and include:
Amazfit BipS
Amazfit Bip Lite
Amazfit GTS2
I do not promise not to break funcaionality in these, but will fix where I can
Bronze
These are devices which use a protocol that is close to another suppored device, and so is treated like that device. Your mileage may vary with these devices.
MiBand 2/3/4
Amazfit Cor
</pre>
== How to pair ==
Run the service:
<pre>
/usr/libexec/amazfish-launcher
</pre>
run the app from the menu, or, it would be good to run it for the first time also in console to see the output:
<pre>
/usr/libexec/amazfish-ui-launcher
</pre>
On droid4, the window doesn't fit on the screen, so it may make sense to run the program with ssh X forwarding.
Though on droid4, the author of this article was not able to pair the Amazfish Bip watch: the watch connects and disconnects, shows a warning 'Disconnected', and this is visible in the output of terminal running amazfish daemon:
[[Image:Droid4 amazfish pairing failed 202301161800.png]]
and the amazfish app outpit is:
<pre>
void DaemonInterface::changeConnectionState()
void DaemonInterface::changeConnectionState()
void DaemonInterface::changeConnectionState()
void DaemonInterface::pair(const QString&, QString)
kf.bluezqt: PendingCall Error: "No discovery started"
void DaemonInterface::changeConnectionState()
qml: pairing
void DaemonInterface::changeConnectionState()
void DaemonInterface::changeConnectionState()
qml: disconnected
void DaemonInterface::pair(const QString&, QString)
void DaemonInterface::pair(const QString&, QString)
void DaemonInterface::changeConnectionState()
void DaemonInterface::changeConnectionState()
qml: pairing
void DaemonInterface::changeConnectionState()
void DaemonInterface::changeConnectionState()
qml: disconnected
</pre>
Now the app started, and at first start will ask to write a name and configure your profile.
On Pinephone, at the time of writing this article, it was not possible to write in the name field without the hardware keyboard.
[[Image:202301161835.png|300px]]
Then on the main application screen tap on 'Pair watch'.
If it shows 'Unpair', tap on 'Accept', and then choose 'Pair watch' again.
[[Image:File:202301161836.png|300px]]
You'll see list of watches. I chose Amazfit Bip.
[[Image:202301161837.png|300px]]
Tap 'Scan devices'.
[[Image:202301161838.png|300px]]
Without this though we see the running circle, the watch won't be found.
When you see the watch, tap on it, or 'Stop scan' and then choose the watch.
[[Image:202301161839.png|300px]]
You should get the pairing request on the watch.
(btw, the hardware address of the watch is autogenerated upon every reset)
[[Image:202301161840.png|300px]]
If you didn't, that's okay. The Amazfish shows the main screen again, and 'Disconnect from watch' in the upper right corner.
That means it thinks everything is right and the watch is connected.
Tap on 'Disconnect the watch', and then to 'Connect', at that moment you may get a pairing request on the watch.
[[Image:20230116 184201 -fujichrome-sensia-400-exp-2011.jpg|300px]]
If not, repeat the whole sequence again: unpair, and try pairing again.
== How to use ==
When the watch paired and connected, try to go to settings, then debug, then tap on buttons that show test notifications.
Notifications routed via libnotify should be shown from all applications.
Tap on 'Data grahps' and then 'Download data' - that would connect and download the recent statistics from the watch.
Important: it may not show downloaded data! tap on arrow right, to see the next day, then arrow left to see the current day.
Now the data will be there!
[[Image:202301161852.png|300px]]
== Some pictures ==
<gallery>
[[Image:Amazfish in ham 202301141803.png]]
[[Image:Amazfish icon 202301141810.png]]
</gallery>
== Other links ==
* https://github.com/norayr/harbour-amazfish
* https://openrepos.net/content/piggz/amazfish
cf33d0d8b95ae3540fa10751cdb5673b3f5dcfb0
1455
1454
2023-01-16T15:43:23Z
Norayr
36
wikitext
text/x-wiki
{{Infobox Package
|image=[[Image:202301161852.png|250px]]
|status=Working
|date_in_repo=2022-09-16
|maemo_leste_repo=https://github.com/maemo-leste-extras/mstardict
|category=Utilities
|packager=[[User:Norayr]]
}}
== What is this. ==
Amazfish is an application and a daemon initially developed to connect a Sailfish OS to Amazfit Bip watches.
Later support for more watches been added. Also the developer rewrote the interface, so that the application would work on non Sailfish Linux
At the moment of writing this page, the [https://github.com/piggz/harbour-amazfish github page] lists these devices:
<pre>
There are 3 tiers of supported devices:
Gold
These are devices I have, have tested and will try not to break any functioanlity for an include:
Amazfit Bip
Amazfit GTS
Amazfit GTR2
Pinetime Infinitme
Bangle.js
Silver
These are devices which are properly implemented in the application, but I do not have and are tested by the commuity, and include:
Amazfit BipS
Amazfit Bip Lite
Amazfit GTS2
I do not promise not to break funcaionality in these, but will fix where I can
Bronze
These are devices which use a protocol that is close to another suppored device, and so is treated like that device. Your mileage may vary with these devices.
MiBand 2/3/4
Amazfit Cor
</pre>
== How to pair ==
Run the service:
<pre>
/usr/libexec/amazfish-launcher
</pre>
run the app from the menu, or, it would be good to run it for the first time also in console to see the output:
<pre>
/usr/libexec/amazfish-ui-launcher
</pre>
On droid4, the window doesn't fit on the screen, so it may make sense to run the program with ssh X forwarding.
Though on droid4, the author of this article was not able to pair the Amazfish Bip watch: the watch connects and disconnects, shows a warning 'Disconnected', and this is visible in the output of terminal running amazfish daemon:
[[Image:Droid4 amazfish pairing failed 202301161800.png|300px]]
and the amazfish app outpit is:
<pre>
void DaemonInterface::changeConnectionState()
void DaemonInterface::changeConnectionState()
void DaemonInterface::changeConnectionState()
void DaemonInterface::pair(const QString&, QString)
kf.bluezqt: PendingCall Error: "No discovery started"
void DaemonInterface::changeConnectionState()
qml: pairing
void DaemonInterface::changeConnectionState()
void DaemonInterface::changeConnectionState()
qml: disconnected
void DaemonInterface::pair(const QString&, QString)
void DaemonInterface::pair(const QString&, QString)
void DaemonInterface::changeConnectionState()
void DaemonInterface::changeConnectionState()
qml: pairing
void DaemonInterface::changeConnectionState()
void DaemonInterface::changeConnectionState()
qml: disconnected
</pre>
Now the app started, and at first start will ask to write a name and configure your profile.
On Pinephone, at the time of writing this article, it was not possible to write in the name field without the hardware keyboard.
[[Image:202301161835.png|300px]]
Then on the main application screen tap on 'Pair watch'.
If it shows 'Unpair', tap on 'Accept', and then choose 'Pair watch' again.
[[Image:File:202301161836.png|300px]]
You'll see list of watches. I chose Amazfit Bip.
[[Image:202301161837.png|300px]]
Tap 'Scan devices'.
[[Image:202301161838.png|300px]]
Without this though we see the running circle, the watch won't be found.
When you see the watch, tap on it, or 'Stop scan' and then choose the watch.
[[Image:202301161839.png|300px]]
You should get the pairing request on the watch.
(btw, the hardware address of the watch is autogenerated upon every reset)
[[Image:202301161840.png|300px]]
If you didn't, that's okay. The Amazfish shows the main screen again, and 'Disconnect from watch' in the upper right corner.
That means it thinks everything is right and the watch is connected.
Tap on 'Disconnect the watch', and then to 'Connect', at that moment you may get a pairing request on the watch.
[[Image:20230116 184201 -fujichrome-sensia-400-exp-2011.jpg|300px]]
If not, repeat the whole sequence again: unpair, and try pairing again.
== How to use ==
When the watch paired and connected, try to go to settings, then debug, then tap on buttons that show test notifications.
Notifications routed via libnotify should be shown from all applications.
Tap on 'Data grahps' and then 'Download data' - that would connect and download the recent statistics from the watch.
Important: it may not show downloaded data! tap on arrow right, to see the next day, then arrow left to see the current day.
Now the data will be there!
[[Image:202301161852.png|300px]]
== Some pictures ==
<gallery>
[[Image:Amazfish in ham 202301141803.png]]
[[Image:Amazfish icon 202301141810.png]]
</gallery>
== Other links ==
* https://github.com/norayr/harbour-amazfish
* https://openrepos.net/content/piggz/amazfish
4c00b45aca25409baac1ff9ad3c8ba2ca7e9efdd
1456
1455
2023-01-16T15:45:30Z
Norayr
36
wikitext
text/x-wiki
{{Infobox Package
|image=[[Image:202301161852.png|250px]]
|status=Working
|date_in_repo=2022-09-16
|maemo_leste_repo=https://github.com/maemo-leste-extras/mstardict
|category=Utilities
|packager=[[User:Norayr]]
}}
== What is this. ==
Amazfish is an application and a daemon initially developed to connect a Sailfish OS to Amazfit Bip watches.
Later support for more watches been added. Also the developer rewrote the interface, so that the application would work on non Sailfish Linux
At the moment of writing this page, the [https://github.com/piggz/harbour-amazfish github page] lists these devices:
<pre>
There are 3 tiers of supported devices:
Gold
These are devices I have, have tested and will try not to break any functioanlity for an include:
Amazfit Bip
Amazfit GTS
Amazfit GTR2
Pinetime Infinitme
Bangle.js
Silver
These are devices which are properly implemented in the application, but I do not have and are tested by the commuity, and include:
Amazfit BipS
Amazfit Bip Lite
Amazfit GTS2
I do not promise not to break funcaionality in these, but will fix where I can
Bronze
These are devices which use a protocol that is close to another suppored device, and so is treated like that device. Your mileage may vary with these devices.
MiBand 2/3/4
Amazfit Cor
</pre>
== How to pair ==
Run the service:
<pre>
/usr/libexec/amazfish-launcher
</pre>
run the app from the menu, or, it would be good to run it for the first time also in console to see the output:
<pre>
/usr/libexec/amazfish-ui-launcher
</pre>
On droid4, the window doesn't fit on the screen, so it may make sense to run the program with ssh X forwarding.
Though on droid4, the author of this article was not able to pair the Amazfish Bip watch: the watch connects and disconnects, shows a warning 'Disconnected', and this is visible in the output of terminal running amazfish daemon:
[[Image:Droid4 amazfish pairing failed 202301161800.png|500px]]
and the amazfish app outpit is:
<pre>
void DaemonInterface::changeConnectionState()
void DaemonInterface::changeConnectionState()
void DaemonInterface::changeConnectionState()
void DaemonInterface::pair(const QString&, QString)
kf.bluezqt: PendingCall Error: "No discovery started"
void DaemonInterface::changeConnectionState()
qml: pairing
void DaemonInterface::changeConnectionState()
void DaemonInterface::changeConnectionState()
qml: disconnected
void DaemonInterface::pair(const QString&, QString)
void DaemonInterface::pair(const QString&, QString)
void DaemonInterface::changeConnectionState()
void DaemonInterface::changeConnectionState()
qml: pairing
void DaemonInterface::changeConnectionState()
void DaemonInterface::changeConnectionState()
qml: disconnected
</pre>
Now the app started, and at first start will ask to write a name and configure your profile.
On Pinephone, at the time of writing this article, it was not possible to write in the name field without the hardware keyboard.
[[Image:202301161835.png|500px]]
Then on the main application screen tap on 'Pair watch'.
If it shows 'Unpair', tap on 'Accept', and then choose 'Pair watch' again.
[[Image:File:202301161836.png|500px]]
You'll see list of watches. I chose Amazfit Bip.
[[Image:202301161837.png|500px]]
Tap 'Scan devices'.
[[Image:202301161838.png|500px]]
Without this though we see the running circle, the watch won't be found.
When you see the watch, tap on it, or 'Stop scan' and then choose the watch.
[[Image:202301161839.png|500px]]
You should get the pairing request on the watch.
(btw, the hardware address of the watch is autogenerated upon every reset)
[[Image:202301161840.png|500px]]
If you didn't, that's okay. The Amazfish shows the main screen again, and 'Disconnect from watch' in the upper right corner.
That means it thinks everything is right and the watch is connected.
Tap on 'Disconnect the watch', and then to 'Connect', at that moment you may get a pairing request on the watch.
[[Image:20230116 184201 -fujichrome-sensia-400-exp-2011.jpg|500px]]
If not, repeat the whole sequence again: unpair, and try pairing again.
== How to use ==
When the watch paired and connected, try to go to settings, then debug, then tap on buttons that show test notifications.
Notifications routed via libnotify should be shown from all applications.
Tap on 'Data grahps' and then 'Download data' - that would connect and download the recent statistics from the watch.
Important: it may not show downloaded data! tap on arrow right, to see the next day, then arrow left to see the current day.
Now the data will be there!
[[Image:202301161852.png|500px]]
== Some pictures ==
<gallery>
[[Image:Amazfish in ham 202301141803.png]]
[[Image:Amazfish icon 202301141810.png]]
</gallery>
== Other links ==
* https://github.com/norayr/harbour-amazfish
* https://openrepos.net/content/piggz/amazfish
176fdf813413a22d63ee1d31aea517a9f096982b
1458
1456
2023-01-16T17:44:11Z
Norayr
36
wikitext
text/x-wiki
{{Infobox Package
|image=[[Image:202301161852.png|250px]]
|status=Working
|date_in_repo=2022-09-16
|maemo_leste_repo=https://github.com/maemo-leste-extras/mstardict
|category=Utilities
|packager=[[User:Norayr]]
}}
== What is this. ==
Amazfish is an application and a daemon initially developed to connect a Sailfish OS to Amazfit Bip watches.
Later support for more watches been added. Also the developer rewrote the interface, so that the application would work on non Sailfish Linux
At the moment of writing this page, the [https://github.com/piggz/harbour-amazfish github page] lists these devices:
<pre>
There are 3 tiers of supported devices:
Gold
These are devices I have, have tested and will try not to break any functioanlity for an include:
Amazfit Bip
Amazfit GTS
Amazfit GTR2
Pinetime Infinitme
Bangle.js
Silver
These are devices which are properly implemented in the application, but I do not have and are tested by the commuity, and include:
Amazfit BipS
Amazfit Bip Lite
Amazfit GTS2
I do not promise not to break funcaionality in these, but will fix where I can
Bronze
These are devices which use a protocol that is close to another suppored device, and so is treated like that device. Your mileage may vary with these devices.
MiBand 2/3/4
Amazfit Cor
</pre>
== How to pair ==
Run the service:
<pre>
/usr/libexec/amazfish-launcher
</pre>
run the app from the menu, or, it would be good to run it for the first time also in console to see the output:
<pre>
/usr/libexec/amazfish-ui-launcher
</pre>
On droid4, the window doesn't fit on the screen, so it may make sense to run the program with ssh X forwarding.
Though on droid4, the author of this article was not able to pair the Amazfish Bip watch: the watch connects and disconnects, shows a warning 'Disconnected', and this is visible in the output of terminal running amazfish daemon:
[[Image:Droid4 amazfish pairing failed 202301161800.png|500px]]
and the amazfish app outpit is:
<pre>
void DaemonInterface::changeConnectionState()
void DaemonInterface::changeConnectionState()
void DaemonInterface::changeConnectionState()
void DaemonInterface::pair(const QString&, QString)
kf.bluezqt: PendingCall Error: "No discovery started"
void DaemonInterface::changeConnectionState()
qml: pairing
void DaemonInterface::changeConnectionState()
void DaemonInterface::changeConnectionState()
qml: disconnected
void DaemonInterface::pair(const QString&, QString)
void DaemonInterface::pair(const QString&, QString)
void DaemonInterface::changeConnectionState()
void DaemonInterface::changeConnectionState()
qml: pairing
void DaemonInterface::changeConnectionState()
void DaemonInterface::changeConnectionState()
qml: disconnected
</pre>
Now the app started, and at first start will ask to write a name and configure your profile.
On Pinephone, at the time of writing this article, it was not possible to write in the name field without the hardware keyboard.
[[Image:202301161835.png|500px]]
Then on the main application screen tap on 'Pair watch'.
If it shows 'Unpair', tap on 'Accept', and then choose 'Pair watch' again.
[[Image:202301161836.png|500px]]
You'll see list of watches. I chose Amazfit Bip.
[[Image:202301161837.png|500px]]
Tap 'Scan devices'.
[[Image:202301161838.png|500px]]
Without this though we see the running circle, the watch won't be found.
When you see the watch, tap on it, or 'Stop scan' and then choose the watch.
[[Image:202301161839.png|500px]]
You should get the pairing request on the watch.
(btw, the hardware address of the watch is autogenerated upon every reset)
[[Image:202301161840.png|500px]]
If you didn't, that's okay. The Amazfish shows the main screen again, and 'Disconnect from watch' in the upper right corner.
That means it thinks everything is right and the watch is connected.
Tap on 'Disconnect the watch', and then to 'Connect', at that moment you may get a pairing request on the watch.
[[Image:20230116 184201 -fujichrome-sensia-400-exp-2011.jpg|500px]]
If not, repeat the whole sequence again: unpair, and try pairing again.
== How to use ==
When the watch paired and connected, try to go to settings, then debug, then tap on buttons that show test notifications.
Notifications routed via libnotify should be shown from all applications.
Tap on 'Data grahps' and then 'Download data' - that would connect and download the recent statistics from the watch.
Important: it may not show downloaded data! tap on arrow right, to see the next day, then arrow left to see the current day.
Now the data will be there!
[[Image:202301161852.png|500px]]
== Some pictures ==
<gallery>
[[Image:Amazfish in ham 202301141803.png]]
[[Image:Amazfish icon 202301141810.png]]
</gallery>
== Other links ==
* https://github.com/norayr/harbour-amazfish
* https://openrepos.net/content/piggz/amazfish
36acf2085e193103e7ed3d8b7e8016bc838e5d3c
1459
1458
2023-01-16T17:44:58Z
Norayr
36
/* Some pictures */
wikitext
text/x-wiki
{{Infobox Package
|image=[[Image:202301161852.png|250px]]
|status=Working
|date_in_repo=2022-09-16
|maemo_leste_repo=https://github.com/maemo-leste-extras/mstardict
|category=Utilities
|packager=[[User:Norayr]]
}}
== What is this. ==
Amazfish is an application and a daemon initially developed to connect a Sailfish OS to Amazfit Bip watches.
Later support for more watches been added. Also the developer rewrote the interface, so that the application would work on non Sailfish Linux
At the moment of writing this page, the [https://github.com/piggz/harbour-amazfish github page] lists these devices:
<pre>
There are 3 tiers of supported devices:
Gold
These are devices I have, have tested and will try not to break any functioanlity for an include:
Amazfit Bip
Amazfit GTS
Amazfit GTR2
Pinetime Infinitme
Bangle.js
Silver
These are devices which are properly implemented in the application, but I do not have and are tested by the commuity, and include:
Amazfit BipS
Amazfit Bip Lite
Amazfit GTS2
I do not promise not to break funcaionality in these, but will fix where I can
Bronze
These are devices which use a protocol that is close to another suppored device, and so is treated like that device. Your mileage may vary with these devices.
MiBand 2/3/4
Amazfit Cor
</pre>
== How to pair ==
Run the service:
<pre>
/usr/libexec/amazfish-launcher
</pre>
run the app from the menu, or, it would be good to run it for the first time also in console to see the output:
<pre>
/usr/libexec/amazfish-ui-launcher
</pre>
On droid4, the window doesn't fit on the screen, so it may make sense to run the program with ssh X forwarding.
Though on droid4, the author of this article was not able to pair the Amazfish Bip watch: the watch connects and disconnects, shows a warning 'Disconnected', and this is visible in the output of terminal running amazfish daemon:
[[Image:Droid4 amazfish pairing failed 202301161800.png|500px]]
and the amazfish app outpit is:
<pre>
void DaemonInterface::changeConnectionState()
void DaemonInterface::changeConnectionState()
void DaemonInterface::changeConnectionState()
void DaemonInterface::pair(const QString&, QString)
kf.bluezqt: PendingCall Error: "No discovery started"
void DaemonInterface::changeConnectionState()
qml: pairing
void DaemonInterface::changeConnectionState()
void DaemonInterface::changeConnectionState()
qml: disconnected
void DaemonInterface::pair(const QString&, QString)
void DaemonInterface::pair(const QString&, QString)
void DaemonInterface::changeConnectionState()
void DaemonInterface::changeConnectionState()
qml: pairing
void DaemonInterface::changeConnectionState()
void DaemonInterface::changeConnectionState()
qml: disconnected
</pre>
Now the app started, and at first start will ask to write a name and configure your profile.
On Pinephone, at the time of writing this article, it was not possible to write in the name field without the hardware keyboard.
[[Image:202301161835.png|500px]]
Then on the main application screen tap on 'Pair watch'.
If it shows 'Unpair', tap on 'Accept', and then choose 'Pair watch' again.
[[Image:202301161836.png|500px]]
You'll see list of watches. I chose Amazfit Bip.
[[Image:202301161837.png|500px]]
Tap 'Scan devices'.
[[Image:202301161838.png|500px]]
Without this though we see the running circle, the watch won't be found.
When you see the watch, tap on it, or 'Stop scan' and then choose the watch.
[[Image:202301161839.png|500px]]
You should get the pairing request on the watch.
(btw, the hardware address of the watch is autogenerated upon every reset)
[[Image:202301161840.png|500px]]
If you didn't, that's okay. The Amazfish shows the main screen again, and 'Disconnect from watch' in the upper right corner.
That means it thinks everything is right and the watch is connected.
Tap on 'Disconnect the watch', and then to 'Connect', at that moment you may get a pairing request on the watch.
[[Image:20230116 184201 -fujichrome-sensia-400-exp-2011.jpg|500px]]
If not, repeat the whole sequence again: unpair, and try pairing again.
== How to use ==
When the watch paired and connected, try to go to settings, then debug, then tap on buttons that show test notifications.
Notifications routed via libnotify should be shown from all applications.
Tap on 'Data grahps' and then 'Download data' - that would connect and download the recent statistics from the watch.
Important: it may not show downloaded data! tap on arrow right, to see the next day, then arrow left to see the current day.
Now the data will be there!
[[Image:202301161852.png|500px]]
== Some pictures ==
<gallery>
[[Image:Amazfish_in_ham_202301141803.png]]
[[Image:Amazfish_icon_202301141810.png]]
</gallery>
== Other links ==
* https://github.com/norayr/harbour-amazfish
* https://openrepos.net/content/piggz/amazfish
21a118fd9857de08aacc6c691388513b71b4643c
1460
1459
2023-01-16T17:47:14Z
Norayr
36
wikitext
text/x-wiki
{{Infobox Package
|image=[[Image:202301161852.png|250px]]
|status=Working
|date_in_repo=2022-09-16
|maemo_leste_repo=https://github.com/maemo-leste-extras/mstardict
|category=Utilities
|packager=[[User:Norayr]]
}}
== What is this. ==
Amazfish is an application and a daemon initially developed to connect a Sailfish OS to Amazfit Bip watches.
Later support for more watches been added. Also the developer rewrote the interface, so that the application would work on non Sailfish Linux
At the moment of writing this page, the [https://github.com/piggz/harbour-amazfish github page] lists these devices:
<pre>
There are 3 tiers of supported devices:
Gold
These are devices I have, have tested and will try not to break any functioanlity for an include:
Amazfit Bip
Amazfit GTS
Amazfit GTR2
Pinetime Infinitme
Bangle.js
Silver
These are devices which are properly implemented in the application, but I do not have and are tested by the commuity, and include:
Amazfit BipS
Amazfit Bip Lite
Amazfit GTS2
I do not promise not to break funcaionality in these, but will fix where I can
Bronze
These are devices which use a protocol that is close to another suppored device, and so is treated like that device. Your mileage may vary with these devices.
MiBand 2/3/4
Amazfit Cor
</pre>
== How to pair ==
Run the service:
<pre>
/usr/libexec/amazfish-launcher
</pre>
run the app from the menu, or, it would be good to run it for the first time also in console to see the output:
<pre>
/usr/libexec/amazfish-ui-launcher
</pre>
On droid4, the window doesn't fit on the screen, so it may make sense to run the program with ssh X forwarding.
Though on droid4, the author of this article was not able to pair the Amazfish Bip watch: the watch connects and disconnects, shows a warning 'Disconnected', and this is visible in the output of terminal running amazfish daemon:
[[Image:Droid4 amazfish pairing failed 202301161800.png|500px]]
and the amazfish app outpit is:
<pre>
void DaemonInterface::changeConnectionState()
void DaemonInterface::changeConnectionState()
void DaemonInterface::changeConnectionState()
void DaemonInterface::pair(const QString&, QString)
kf.bluezqt: PendingCall Error: "No discovery started"
void DaemonInterface::changeConnectionState()
qml: pairing
void DaemonInterface::changeConnectionState()
void DaemonInterface::changeConnectionState()
qml: disconnected
void DaemonInterface::pair(const QString&, QString)
void DaemonInterface::pair(const QString&, QString)
void DaemonInterface::changeConnectionState()
void DaemonInterface::changeConnectionState()
qml: pairing
void DaemonInterface::changeConnectionState()
void DaemonInterface::changeConnectionState()
qml: disconnected
</pre>
Now the app started, and at first start will ask to write a name and configure your profile.
On Pinephone, at the time of writing this article, it was not possible to write in the name field without the hardware keyboard.
[[Image:202301161835.png|500px]]
Then on the main application screen tap on 'Pair watch'.
If it shows 'Unpair', tap on 'Accept', and then choose 'Pair watch' again.
[[Image:202301161836.png|500px]]
You'll see list of watches. I chose Amazfit Bip.
[[Image:202301161837.png|500px]]
Tap 'Scan devices'.
[[Image:202301161838.png|500px]]
Without this though we see the running circle, the watch won't be found.
When you see the watch, tap on it, or 'Stop scan' and then choose the watch.
[[Image:202301161839.png|500px]]
You should get the pairing request on the watch.
(btw, the hardware address of the watch is autogenerated upon every reset)
[[Image:202301161840.png|500px]]
If you didn't, that's okay. The Amazfish shows the main screen again, and 'Disconnect from watch' in the upper right corner.
That means it thinks everything is right and the watch is connected.
Tap on 'Disconnect the watch', and then to 'Connect', at that moment you may get a pairing request on the watch.
[[Image:20230116 184201 -fujichrome-sensia-400-exp-2011.jpg|500px]]
If not, repeat the whole sequence again: unpair, and try pairing again.
== How to use ==
When the watch paired and connected, try to go to settings, then debug, then tap on buttons that show test notifications.
Notifications routed via libnotify should be shown from all applications.
Tap on 'Data grahps' and then 'Download data' - that would connect and download the recent statistics from the watch.
Important: it may not show downloaded data! tap on arrow right, to see the next day, then arrow left to see the current day.
Now the data will be there!
[[Image:202301161852.png|500px]]
== Some pictures ==
<gallery>
[[Image:Amazfish in ham 202301141803.png]]
[[Image:Amazfish icon 202301141810.png]]
</gallery>
== Other links ==
* https://github.com/norayr/harbour-amazfish
* https://openrepos.net/content/piggz/amazfish
36acf2085e193103e7ed3d8b7e8016bc838e5d3c
1461
1460
2023-01-16T17:48:41Z
Norayr
36
wikitext
text/x-wiki
{{Infobox Package
|image=[[Image:202301161852.png|250px]]
|status=Working
|date_in_repo=2022-09-16
|maemo_leste_repo=https://github.com/maemo-leste-extras/mstardict
|category=Utilities
|packager=[[User:Norayr]]
}}
== What is this. ==
Amazfish is an application and a daemon initially developed to connect a Sailfish OS to Amazfit Bip watches.
Later support for more watches been added. Also the developer rewrote the interface, so that the application would work on non Sailfish Linux
At the moment of writing this page, the [https://github.com/piggz/harbour-amazfish github page] lists these devices:
<pre>
There are 3 tiers of supported devices:
Gold
These are devices I have, have tested and will try not to break any functioanlity for an include:
Amazfit Bip
Amazfit GTS
Amazfit GTR2
Pinetime Infinitme
Bangle.js
Silver
These are devices which are properly implemented in the application, but I do not have and are tested by the commuity, and include:
Amazfit BipS
Amazfit Bip Lite
Amazfit GTS2
I do not promise not to break funcaionality in these, but will fix where I can
Bronze
These are devices which use a protocol that is close to another suppored device, and so is treated like that device. Your mileage may vary with these devices.
MiBand 2/3/4
Amazfit Cor
</pre>
== Install ==
[[Image:Amazfish in ham 202301141803.png|500px]]
[[Image:Amazfish icon 202301141810.png|500px]]
== How to pair ==
Run the service:
<pre>
/usr/libexec/amazfish-launcher
</pre>
run the app from the menu, or, it would be good to run it for the first time also in console to see the output:
<pre>
/usr/libexec/amazfish-ui-launcher
</pre>
On droid4, the window doesn't fit on the screen, so it may make sense to run the program with ssh X forwarding.
Though on droid4, the author of this article was not able to pair the Amazfish Bip watch: the watch connects and disconnects, shows a warning 'Disconnected', and this is visible in the output of terminal running amazfish daemon:
[[Image:Droid4 amazfish pairing failed 202301161800.png|500px]]
and the amazfish app outpit is:
<pre>
void DaemonInterface::changeConnectionState()
void DaemonInterface::changeConnectionState()
void DaemonInterface::changeConnectionState()
void DaemonInterface::pair(const QString&, QString)
kf.bluezqt: PendingCall Error: "No discovery started"
void DaemonInterface::changeConnectionState()
qml: pairing
void DaemonInterface::changeConnectionState()
void DaemonInterface::changeConnectionState()
qml: disconnected
void DaemonInterface::pair(const QString&, QString)
void DaemonInterface::pair(const QString&, QString)
void DaemonInterface::changeConnectionState()
void DaemonInterface::changeConnectionState()
qml: pairing
void DaemonInterface::changeConnectionState()
void DaemonInterface::changeConnectionState()
qml: disconnected
</pre>
Now the app started, and at first start will ask to write a name and configure your profile.
On Pinephone, at the time of writing this article, it was not possible to write in the name field without the hardware keyboard.
[[Image:202301161835.png|500px]]
Then on the main application screen tap on 'Pair watch'.
If it shows 'Unpair', tap on 'Accept', and then choose 'Pair watch' again.
[[Image:202301161836.png|500px]]
You'll see list of watches. I chose Amazfit Bip.
[[Image:202301161837.png|500px]]
Tap 'Scan devices'.
[[Image:202301161838.png|500px]]
Without this though we see the running circle, the watch won't be found.
When you see the watch, tap on it, or 'Stop scan' and then choose the watch.
[[Image:202301161839.png|500px]]
You should get the pairing request on the watch.
(btw, the hardware address of the watch is autogenerated upon every reset)
[[Image:202301161840.png|500px]]
If you didn't, that's okay. The Amazfish shows the main screen again, and 'Disconnect from watch' in the upper right corner.
That means it thinks everything is right and the watch is connected.
Tap on 'Disconnect the watch', and then to 'Connect', at that moment you may get a pairing request on the watch.
[[Image:20230116 184201 -fujichrome-sensia-400-exp-2011.jpg|500px]]
If not, repeat the whole sequence again: unpair, and try pairing again.
== How to use ==
When the watch paired and connected, try to go to settings, then debug, then tap on buttons that show test notifications.
Notifications routed via libnotify should be shown from all applications.
Tap on 'Data grahps' and then 'Download data' - that would connect and download the recent statistics from the watch.
Important: it may not show downloaded data! tap on arrow right, to see the next day, then arrow left to see the current day.
Now the data will be there!
[[Image:202301161852.png|500px]]
== Other links ==
* https://github.com/norayr/harbour-amazfish
* https://openrepos.net/content/piggz/amazfish
f82a5f9107d35efdc2bf3d34a746f889a3cea76b
1462
1461
2023-01-16T17:49:42Z
Norayr
36
/* Install */
wikitext
text/x-wiki
{{Infobox Package
|image=[[Image:202301161852.png|250px]]
|status=Working
|date_in_repo=2022-09-16
|maemo_leste_repo=https://github.com/maemo-leste-extras/mstardict
|category=Utilities
|packager=[[User:Norayr]]
}}
== What is this. ==
Amazfish is an application and a daemon initially developed to connect a Sailfish OS to Amazfit Bip watches.
Later support for more watches been added. Also the developer rewrote the interface, so that the application would work on non Sailfish Linux
At the moment of writing this page, the [https://github.com/piggz/harbour-amazfish github page] lists these devices:
<pre>
There are 3 tiers of supported devices:
Gold
These are devices I have, have tested and will try not to break any functioanlity for an include:
Amazfit Bip
Amazfit GTS
Amazfit GTR2
Pinetime Infinitme
Bangle.js
Silver
These are devices which are properly implemented in the application, but I do not have and are tested by the commuity, and include:
Amazfit BipS
Amazfit Bip Lite
Amazfit GTS2
I do not promise not to break funcaionality in these, but will fix where I can
Bronze
These are devices which use a protocol that is close to another suppored device, and so is treated like that device. Your mileage may vary with these devices.
MiBand 2/3/4
Amazfit Cor
</pre>
== Install ==
find in Application manager
[[Image:Amazfish in ham 202301141803.png|500px]]
or
<pre>
apt-get install harbour-amazfish
</pre>
and this is it:
[[Image:Amazfish icon 202301141810.png|500px]]
== How to pair ==
Run the service:
<pre>
/usr/libexec/amazfish-launcher
</pre>
run the app from the menu, or, it would be good to run it for the first time also in console to see the output:
<pre>
/usr/libexec/amazfish-ui-launcher
</pre>
On droid4, the window doesn't fit on the screen, so it may make sense to run the program with ssh X forwarding.
Though on droid4, the author of this article was not able to pair the Amazfish Bip watch: the watch connects and disconnects, shows a warning 'Disconnected', and this is visible in the output of terminal running amazfish daemon:
[[Image:Droid4 amazfish pairing failed 202301161800.png|500px]]
and the amazfish app outpit is:
<pre>
void DaemonInterface::changeConnectionState()
void DaemonInterface::changeConnectionState()
void DaemonInterface::changeConnectionState()
void DaemonInterface::pair(const QString&, QString)
kf.bluezqt: PendingCall Error: "No discovery started"
void DaemonInterface::changeConnectionState()
qml: pairing
void DaemonInterface::changeConnectionState()
void DaemonInterface::changeConnectionState()
qml: disconnected
void DaemonInterface::pair(const QString&, QString)
void DaemonInterface::pair(const QString&, QString)
void DaemonInterface::changeConnectionState()
void DaemonInterface::changeConnectionState()
qml: pairing
void DaemonInterface::changeConnectionState()
void DaemonInterface::changeConnectionState()
qml: disconnected
</pre>
Now the app started, and at first start will ask to write a name and configure your profile.
On Pinephone, at the time of writing this article, it was not possible to write in the name field without the hardware keyboard.
[[Image:202301161835.png|500px]]
Then on the main application screen tap on 'Pair watch'.
If it shows 'Unpair', tap on 'Accept', and then choose 'Pair watch' again.
[[Image:202301161836.png|500px]]
You'll see list of watches. I chose Amazfit Bip.
[[Image:202301161837.png|500px]]
Tap 'Scan devices'.
[[Image:202301161838.png|500px]]
Without this though we see the running circle, the watch won't be found.
When you see the watch, tap on it, or 'Stop scan' and then choose the watch.
[[Image:202301161839.png|500px]]
You should get the pairing request on the watch.
(btw, the hardware address of the watch is autogenerated upon every reset)
[[Image:202301161840.png|500px]]
If you didn't, that's okay. The Amazfish shows the main screen again, and 'Disconnect from watch' in the upper right corner.
That means it thinks everything is right and the watch is connected.
Tap on 'Disconnect the watch', and then to 'Connect', at that moment you may get a pairing request on the watch.
[[Image:20230116 184201 -fujichrome-sensia-400-exp-2011.jpg|500px]]
If not, repeat the whole sequence again: unpair, and try pairing again.
== How to use ==
When the watch paired and connected, try to go to settings, then debug, then tap on buttons that show test notifications.
Notifications routed via libnotify should be shown from all applications.
Tap on 'Data grahps' and then 'Download data' - that would connect and download the recent statistics from the watch.
Important: it may not show downloaded data! tap on arrow right, to see the next day, then arrow left to see the current day.
Now the data will be there!
[[Image:202301161852.png|500px]]
== Other links ==
* https://github.com/norayr/harbour-amazfish
* https://openrepos.net/content/piggz/amazfish
d1e751509fb73ae6c13033ebc8ddc18a66fa8363
1463
1462
2023-01-16T17:50:37Z
Norayr
36
/* Other links */
wikitext
text/x-wiki
{{Infobox Package
|image=[[Image:202301161852.png|250px]]
|status=Working
|date_in_repo=2022-09-16
|maemo_leste_repo=https://github.com/maemo-leste-extras/mstardict
|category=Utilities
|packager=[[User:Norayr]]
}}
== What is this. ==
Amazfish is an application and a daemon initially developed to connect a Sailfish OS to Amazfit Bip watches.
Later support for more watches been added. Also the developer rewrote the interface, so that the application would work on non Sailfish Linux
At the moment of writing this page, the [https://github.com/piggz/harbour-amazfish github page] lists these devices:
<pre>
There are 3 tiers of supported devices:
Gold
These are devices I have, have tested and will try not to break any functioanlity for an include:
Amazfit Bip
Amazfit GTS
Amazfit GTR2
Pinetime Infinitme
Bangle.js
Silver
These are devices which are properly implemented in the application, but I do not have and are tested by the commuity, and include:
Amazfit BipS
Amazfit Bip Lite
Amazfit GTS2
I do not promise not to break funcaionality in these, but will fix where I can
Bronze
These are devices which use a protocol that is close to another suppored device, and so is treated like that device. Your mileage may vary with these devices.
MiBand 2/3/4
Amazfit Cor
</pre>
== Install ==
find in Application manager
[[Image:Amazfish in ham 202301141803.png|500px]]
or
<pre>
apt-get install harbour-amazfish
</pre>
and this is it:
[[Image:Amazfish icon 202301141810.png|500px]]
== How to pair ==
Run the service:
<pre>
/usr/libexec/amazfish-launcher
</pre>
run the app from the menu, or, it would be good to run it for the first time also in console to see the output:
<pre>
/usr/libexec/amazfish-ui-launcher
</pre>
On droid4, the window doesn't fit on the screen, so it may make sense to run the program with ssh X forwarding.
Though on droid4, the author of this article was not able to pair the Amazfish Bip watch: the watch connects and disconnects, shows a warning 'Disconnected', and this is visible in the output of terminal running amazfish daemon:
[[Image:Droid4 amazfish pairing failed 202301161800.png|500px]]
and the amazfish app outpit is:
<pre>
void DaemonInterface::changeConnectionState()
void DaemonInterface::changeConnectionState()
void DaemonInterface::changeConnectionState()
void DaemonInterface::pair(const QString&, QString)
kf.bluezqt: PendingCall Error: "No discovery started"
void DaemonInterface::changeConnectionState()
qml: pairing
void DaemonInterface::changeConnectionState()
void DaemonInterface::changeConnectionState()
qml: disconnected
void DaemonInterface::pair(const QString&, QString)
void DaemonInterface::pair(const QString&, QString)
void DaemonInterface::changeConnectionState()
void DaemonInterface::changeConnectionState()
qml: pairing
void DaemonInterface::changeConnectionState()
void DaemonInterface::changeConnectionState()
qml: disconnected
</pre>
Now the app started, and at first start will ask to write a name and configure your profile.
On Pinephone, at the time of writing this article, it was not possible to write in the name field without the hardware keyboard.
[[Image:202301161835.png|500px]]
Then on the main application screen tap on 'Pair watch'.
If it shows 'Unpair', tap on 'Accept', and then choose 'Pair watch' again.
[[Image:202301161836.png|500px]]
You'll see list of watches. I chose Amazfit Bip.
[[Image:202301161837.png|500px]]
Tap 'Scan devices'.
[[Image:202301161838.png|500px]]
Without this though we see the running circle, the watch won't be found.
When you see the watch, tap on it, or 'Stop scan' and then choose the watch.
[[Image:202301161839.png|500px]]
You should get the pairing request on the watch.
(btw, the hardware address of the watch is autogenerated upon every reset)
[[Image:202301161840.png|500px]]
If you didn't, that's okay. The Amazfish shows the main screen again, and 'Disconnect from watch' in the upper right corner.
That means it thinks everything is right and the watch is connected.
Tap on 'Disconnect the watch', and then to 'Connect', at that moment you may get a pairing request on the watch.
[[Image:20230116 184201 -fujichrome-sensia-400-exp-2011.jpg|500px]]
If not, repeat the whole sequence again: unpair, and try pairing again.
== How to use ==
When the watch paired and connected, try to go to settings, then debug, then tap on buttons that show test notifications.
Notifications routed via libnotify should be shown from all applications.
Tap on 'Data grahps' and then 'Download data' - that would connect and download the recent statistics from the watch.
Important: it may not show downloaded data! tap on arrow right, to see the next day, then arrow left to see the current day.
Now the data will be there!
[[Image:202301161852.png|500px]]
== Other links ==
* hhttps://github.com/piggz/harbour-amazfish
* https://openrepos.net/content/piggz/amazfish
1ba9e5bb673012b80e83ca8052330c6c5a38f578
Motorola Xoom2 MZ609
0
224
1457
2023-01-16T16:25:09Z
Wizzup
4
Created page with "{{Infobox Device |image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]] |manufacturer=Motorola |codename=Fleming MZ609 |dimensions= |release_date=TODO |soc=TI OMAP4430 |..."
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Fleming MZ609
|dimensions=
|release_date=TODO
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=TODO
|video=PowerVR SGX540
|audio=
|network=
|storage=TODO
|usb=
|camera=
|sensors=TODO
|other=
|category=Supported
|sw_kernel=6.1.x
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Yes
|sw_usb_host=Yes
|sw_touchscreen=Yes
|sw_keyboard=N/A
|sw_screen=No
|sw_hdmi=Yes
|sw_tv=
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=Yes
|sw_sms=Yes
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=Yes
|sw_4g=No
|sw_bluetooth=Yes, [[#Bluetooth|see notes]]
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=?
|sw_standbytime=
}}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/mz609/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip TODO CHANGE
# flash-droid-4-fw.sh TODO CHANGE
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
TODO
=== Updating Android ===
TODO
=== Setting up kexecboot ===
TODO
Now, assuming you are in the working directory, install kexecboot:
<pre>
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
=== Install Maemo Leste to the sdcard ===
[[Category:Device]]
8cb0a2f24ec612140e5ef937e46bfda4fce5f7a0
Development/Porting Packages
0
82
1464
1425
2023-01-16T18:47:57Z
Norayr
36
/* Porting existing Maemo Fremantle packages */
wikitext
text/x-wiki
= Porting / Creating packages =
If you're looking at creating your own package, or porting software, the first things to do are:
# Check if someone already ported the package (if it in the repository? Is there an issue for it?)
# Check if there already are Debian packaging scripts/files. Debian packages a LOT of software, so it's likely that the software is already in the Maemo repository, or someone at least has build scripts for it.
# (TODO)
= Porting existing Maemo Fremantle packages =
Maemo Fremantle ("Nokia Maemo for the N900") contains a lot of packages that are open source. Most of them should run with very few changes on Maemo Leste, the main changes you will need to make will be:
# Check if someone already ported the package (if it in the repository? Is there an issue for it?)
# Updating of the Debian packaging files/scripts.
# Porting to newer libraries if old libraries are used (OpenSSL 0.9.8 -> OpenSSL 1.1.x, Qt4 -> Qt5, etc)
# Fixing any compile errors/warnings due to more strict compile flags
Source of the packages can be found at one of these places:
* http://maemo.org/packages/
* https://garage.maemo.org/
* http://repository.maemo.org/extras/pool/fremantle/free/source/
* http://repository.maemo.org/extras-devel/pool/fremantle/free/
* http://repository.maemo.org/extras-testing/pool/fremantle/free/
= Example =
== Getting the source package ==
Let's say we'd like to port a package "msid".
it's here: <pre>http://repository.maemo.org/extras/pool/fremantle/free/source/m/msid/</pre>
get the latest version:
<pre>
wget http://repository.maemo.org/extras/pool/fremantle/free/source/m/msid/msid_0.4.8-2.tar.gz
</pre>
<pre>
tar zxvf msid_0.4.8-2.tar.gz
cd msid-0.4.8
</pre>
== Creating new repo ==
init a git repo:
<pre>
git init
git add *
git commit -a -m "initial commit from fremantle sources"
</pre>
change content of `debian/compat` to `9`.
edit <pre>debian/changelog</pre>.
let's say the last release was:
<pre>
msid (0.4.8-2) unstable; urgency=low
</pre>
now the release should be:
<pre>
msid (0.4.8-2+leste1) unstable; urgency=low
</pre>
record your changes, add your name.
look if <pre>debian/control</pre> dependency versions should be changed.
== installing build dependencies==
<pre>
sudo apt build-dep .
</pre>
== building ==
<pre>
dpkg-buildpackage -b -uc
</pre>
add <pre>gbp.conf</pre> file in <pre>debian</pre> directory with the following content:
<pre>
[DEFAULT]
upstream-tag=%(version)s
</pre>
in <pre>debian/control</pre> file add (if not added)
<pre>
XSBC-Bugtracker: mailto:yourname@yourserver.am
</pre>
== icon ==
and the icon (this is not necessary if you port existing maemo5 package).
it is done [http://wiki.maemo.org/Maemo_packaging#Displaying_an_icon_in_the_Application_Manager_next_to_your_package this] way.
you need to have `sharutils` installed. (app-arch/sharutils in gentoo).
* prepare a `48x48` png file.
* optimize it: <pre>optipng -strip all</pre>
* base64 encode it
<pre>
uuencode -m maeFat.png maeFat.png > maeFat.png.base64
</pre>
* Add the field <pre>XB-Maemo-Icon-26</pre> to your <pre>debian/control</pre> (in Maemo 4 the size of the icons was 26×26 pixels, hence the name of the field, which has not changed in Maemo 5)
* Open the <pre>base64</pre> version of your image and copy from the line under <pre>begin-base64 644 <name of 48×48 image></pre> to the line above the <pre>===</pre>.
* Add this to the XB-Maemo-Icon-26 field
* Add a space in front of every line of the encoded icon. You can do that automatically using sed when you base64 encode the image:
<pre>
uuencode -m <name of 48×48 image> <name of 48×48 image> | sed -e s,^,\ , > <name of 48×48 image>.base64
</pre>
== cli apps ==
if the program that is being ported is a <code>cli</code> application, then <code>cli icon</code> can be used.
[http://lists.maemo.org/pipermail/maemo-community/2010-January/003870.html cli icon announcement]
[http://n900.tannerlab.com/tools/cli.icon.txt old unexistent in archive.org too, txt file]
[http://samoff.com/random/maemo/cli_icon/ icons as images]
this is how the icon looks in <code>ham</code>:
[[File:Maemo-cli_icon_appman_sample_v002.png]]
and this is the <code>48x48</code> size icon:
[[File:Maemo-term_icon_v002_a001_48p.png]]
its <code>base64</code> encoded and shifted for <code>maemo</code> <code>text file</code> is [http://norayr.am/tips/port_maemo_package_to_leste/maemo-term_icon_v002_a001_48p.png.base64 here]
or here:
<pre> begin-base64 644 maemo-term_icon_v002_a001_48p.png
iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAGXRFWHRTb2Z0
d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAACYtJREFUeNrUWkurZUcVXvXY
59zbtyXpICEiaFrJQFDo6CDOHAi2UQdOFBw4CAqCDhU0DuIPEBtCRupIBxk4
MBMHgpIMnChE1OAD2uADEkFpUM9z710vv7Wq6ty6u09f0+nb3Tcb6u7Hqb33
96361qq1al/1vscfp+Ac3fjH6+S9v3owP/iYMfqyMaabz2ax62wwtnPDOPgY
ok8pxpQoKKW9UhRC8IFI+UQ4ds7HFKLW1mujffDexRi9MXiGMQG34uborbEO
515pckopZ7RxuN8RyflgtBrxfKeNGlNMY0ppxItGUnowSm3Rr7ezubfdnCwe
SuMw2EsPPvi9x957+SlrNAXvCCTIWkMKvQP6JEYdorQoG6gkUIpo+SgkStyV
SQb0RwOolACOQdBIlAaQ7XGtT4q2lGhDDCjRGsZYg8Qa71sR75WSPe5Z411o
doPfN1rrDs/q8MaVVt5Z5T1dnM++8sEPXHnqXzduxOuv/iVutlsGKeCxJbyE
jxN2uJc3FfkcJzHviBlG5sq/kUq8D4qvyzWKpQ/fzn94H/Mzub88L0hfJc/w
OPc8Ijh3is8xUhqIMZr+woULscMwRmjCwoDdY+959xcXiwX9/KVfRAyV0gYD
xTBVeY2mjJuvAR3+aMrgjPRQKtVzrRSDwE1Kl1uEuBADKCX34g5VzKLk/ihk
lQBl8CKt3IQA5MMEICttPIY5XDw6glSVspv15tGLRxcu/+rl3/D4q9lsJtjl
1WyTA7TxBKRYfjZEO2IMTufRosxdVcoCPvEIQTaBrYlLjuWFH0Z0Y433LC3Y
occ5a3ybz7EvmjdaD9IfvudG57d6G4E12fmse+d6tT76z38XcC6TwcOdEtvj
EGL7jif/fU3x1yaDmWejNuCpEI4ilZT3AFPAwifgA9gPuGMIFAESfqDUBpw2
inWuVNY+6z4l7NkX1ApWgI/QlvuD/qDZoWMEeRskaODBlmJ4oB9HGoYxycCy
1R9OavYtT92nweIRotnn4ZkvBhqfRvc/oM8MUJIQqC00zeemWL/FutRnq8Jp
uam0BtA1yC5x8xLHS7xa9sREEjsy+ogTg4CiASQGpZVDjBMJcTDEEajEeDSM
DjxCHm/s5s96mn0W0ekF3PZ2eSR1n0qk3+/U5koXaQU9G6q6nwCXcMgWF/CF
QAVfQHGESSsmQHTcUiYi0QfH6K8YfF8iGEASnBjagPGgp4SoTdra7tAhEnFc
ZIdVhxD3h3GI1/afgcV/B/pfsnG4plP8pU7q0s76twTPsbyAL3quwKUJUIBa
4HiBvrLHNd6DFI9MqpbvAWsANifPR2iGUnA6JDiwRAcLz547FwQThihxpE5/
Bol3YSS+G0g/iuuPQLxftUHEb9HRngDvmv0O/EQ2FfyqtTg3oBGrcyvgNzje
8nMYKT8XGANvmGhzGG68DzIKc4fJNAmDHC+Gr1kKf1Q0/0Kk7qOJDl/y+vAn
mDyfwOj5E1av4MVJG/CnAW8tn7XfWL6A7xvwwO134GmycUye8+y6+9FCG7/V
kbW+eRJzxcsYlb+q1H0yqQs/852+Ehm2b2QzNpavkmkJTMHv9F4IrCqBBvzY
gOe5aS94IYDOMw7R0oH/HqRkPhJJfyiS+yl+/j3i2FXr+meQ+7wN/J5MWlKE
4xFgy/eNbE61fNF7Bc9EBDzA7sDnWRfx3rlTwYu9Met2nNmIvj1m0YeSPXzR
6fRPIHiii3LrDO49pzyNDSecdtij+XUhsdqneb7GwIvmN9wYPPb8nLHMwCyZ
WHCdull0xghIHgPBk0l/V3H8tlHzrwd9dN1ZhmA/Hg/0OyD26xTdj2Eplo1T
rNFW8xm8Bngrx8tCYNGCLwR2Dgvw/RQ8W/6NgBcCmH2ZgJd8RkmESeM3kW+8
orS9GpX9RNTxFRXG57RzP9Tr9Lra6IcxIg8kg/s4XYXXgHqNSivI6QZAqx34
VRvjJ5bvS7gdVc6Dbgt8HgEE1JRvyK2kYP55ONDzOsyv+QN3zazia5KbsIV6
+zn/UPflcKmZiVPJg8i9oF8dv2H/pDqRUXXYKhukxVFi/EQ2bwq8EAB4Sfkl
rc0kJLNRs2zR8Rm7gKs6nDN4KS7cD8xr/kf6b6mJOJK3ECzb078xV6xvBb5G
GgbPDssZprxn5Een2wIvBJgxW6CkxabMEqk4aYBrSk7DecjOWVe0TQu1Po44
kAVxZEFMZ+mYYwKtbJhkBY/mKni2fDoxPd0mAS73mqSspgmZgJYYz+YZdpGG
HVW3sT6tbxE6V8XyN4Fnh71T8DmMah13TpzTYt0QqOBrmGzj/KbG8X2hskab
Ap5lw5rnRGbkephLzjsFn30AD2IHypUThJJ9IRTnOmn5mg4XSxfwiwJ20ZCR
jHKqebZ8BQ/Nx9MmqDdMQAoOPLg+rJRSgXaVEg3T3KZoejVNhat8JrKpSRk7
rMxObPmzAL8jUPKZpgTMs+wey68ay7fpwLLR/qa1fMlr7gr4EwSK5WNOV2VE
hgJ6O3HQ3ew6Ab8rRKrm26SMl18APp0l+ErAFZ2rov3YyGczyWv2WX65J5c/
kVEiIYu3SofvmECxds/1sKQGx/l967DLKfg9hQjLpm9yeV/Ah7sFvh2BPvuv
LJz4Rj7VYZdTy59SRY37qii6S5tNOaPcFgkxCY5KbMl1ydX3hsry+02yKRnl
/y1Ezm4EkqzZMAj2Xl0WWLcFaAt+57CTdJjJD/cDfK0HhryEsdvGMiInnHYP
+Dq79jU1aMBHukebLbPkuoTRVB24AbwsSx7rPYVIXzPKJh1OdA83Wxx4nYNQ
DqGs7zJhtaFyva+KmoCPdI83duKq91iW0nn9vs0qV00hcqsSMNxry7cFzaaA
5HqA1/T71KyiVctPqig3qV/vC/hcD2QJLWsWWvKfOgKbAn5qeV+qqPhmqqiz
deJs8WVd6yyzabU6E7jJ8qUQSfcbfIlCPOuqKiH+gtKu72wby0sJWAqRcwH+
mECCD+yqMLVbpGoKEUmHzxv4UlIalEZhjVosmKT5i2OtA1rLn2kVdbYE+IOS
0uyknEp7HfUYVeQlQ65fRTZ3oxA5w2xUeaNpw18tEf99UFHWf/iLSLH8uQVf
RyBARltrDaaEEPhbbI408jURmh/TeQWf10ZtF9iRu86mAAImSi4WeLklr5ad
X/BCoOsMf/cdZ11HKJ/4HwdiMHyg0/2cYW8nG+X1IDefzxUI8P9ySP2KITj3
4PMnpqT4ozZrP3bWxq7rUlmle0tsVv6xgWkg/Bg7IxPr/2K8Nbb/CTAAF12f
5l7y6xMAAAAASUVORK5CYII=
====</pre>
Also add the field:
<pre>XSBC-Maemo-Display-Name: Photo light meter</pre>
== pushing to maemo-leste-extras ==
go to [https://github.com/maemo-leste-extras/ maemo-leste-extras] and [https://github.com/maemo-leste-extras/bugtracker/issues/new/choose open an issue] in the [https://github.com/maemo-leste-extras/bugtracker extras bugtracker] repo to request a repository.
ping <code>Wizzup</code> on <code>#maemo-leste@irc.libera.chat</code> to open you repo[s]. then try to be attentive to emails, because you may get github invite which you need to accept, otherwise it’ll time out(not sure when).
push your code to the newly opened repo in <code>maemo/beowulf</code> branch.
<code>beowulf</code> is the codename of the <code>devuan</code> release on which <code>maemo</code> is based.
<pre>$ git remote -v
origin git@github.com:norayr/msid.git (fetch)
origin git@github.com:norayr/msid.git (push)
$ git remote add maemo git@github.com:maemo-leste-extras/msid
$ git remote -v
maemo git@github.com:maemo-leste-extras/msid (fetch)
maemo git@github.com:maemo-leste-extras/msid (push)
origin git@github.com:norayr/msid.git (fetch)
origin git@github.com:norayr/msid.git (push)
$ git push maemo main
Enumerating objects: 176, done.
Counting objects: 100% (176/176), done.
Delta compression using up to 4 threads
Compressing objects: 100% (86/86), done.
Writing objects: 100% (176/176), 578.92 KiB | 4.71 MiB/s, done.
Total 176 (delta 105), reused 141 (delta 85)
remote: Resolving deltas: 100% (105/105), done.
To github.com:maemo-leste-extras/msid
* [new branch] main -> main
$ git checkout -b maemo/beowulf
Switched to a new branch 'maemo/beowulf'
$ git push maemo maemo/beowulf
Total 0 (delta 0), reused 0 (delta 0)
remote:
remote: Create a pull request for 'maemo/beowulf' on GitHub by visiting:
remote: https://github.com/maemo-leste-extras/msid/pull/new/maemo/beowulf
remote:
To github.com:maemo-leste-extras/msid
* [new branch] maemo/beowulf -> maemo/beowulf
$
</pre>
the repo needs to be tagged.
<pre>git tag 0.0.1</pre>
and then the tag has to be pushed:
<pre>git push maemo 0.0.1</pre>
in case you did some changes but don’t want to bump a tag/changelog version, you need to delete the tag locally:
<pre>git tag -d 0.0.1
git push maemo :refs/tags/0.0.1</pre>
== phoenix ==
login https://phoenix.maemo.org/
the build sequence is:
* source
* binaries
* repos
find your project. let’s say https://phoenix.maemo.org/job/msid-source/
it has to have ‘build with parameters’ button on the left.
if everything is right it’ll trigger build of binaries https://phoenix.maemo.org/job/msid-binaries/
that link, for instance, will contain <code>arm64</code> build console output: https://phoenix.maemo.org/job/msid-binaries/architecture=arm64,label=arm64/1/console
== wiki ==
add a wiki page about the package [https://leste.maemo.org/Category:Extras here].
links:
https://leste.maemo.org/Development https://leste.maemo.org/Development/Porting_Packages https://leste.maemo.org/Development/Building_Packages https://leste.maemo.org/Development/Modified_Software
If you import a package, please try to preserve history if possible (converting from svn -> git is not too hard)
= Forking Debian/Devuan packages =
(TODO - Describe what branches need to be set up, Jenkins integration, etc)
= Preparing package for the repositories =
See https://leste.maemo.org/Development/Building_Packages
e93b1ad4a02f298a6a9f89adab03b72f3c29dbfb
1465
1464
2023-01-16T21:35:46Z
Norayr
36
/* Porting existing Maemo Fremantle packages */
wikitext
text/x-wiki
= Porting / Creating packages =
If you're looking at creating your own package, or porting software, the first things to do are:
# Check if someone already ported the package (if it in the repository? Is there an issue for it?)
# Check if there already are Debian packaging scripts/files. Debian packages a LOT of software, so it's likely that the software is already in the Maemo repository, or someone at least has build scripts for it.
# (TODO)
= Porting existing Maemo Fremantle packages =
Maemo Fremantle ("Nokia Maemo for the N900") contains a lot of packages that are open source. Most of them should run with very few changes on Maemo Leste, the main changes you will need to make will be:
# Check if someone already ported the package (if it in the repository? Is there an issue for it?)
# Updating of the Debian packaging files/scripts.
# Porting to newer libraries if old libraries are used (OpenSSL 0.9.8 -> OpenSSL 1.1.x, Qt4 -> Qt5, etc)
# Fixing any compile errors/warnings due to more strict compile flags
Source of the packages can be found at one of these places:
* http://maemo.org/packages/
* https://garage.maemo.org/
* http://repository.maemo.org/extras/pool/fremantle/free/source/
* http://repository.maemo.org/extras-devel/pool/fremantle/source/free/
* http://repository.maemo.org/extras-testing/pool/fremantle/source/free/
= Example =
== Getting the source package ==
Let's say we'd like to port a package "msid".
it's here: <pre>http://repository.maemo.org/extras/pool/fremantle/free/source/m/msid/</pre>
get the latest version:
<pre>
wget http://repository.maemo.org/extras/pool/fremantle/free/source/m/msid/msid_0.4.8-2.tar.gz
</pre>
<pre>
tar zxvf msid_0.4.8-2.tar.gz
cd msid-0.4.8
</pre>
== Creating new repo ==
init a git repo:
<pre>
git init
git add *
git commit -a -m "initial commit from fremantle sources"
</pre>
change content of `debian/compat` to `9`.
edit <pre>debian/changelog</pre>.
let's say the last release was:
<pre>
msid (0.4.8-2) unstable; urgency=low
</pre>
now the release should be:
<pre>
msid (0.4.8-2+leste1) unstable; urgency=low
</pre>
record your changes, add your name.
look if <pre>debian/control</pre> dependency versions should be changed.
== installing build dependencies==
<pre>
sudo apt build-dep .
</pre>
== building ==
<pre>
dpkg-buildpackage -b -uc
</pre>
add <pre>gbp.conf</pre> file in <pre>debian</pre> directory with the following content:
<pre>
[DEFAULT]
upstream-tag=%(version)s
</pre>
in <pre>debian/control</pre> file add (if not added)
<pre>
XSBC-Bugtracker: mailto:yourname@yourserver.am
</pre>
== icon ==
and the icon (this is not necessary if you port existing maemo5 package).
it is done [http://wiki.maemo.org/Maemo_packaging#Displaying_an_icon_in_the_Application_Manager_next_to_your_package this] way.
you need to have `sharutils` installed. (app-arch/sharutils in gentoo).
* prepare a `48x48` png file.
* optimize it: <pre>optipng -strip all</pre>
* base64 encode it
<pre>
uuencode -m maeFat.png maeFat.png > maeFat.png.base64
</pre>
* Add the field <pre>XB-Maemo-Icon-26</pre> to your <pre>debian/control</pre> (in Maemo 4 the size of the icons was 26×26 pixels, hence the name of the field, which has not changed in Maemo 5)
* Open the <pre>base64</pre> version of your image and copy from the line under <pre>begin-base64 644 <name of 48×48 image></pre> to the line above the <pre>===</pre>.
* Add this to the XB-Maemo-Icon-26 field
* Add a space in front of every line of the encoded icon. You can do that automatically using sed when you base64 encode the image:
<pre>
uuencode -m <name of 48×48 image> <name of 48×48 image> | sed -e s,^,\ , > <name of 48×48 image>.base64
</pre>
== cli apps ==
if the program that is being ported is a <code>cli</code> application, then <code>cli icon</code> can be used.
[http://lists.maemo.org/pipermail/maemo-community/2010-January/003870.html cli icon announcement]
[http://n900.tannerlab.com/tools/cli.icon.txt old unexistent in archive.org too, txt file]
[http://samoff.com/random/maemo/cli_icon/ icons as images]
this is how the icon looks in <code>ham</code>:
[[File:Maemo-cli_icon_appman_sample_v002.png]]
and this is the <code>48x48</code> size icon:
[[File:Maemo-term_icon_v002_a001_48p.png]]
its <code>base64</code> encoded and shifted for <code>maemo</code> <code>text file</code> is [http://norayr.am/tips/port_maemo_package_to_leste/maemo-term_icon_v002_a001_48p.png.base64 here]
or here:
<pre> begin-base64 644 maemo-term_icon_v002_a001_48p.png
iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAGXRFWHRTb2Z0
d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAACYtJREFUeNrUWkurZUcVXvXY
59zbtyXpICEiaFrJQFDo6CDOHAi2UQdOFBw4CAqCDhU0DuIPEBtCRupIBxk4
MBMHgpIMnChE1OAD2uADEkFpUM9z710vv7Wq6ty6u09f0+nb3Tcb6u7Hqb33
96361qq1al/1vscfp+Ac3fjH6+S9v3owP/iYMfqyMaabz2ax62wwtnPDOPgY
ok8pxpQoKKW9UhRC8IFI+UQ4ds7HFKLW1mujffDexRi9MXiGMQG34uborbEO
515pckopZ7RxuN8RyflgtBrxfKeNGlNMY0ppxItGUnowSm3Rr7ezubfdnCwe
SuMw2EsPPvi9x957+SlrNAXvCCTIWkMKvQP6JEYdorQoG6gkUIpo+SgkStyV
SQb0RwOolACOQdBIlAaQ7XGtT4q2lGhDDCjRGsZYg8Qa71sR75WSPe5Z411o
doPfN1rrDs/q8MaVVt5Z5T1dnM++8sEPXHnqXzduxOuv/iVutlsGKeCxJbyE
jxN2uJc3FfkcJzHviBlG5sq/kUq8D4qvyzWKpQ/fzn94H/Mzub88L0hfJc/w
OPc8Ijh3is8xUhqIMZr+woULscMwRmjCwoDdY+959xcXiwX9/KVfRAyV0gYD
xTBVeY2mjJuvAR3+aMrgjPRQKtVzrRSDwE1Kl1uEuBADKCX34g5VzKLk/ihk
lQBl8CKt3IQA5MMEICttPIY5XDw6glSVspv15tGLRxcu/+rl3/D4q9lsJtjl
1WyTA7TxBKRYfjZEO2IMTufRosxdVcoCPvEIQTaBrYlLjuWFH0Z0Y433LC3Y
occ5a3ybz7EvmjdaD9IfvudG57d6G4E12fmse+d6tT76z38XcC6TwcOdEtvj
EGL7jif/fU3x1yaDmWejNuCpEI4ilZT3AFPAwifgA9gPuGMIFAESfqDUBpw2
inWuVNY+6z4l7NkX1ApWgI/QlvuD/qDZoWMEeRskaODBlmJ4oB9HGoYxycCy
1R9OavYtT92nweIRotnn4ZkvBhqfRvc/oM8MUJIQqC00zeemWL/FutRnq8Jp
uam0BtA1yC5x8xLHS7xa9sREEjsy+ogTg4CiASQGpZVDjBMJcTDEEajEeDSM
DjxCHm/s5s96mn0W0ekF3PZ2eSR1n0qk3+/U5koXaQU9G6q6nwCXcMgWF/CF
QAVfQHGESSsmQHTcUiYi0QfH6K8YfF8iGEASnBjagPGgp4SoTdra7tAhEnFc
ZIdVhxD3h3GI1/afgcV/B/pfsnG4plP8pU7q0s76twTPsbyAL3quwKUJUIBa
4HiBvrLHNd6DFI9MqpbvAWsANifPR2iGUnA6JDiwRAcLz547FwQThihxpE5/
Bol3YSS+G0g/iuuPQLxftUHEb9HRngDvmv0O/EQ2FfyqtTg3oBGrcyvgNzje
8nMYKT8XGANvmGhzGG68DzIKc4fJNAmDHC+Gr1kKf1Q0/0Kk7qOJDl/y+vAn
mDyfwOj5E1av4MVJG/CnAW8tn7XfWL6A7xvwwO134GmycUye8+y6+9FCG7/V
kbW+eRJzxcsYlb+q1H0yqQs/852+Ehm2b2QzNpavkmkJTMHv9F4IrCqBBvzY
gOe5aS94IYDOMw7R0oH/HqRkPhJJfyiS+yl+/j3i2FXr+meQ+7wN/J5MWlKE
4xFgy/eNbE61fNF7Bc9EBDzA7sDnWRfx3rlTwYu9Met2nNmIvj1m0YeSPXzR
6fRPIHiii3LrDO49pzyNDSecdtij+XUhsdqneb7GwIvmN9wYPPb8nLHMwCyZ
WHCdull0xghIHgPBk0l/V3H8tlHzrwd9dN1ZhmA/Hg/0OyD26xTdj2Eplo1T
rNFW8xm8Bngrx8tCYNGCLwR2Dgvw/RQ8W/6NgBcCmH2ZgJd8RkmESeM3kW+8
orS9GpX9RNTxFRXG57RzP9Tr9Lra6IcxIg8kg/s4XYXXgHqNSivI6QZAqx34
VRvjJ5bvS7gdVc6Dbgt8HgEE1JRvyK2kYP55ONDzOsyv+QN3zazia5KbsIV6
+zn/UPflcKmZiVPJg8i9oF8dv2H/pDqRUXXYKhukxVFi/EQ2bwq8EAB4Sfkl
rc0kJLNRs2zR8Rm7gKs6nDN4KS7cD8xr/kf6b6mJOJK3ECzb078xV6xvBb5G
GgbPDssZprxn5Een2wIvBJgxW6CkxabMEqk4aYBrSk7DecjOWVe0TQu1Po44
kAVxZEFMZ+mYYwKtbJhkBY/mKni2fDoxPd0mAS73mqSspgmZgJYYz+YZdpGG
HVW3sT6tbxE6V8XyN4Fnh71T8DmMah13TpzTYt0QqOBrmGzj/KbG8X2hskab
Ap5lw5rnRGbkephLzjsFn30AD2IHypUThJJ9IRTnOmn5mg4XSxfwiwJ20ZCR
jHKqebZ8BQ/Nx9MmqDdMQAoOPLg+rJRSgXaVEg3T3KZoejVNhat8JrKpSRk7
rMxObPmzAL8jUPKZpgTMs+wey68ay7fpwLLR/qa1fMlr7gr4EwSK5WNOV2VE
hgJ6O3HQ3ew6Ab8rRKrm26SMl18APp0l+ErAFZ2rov3YyGczyWv2WX65J5c/
kVEiIYu3SofvmECxds/1sKQGx/l967DLKfg9hQjLpm9yeV/Ah7sFvh2BPvuv
LJz4Rj7VYZdTy59SRY37qii6S5tNOaPcFgkxCY5KbMl1ydX3hsry+02yKRnl
/y1Ezm4EkqzZMAj2Xl0WWLcFaAt+57CTdJjJD/cDfK0HhryEsdvGMiInnHYP
+Dq79jU1aMBHukebLbPkuoTRVB24AbwsSx7rPYVIXzPKJh1OdA83Wxx4nYNQ
DqGs7zJhtaFyva+KmoCPdI83duKq91iW0nn9vs0qV00hcqsSMNxry7cFzaaA
5HqA1/T71KyiVctPqig3qV/vC/hcD2QJLWsWWvKfOgKbAn5qeV+qqPhmqqiz
deJs8WVd6yyzabU6E7jJ8qUQSfcbfIlCPOuqKiH+gtKu72wby0sJWAqRcwH+
mECCD+yqMLVbpGoKEUmHzxv4UlIalEZhjVosmKT5i2OtA1rLn2kVdbYE+IOS
0uyknEp7HfUYVeQlQ65fRTZ3oxA5w2xUeaNpw18tEf99UFHWf/iLSLH8uQVf
RyBARltrDaaEEPhbbI408jURmh/TeQWf10ZtF9iRu86mAAImSi4WeLklr5ad
X/BCoOsMf/cdZ11HKJ/4HwdiMHyg0/2cYW8nG+X1IDefzxUI8P9ySP2KITj3
4PMnpqT4ozZrP3bWxq7rUlmle0tsVv6xgWkg/Bg7IxPr/2K8Nbb/CTAAF12f
5l7y6xMAAAAASUVORK5CYII=
====</pre>
Also add the field:
<pre>XSBC-Maemo-Display-Name: Photo light meter</pre>
== pushing to maemo-leste-extras ==
go to [https://github.com/maemo-leste-extras/ maemo-leste-extras] and [https://github.com/maemo-leste-extras/bugtracker/issues/new/choose open an issue] in the [https://github.com/maemo-leste-extras/bugtracker extras bugtracker] repo to request a repository.
ping <code>Wizzup</code> on <code>#maemo-leste@irc.libera.chat</code> to open you repo[s]. then try to be attentive to emails, because you may get github invite which you need to accept, otherwise it’ll time out(not sure when).
push your code to the newly opened repo in <code>maemo/beowulf</code> branch.
<code>beowulf</code> is the codename of the <code>devuan</code> release on which <code>maemo</code> is based.
<pre>$ git remote -v
origin git@github.com:norayr/msid.git (fetch)
origin git@github.com:norayr/msid.git (push)
$ git remote add maemo git@github.com:maemo-leste-extras/msid
$ git remote -v
maemo git@github.com:maemo-leste-extras/msid (fetch)
maemo git@github.com:maemo-leste-extras/msid (push)
origin git@github.com:norayr/msid.git (fetch)
origin git@github.com:norayr/msid.git (push)
$ git push maemo main
Enumerating objects: 176, done.
Counting objects: 100% (176/176), done.
Delta compression using up to 4 threads
Compressing objects: 100% (86/86), done.
Writing objects: 100% (176/176), 578.92 KiB | 4.71 MiB/s, done.
Total 176 (delta 105), reused 141 (delta 85)
remote: Resolving deltas: 100% (105/105), done.
To github.com:maemo-leste-extras/msid
* [new branch] main -> main
$ git checkout -b maemo/beowulf
Switched to a new branch 'maemo/beowulf'
$ git push maemo maemo/beowulf
Total 0 (delta 0), reused 0 (delta 0)
remote:
remote: Create a pull request for 'maemo/beowulf' on GitHub by visiting:
remote: https://github.com/maemo-leste-extras/msid/pull/new/maemo/beowulf
remote:
To github.com:maemo-leste-extras/msid
* [new branch] maemo/beowulf -> maemo/beowulf
$
</pre>
the repo needs to be tagged.
<pre>git tag 0.0.1</pre>
and then the tag has to be pushed:
<pre>git push maemo 0.0.1</pre>
in case you did some changes but don’t want to bump a tag/changelog version, you need to delete the tag locally:
<pre>git tag -d 0.0.1
git push maemo :refs/tags/0.0.1</pre>
== phoenix ==
login https://phoenix.maemo.org/
the build sequence is:
* source
* binaries
* repos
find your project. let’s say https://phoenix.maemo.org/job/msid-source/
it has to have ‘build with parameters’ button on the left.
if everything is right it’ll trigger build of binaries https://phoenix.maemo.org/job/msid-binaries/
that link, for instance, will contain <code>arm64</code> build console output: https://phoenix.maemo.org/job/msid-binaries/architecture=arm64,label=arm64/1/console
== wiki ==
add a wiki page about the package [https://leste.maemo.org/Category:Extras here].
links:
https://leste.maemo.org/Development https://leste.maemo.org/Development/Porting_Packages https://leste.maemo.org/Development/Building_Packages https://leste.maemo.org/Development/Modified_Software
If you import a package, please try to preserve history if possible (converting from svn -> git is not too hard)
= Forking Debian/Devuan packages =
(TODO - Describe what branches need to be set up, Jenkins integration, etc)
= Preparing package for the repositories =
See https://leste.maemo.org/Development/Building_Packages
314db70dd09f4e8d301f7e0ee46a6f10adf45bf0
1466
1465
2023-01-16T21:43:22Z
Norayr
36
/* Porting existing Maemo Fremantle packages */
wikitext
text/x-wiki
= Porting / Creating packages =
If you're looking at creating your own package, or porting software, the first things to do are:
# Check if someone already ported the package (if it in the repository? Is there an issue for it?)
# Check if there already are Debian packaging scripts/files. Debian packages a LOT of software, so it's likely that the software is already in the Maemo repository, or someone at least has build scripts for it.
# (TODO)
= Porting existing Maemo Fremantle packages =
Maemo Fremantle ("Nokia Maemo for the N900") contains a lot of packages that are open source. Most of them should run with very few changes on Maemo Leste, the main changes you will need to make will be:
# Check if someone already ported the package (if it in the repository? Is there an issue for it?)
# Updating of the Debian packaging files/scripts.
# Porting to newer libraries if old libraries are used (OpenSSL 0.9.8 -> OpenSSL 1.1.x, Qt4 -> Qt5, etc)
# Fixing any compile errors/warnings due to more strict compile flags
Source of the packages can be found at one of these places:
* http://maemo.org/packages/
* https://garage.maemo.org/
* http://repository.maemo.org/extras/pool/fremantle/free/source/
* http://repository.maemo.org/extras-devel/pool/fremantle-1.2/free/
* http://repository.maemo.org/extras-devel/pool/fremantle-1.3/free/
* http://repository.maemo.org/extras-devel/pool/fremantle-1.2/free/source/
* http://repository.maemo.org/extras-testing/pool/fremantle-1.3/free/source/
= Example =
== Getting the source package ==
Let's say we'd like to port a package "msid".
it's here: <pre>http://repository.maemo.org/extras/pool/fremantle/free/source/m/msid/</pre>
get the latest version:
<pre>
wget http://repository.maemo.org/extras/pool/fremantle/free/source/m/msid/msid_0.4.8-2.tar.gz
</pre>
<pre>
tar zxvf msid_0.4.8-2.tar.gz
cd msid-0.4.8
</pre>
== Creating new repo ==
init a git repo:
<pre>
git init
git add *
git commit -a -m "initial commit from fremantle sources"
</pre>
change content of `debian/compat` to `9`.
edit <pre>debian/changelog</pre>.
let's say the last release was:
<pre>
msid (0.4.8-2) unstable; urgency=low
</pre>
now the release should be:
<pre>
msid (0.4.8-2+leste1) unstable; urgency=low
</pre>
record your changes, add your name.
look if <pre>debian/control</pre> dependency versions should be changed.
== installing build dependencies==
<pre>
sudo apt build-dep .
</pre>
== building ==
<pre>
dpkg-buildpackage -b -uc
</pre>
add <pre>gbp.conf</pre> file in <pre>debian</pre> directory with the following content:
<pre>
[DEFAULT]
upstream-tag=%(version)s
</pre>
in <pre>debian/control</pre> file add (if not added)
<pre>
XSBC-Bugtracker: mailto:yourname@yourserver.am
</pre>
== icon ==
and the icon (this is not necessary if you port existing maemo5 package).
it is done [http://wiki.maemo.org/Maemo_packaging#Displaying_an_icon_in_the_Application_Manager_next_to_your_package this] way.
you need to have `sharutils` installed. (app-arch/sharutils in gentoo).
* prepare a `48x48` png file.
* optimize it: <pre>optipng -strip all</pre>
* base64 encode it
<pre>
uuencode -m maeFat.png maeFat.png > maeFat.png.base64
</pre>
* Add the field <pre>XB-Maemo-Icon-26</pre> to your <pre>debian/control</pre> (in Maemo 4 the size of the icons was 26×26 pixels, hence the name of the field, which has not changed in Maemo 5)
* Open the <pre>base64</pre> version of your image and copy from the line under <pre>begin-base64 644 <name of 48×48 image></pre> to the line above the <pre>===</pre>.
* Add this to the XB-Maemo-Icon-26 field
* Add a space in front of every line of the encoded icon. You can do that automatically using sed when you base64 encode the image:
<pre>
uuencode -m <name of 48×48 image> <name of 48×48 image> | sed -e s,^,\ , > <name of 48×48 image>.base64
</pre>
== cli apps ==
if the program that is being ported is a <code>cli</code> application, then <code>cli icon</code> can be used.
[http://lists.maemo.org/pipermail/maemo-community/2010-January/003870.html cli icon announcement]
[http://n900.tannerlab.com/tools/cli.icon.txt old unexistent in archive.org too, txt file]
[http://samoff.com/random/maemo/cli_icon/ icons as images]
this is how the icon looks in <code>ham</code>:
[[File:Maemo-cli_icon_appman_sample_v002.png]]
and this is the <code>48x48</code> size icon:
[[File:Maemo-term_icon_v002_a001_48p.png]]
its <code>base64</code> encoded and shifted for <code>maemo</code> <code>text file</code> is [http://norayr.am/tips/port_maemo_package_to_leste/maemo-term_icon_v002_a001_48p.png.base64 here]
or here:
<pre> begin-base64 644 maemo-term_icon_v002_a001_48p.png
iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAGXRFWHRTb2Z0
d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAACYtJREFUeNrUWkurZUcVXvXY
59zbtyXpICEiaFrJQFDo6CDOHAi2UQdOFBw4CAqCDhU0DuIPEBtCRupIBxk4
MBMHgpIMnChE1OAD2uADEkFpUM9z710vv7Wq6ty6u09f0+nb3Tcb6u7Hqb33
96361qq1al/1vscfp+Ac3fjH6+S9v3owP/iYMfqyMaabz2ax62wwtnPDOPgY
ok8pxpQoKKW9UhRC8IFI+UQ4ds7HFKLW1mujffDexRi9MXiGMQG34uborbEO
515pckopZ7RxuN8RyflgtBrxfKeNGlNMY0ppxItGUnowSm3Rr7ezubfdnCwe
SuMw2EsPPvi9x957+SlrNAXvCCTIWkMKvQP6JEYdorQoG6gkUIpo+SgkStyV
SQb0RwOolACOQdBIlAaQ7XGtT4q2lGhDDCjRGsZYg8Qa71sR75WSPe5Z411o
doPfN1rrDs/q8MaVVt5Z5T1dnM++8sEPXHnqXzduxOuv/iVutlsGKeCxJbyE
jxN2uJc3FfkcJzHviBlG5sq/kUq8D4qvyzWKpQ/fzn94H/Mzub88L0hfJc/w
OPc8Ijh3is8xUhqIMZr+woULscMwRmjCwoDdY+959xcXiwX9/KVfRAyV0gYD
xTBVeY2mjJuvAR3+aMrgjPRQKtVzrRSDwE1Kl1uEuBADKCX34g5VzKLk/ihk
lQBl8CKt3IQA5MMEICttPIY5XDw6glSVspv15tGLRxcu/+rl3/D4q9lsJtjl
1WyTA7TxBKRYfjZEO2IMTufRosxdVcoCPvEIQTaBrYlLjuWFH0Z0Y433LC3Y
occ5a3ybz7EvmjdaD9IfvudG57d6G4E12fmse+d6tT76z38XcC6TwcOdEtvj
EGL7jif/fU3x1yaDmWejNuCpEI4ilZT3AFPAwifgA9gPuGMIFAESfqDUBpw2
inWuVNY+6z4l7NkX1ApWgI/QlvuD/qDZoWMEeRskaODBlmJ4oB9HGoYxycCy
1R9OavYtT92nweIRotnn4ZkvBhqfRvc/oM8MUJIQqC00zeemWL/FutRnq8Jp
uam0BtA1yC5x8xLHS7xa9sREEjsy+ogTg4CiASQGpZVDjBMJcTDEEajEeDSM
DjxCHm/s5s96mn0W0ekF3PZ2eSR1n0qk3+/U5koXaQU9G6q6nwCXcMgWF/CF
QAVfQHGESSsmQHTcUiYi0QfH6K8YfF8iGEASnBjagPGgp4SoTdra7tAhEnFc
ZIdVhxD3h3GI1/afgcV/B/pfsnG4plP8pU7q0s76twTPsbyAL3quwKUJUIBa
4HiBvrLHNd6DFI9MqpbvAWsANifPR2iGUnA6JDiwRAcLz547FwQThihxpE5/
Bol3YSS+G0g/iuuPQLxftUHEb9HRngDvmv0O/EQ2FfyqtTg3oBGrcyvgNzje
8nMYKT8XGANvmGhzGG68DzIKc4fJNAmDHC+Gr1kKf1Q0/0Kk7qOJDl/y+vAn
mDyfwOj5E1av4MVJG/CnAW8tn7XfWL6A7xvwwO134GmycUye8+y6+9FCG7/V
kbW+eRJzxcsYlb+q1H0yqQs/852+Ehm2b2QzNpavkmkJTMHv9F4IrCqBBvzY
gOe5aS94IYDOMw7R0oH/HqRkPhJJfyiS+yl+/j3i2FXr+meQ+7wN/J5MWlKE
4xFgy/eNbE61fNF7Bc9EBDzA7sDnWRfx3rlTwYu9Met2nNmIvj1m0YeSPXzR
6fRPIHiii3LrDO49pzyNDSecdtij+XUhsdqneb7GwIvmN9wYPPb8nLHMwCyZ
WHCdull0xghIHgPBk0l/V3H8tlHzrwd9dN1ZhmA/Hg/0OyD26xTdj2Eplo1T
rNFW8xm8Bngrx8tCYNGCLwR2Dgvw/RQ8W/6NgBcCmH2ZgJd8RkmESeM3kW+8
orS9GpX9RNTxFRXG57RzP9Tr9Lra6IcxIg8kg/s4XYXXgHqNSivI6QZAqx34
VRvjJ5bvS7gdVc6Dbgt8HgEE1JRvyK2kYP55ONDzOsyv+QN3zazia5KbsIV6
+zn/UPflcKmZiVPJg8i9oF8dv2H/pDqRUXXYKhukxVFi/EQ2bwq8EAB4Sfkl
rc0kJLNRs2zR8Rm7gKs6nDN4KS7cD8xr/kf6b6mJOJK3ECzb078xV6xvBb5G
GgbPDssZprxn5Een2wIvBJgxW6CkxabMEqk4aYBrSk7DecjOWVe0TQu1Po44
kAVxZEFMZ+mYYwKtbJhkBY/mKni2fDoxPd0mAS73mqSspgmZgJYYz+YZdpGG
HVW3sT6tbxE6V8XyN4Fnh71T8DmMah13TpzTYt0QqOBrmGzj/KbG8X2hskab
Ap5lw5rnRGbkephLzjsFn30AD2IHypUThJJ9IRTnOmn5mg4XSxfwiwJ20ZCR
jHKqebZ8BQ/Nx9MmqDdMQAoOPLg+rJRSgXaVEg3T3KZoejVNhat8JrKpSRk7
rMxObPmzAL8jUPKZpgTMs+wey68ay7fpwLLR/qa1fMlr7gr4EwSK5WNOV2VE
hgJ6O3HQ3ew6Ab8rRKrm26SMl18APp0l+ErAFZ2rov3YyGczyWv2WX65J5c/
kVEiIYu3SofvmECxds/1sKQGx/l967DLKfg9hQjLpm9yeV/Ah7sFvh2BPvuv
LJz4Rj7VYZdTy59SRY37qii6S5tNOaPcFgkxCY5KbMl1ydX3hsry+02yKRnl
/y1Ezm4EkqzZMAj2Xl0WWLcFaAt+57CTdJjJD/cDfK0HhryEsdvGMiInnHYP
+Dq79jU1aMBHukebLbPkuoTRVB24AbwsSx7rPYVIXzPKJh1OdA83Wxx4nYNQ
DqGs7zJhtaFyva+KmoCPdI83duKq91iW0nn9vs0qV00hcqsSMNxry7cFzaaA
5HqA1/T71KyiVctPqig3qV/vC/hcD2QJLWsWWvKfOgKbAn5qeV+qqPhmqqiz
deJs8WVd6yyzabU6E7jJ8qUQSfcbfIlCPOuqKiH+gtKu72wby0sJWAqRcwH+
mECCD+yqMLVbpGoKEUmHzxv4UlIalEZhjVosmKT5i2OtA1rLn2kVdbYE+IOS
0uyknEp7HfUYVeQlQ65fRTZ3oxA5w2xUeaNpw18tEf99UFHWf/iLSLH8uQVf
RyBARltrDaaEEPhbbI408jURmh/TeQWf10ZtF9iRu86mAAImSi4WeLklr5ad
X/BCoOsMf/cdZ11HKJ/4HwdiMHyg0/2cYW8nG+X1IDefzxUI8P9ySP2KITj3
4PMnpqT4ozZrP3bWxq7rUlmle0tsVv6xgWkg/Bg7IxPr/2K8Nbb/CTAAF12f
5l7y6xMAAAAASUVORK5CYII=
====</pre>
Also add the field:
<pre>XSBC-Maemo-Display-Name: Photo light meter</pre>
== pushing to maemo-leste-extras ==
go to [https://github.com/maemo-leste-extras/ maemo-leste-extras] and [https://github.com/maemo-leste-extras/bugtracker/issues/new/choose open an issue] in the [https://github.com/maemo-leste-extras/bugtracker extras bugtracker] repo to request a repository.
ping <code>Wizzup</code> on <code>#maemo-leste@irc.libera.chat</code> to open you repo[s]. then try to be attentive to emails, because you may get github invite which you need to accept, otherwise it’ll time out(not sure when).
push your code to the newly opened repo in <code>maemo/beowulf</code> branch.
<code>beowulf</code> is the codename of the <code>devuan</code> release on which <code>maemo</code> is based.
<pre>$ git remote -v
origin git@github.com:norayr/msid.git (fetch)
origin git@github.com:norayr/msid.git (push)
$ git remote add maemo git@github.com:maemo-leste-extras/msid
$ git remote -v
maemo git@github.com:maemo-leste-extras/msid (fetch)
maemo git@github.com:maemo-leste-extras/msid (push)
origin git@github.com:norayr/msid.git (fetch)
origin git@github.com:norayr/msid.git (push)
$ git push maemo main
Enumerating objects: 176, done.
Counting objects: 100% (176/176), done.
Delta compression using up to 4 threads
Compressing objects: 100% (86/86), done.
Writing objects: 100% (176/176), 578.92 KiB | 4.71 MiB/s, done.
Total 176 (delta 105), reused 141 (delta 85)
remote: Resolving deltas: 100% (105/105), done.
To github.com:maemo-leste-extras/msid
* [new branch] main -> main
$ git checkout -b maemo/beowulf
Switched to a new branch 'maemo/beowulf'
$ git push maemo maemo/beowulf
Total 0 (delta 0), reused 0 (delta 0)
remote:
remote: Create a pull request for 'maemo/beowulf' on GitHub by visiting:
remote: https://github.com/maemo-leste-extras/msid/pull/new/maemo/beowulf
remote:
To github.com:maemo-leste-extras/msid
* [new branch] maemo/beowulf -> maemo/beowulf
$
</pre>
the repo needs to be tagged.
<pre>git tag 0.0.1</pre>
and then the tag has to be pushed:
<pre>git push maemo 0.0.1</pre>
in case you did some changes but don’t want to bump a tag/changelog version, you need to delete the tag locally:
<pre>git tag -d 0.0.1
git push maemo :refs/tags/0.0.1</pre>
== phoenix ==
login https://phoenix.maemo.org/
the build sequence is:
* source
* binaries
* repos
find your project. let’s say https://phoenix.maemo.org/job/msid-source/
it has to have ‘build with parameters’ button on the left.
if everything is right it’ll trigger build of binaries https://phoenix.maemo.org/job/msid-binaries/
that link, for instance, will contain <code>arm64</code> build console output: https://phoenix.maemo.org/job/msid-binaries/architecture=arm64,label=arm64/1/console
== wiki ==
add a wiki page about the package [https://leste.maemo.org/Category:Extras here].
links:
https://leste.maemo.org/Development https://leste.maemo.org/Development/Porting_Packages https://leste.maemo.org/Development/Building_Packages https://leste.maemo.org/Development/Modified_Software
If you import a package, please try to preserve history if possible (converting from svn -> git is not too hard)
= Forking Debian/Devuan packages =
(TODO - Describe what branches need to be set up, Jenkins integration, etc)
= Preparing package for the repositories =
See https://leste.maemo.org/Development/Building_Packages
800c153b545cba71101119b74e09fda2003e1f3f
1467
1466
2023-01-16T21:44:49Z
Norayr
36
wikitext
text/x-wiki
= Porting / Creating packages =
If you're looking at creating your own package, or porting software, the first things to do are:
# Check if someone already ported the package (if it in the repository? Is there an issue for it?)
# Check if there already are Debian packaging scripts/files. Debian packages a LOT of software, so it's likely that the software is already in the Maemo repository, or someone at least has build scripts for it.
# (TODO)
= Porting existing Maemo Fremantle packages =
Maemo Fremantle ("Nokia Maemo for the N900") contains a lot of packages that are open source. Most of them should run with very few changes on Maemo Leste, the main changes you will need to make will be:
# Check if someone already ported the package (if it in the repository? Is there an issue for it?)
# Updating of the Debian packaging files/scripts.
# Porting to newer libraries if old libraries are used (OpenSSL 0.9.8 -> OpenSSL 1.1.x, Qt4 -> Qt5, etc)
# Fixing any compile errors/warnings due to more strict compile flags
Source of the packages can be found at one of these places:
* http://maemo.org/packages/
* https://garage.maemo.org/
* http://repository.maemo.org/extras/pool/fremantle/free/source/
* http://repository.maemo.org/extras-devel/pool/fremantle-1.2/free/source/
* http://repository.maemo.org/extras-devel/pool/fremantle-1.3/free/source/
* http://repository.maemo.org/extras-devel/pool/fremantle-1.2/free/source/
* http://repository.maemo.org/extras-testing/pool/fremantle-1.3/free/source/
= Example =
== Getting the source package ==
Let's say we'd like to port a package "msid".
it's here: <pre>http://repository.maemo.org/extras/pool/fremantle/free/source/m/msid/</pre>
get the latest version:
<pre>
wget http://repository.maemo.org/extras/pool/fremantle/free/source/m/msid/msid_0.4.8-2.tar.gz
</pre>
<pre>
tar zxvf msid_0.4.8-2.tar.gz
cd msid-0.4.8
</pre>
== Creating new repo ==
init a git repo:
<pre>
git init
git add *
git commit -a -m "initial commit from fremantle sources"
</pre>
change content of `debian/compat` to `9`.
edit <pre>debian/changelog</pre>.
let's say the last release was:
<pre>
msid (0.4.8-2) unstable; urgency=low
</pre>
now the release should be:
<pre>
msid (0.4.8-2+leste1) unstable; urgency=low
</pre>
record your changes, add your name.
look if <pre>debian/control</pre> dependency versions should be changed.
== installing build dependencies==
<pre>
sudo apt build-dep .
</pre>
== building ==
<pre>
dpkg-buildpackage -b -uc
</pre>
add <pre>gbp.conf</pre> file in <pre>debian</pre> directory with the following content:
<pre>
[DEFAULT]
upstream-tag=%(version)s
</pre>
in <pre>debian/control</pre> file add (if not added)
<pre>
XSBC-Bugtracker: mailto:yourname@yourserver.am
</pre>
== icon ==
and the icon (this is not necessary if you port existing maemo5 package).
it is done [http://wiki.maemo.org/Maemo_packaging#Displaying_an_icon_in_the_Application_Manager_next_to_your_package this] way.
you need to have `sharutils` installed. (app-arch/sharutils in gentoo).
* prepare a `48x48` png file.
* optimize it: <pre>optipng -strip all</pre>
* base64 encode it
<pre>
uuencode -m maeFat.png maeFat.png > maeFat.png.base64
</pre>
* Add the field <pre>XB-Maemo-Icon-26</pre> to your <pre>debian/control</pre> (in Maemo 4 the size of the icons was 26×26 pixels, hence the name of the field, which has not changed in Maemo 5)
* Open the <pre>base64</pre> version of your image and copy from the line under <pre>begin-base64 644 <name of 48×48 image></pre> to the line above the <pre>===</pre>.
* Add this to the XB-Maemo-Icon-26 field
* Add a space in front of every line of the encoded icon. You can do that automatically using sed when you base64 encode the image:
<pre>
uuencode -m <name of 48×48 image> <name of 48×48 image> | sed -e s,^,\ , > <name of 48×48 image>.base64
</pre>
== cli apps ==
if the program that is being ported is a <code>cli</code> application, then <code>cli icon</code> can be used.
[http://lists.maemo.org/pipermail/maemo-community/2010-January/003870.html cli icon announcement]
[http://n900.tannerlab.com/tools/cli.icon.txt old unexistent in archive.org too, txt file]
[http://samoff.com/random/maemo/cli_icon/ icons as images]
this is how the icon looks in <code>ham</code>:
[[File:Maemo-cli_icon_appman_sample_v002.png]]
and this is the <code>48x48</code> size icon:
[[File:Maemo-term_icon_v002_a001_48p.png]]
its <code>base64</code> encoded and shifted for <code>maemo</code> <code>text file</code> is [http://norayr.am/tips/port_maemo_package_to_leste/maemo-term_icon_v002_a001_48p.png.base64 here]
or here:
<pre> begin-base64 644 maemo-term_icon_v002_a001_48p.png
iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAGXRFWHRTb2Z0
d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAACYtJREFUeNrUWkurZUcVXvXY
59zbtyXpICEiaFrJQFDo6CDOHAi2UQdOFBw4CAqCDhU0DuIPEBtCRupIBxk4
MBMHgpIMnChE1OAD2uADEkFpUM9z710vv7Wq6ty6u09f0+nb3Tcb6u7Hqb33
96361qq1al/1vscfp+Ac3fjH6+S9v3owP/iYMfqyMaabz2ax62wwtnPDOPgY
ok8pxpQoKKW9UhRC8IFI+UQ4ds7HFKLW1mujffDexRi9MXiGMQG34uborbEO
515pckopZ7RxuN8RyflgtBrxfKeNGlNMY0ppxItGUnowSm3Rr7ezubfdnCwe
SuMw2EsPPvi9x957+SlrNAXvCCTIWkMKvQP6JEYdorQoG6gkUIpo+SgkStyV
SQb0RwOolACOQdBIlAaQ7XGtT4q2lGhDDCjRGsZYg8Qa71sR75WSPe5Z411o
doPfN1rrDs/q8MaVVt5Z5T1dnM++8sEPXHnqXzduxOuv/iVutlsGKeCxJbyE
jxN2uJc3FfkcJzHviBlG5sq/kUq8D4qvyzWKpQ/fzn94H/Mzub88L0hfJc/w
OPc8Ijh3is8xUhqIMZr+woULscMwRmjCwoDdY+959xcXiwX9/KVfRAyV0gYD
xTBVeY2mjJuvAR3+aMrgjPRQKtVzrRSDwE1Kl1uEuBADKCX34g5VzKLk/ihk
lQBl8CKt3IQA5MMEICttPIY5XDw6glSVspv15tGLRxcu/+rl3/D4q9lsJtjl
1WyTA7TxBKRYfjZEO2IMTufRosxdVcoCPvEIQTaBrYlLjuWFH0Z0Y433LC3Y
occ5a3ybz7EvmjdaD9IfvudG57d6G4E12fmse+d6tT76z38XcC6TwcOdEtvj
EGL7jif/fU3x1yaDmWejNuCpEI4ilZT3AFPAwifgA9gPuGMIFAESfqDUBpw2
inWuVNY+6z4l7NkX1ApWgI/QlvuD/qDZoWMEeRskaODBlmJ4oB9HGoYxycCy
1R9OavYtT92nweIRotnn4ZkvBhqfRvc/oM8MUJIQqC00zeemWL/FutRnq8Jp
uam0BtA1yC5x8xLHS7xa9sREEjsy+ogTg4CiASQGpZVDjBMJcTDEEajEeDSM
DjxCHm/s5s96mn0W0ekF3PZ2eSR1n0qk3+/U5koXaQU9G6q6nwCXcMgWF/CF
QAVfQHGESSsmQHTcUiYi0QfH6K8YfF8iGEASnBjagPGgp4SoTdra7tAhEnFc
ZIdVhxD3h3GI1/afgcV/B/pfsnG4plP8pU7q0s76twTPsbyAL3quwKUJUIBa
4HiBvrLHNd6DFI9MqpbvAWsANifPR2iGUnA6JDiwRAcLz547FwQThihxpE5/
Bol3YSS+G0g/iuuPQLxftUHEb9HRngDvmv0O/EQ2FfyqtTg3oBGrcyvgNzje
8nMYKT8XGANvmGhzGG68DzIKc4fJNAmDHC+Gr1kKf1Q0/0Kk7qOJDl/y+vAn
mDyfwOj5E1av4MVJG/CnAW8tn7XfWL6A7xvwwO134GmycUye8+y6+9FCG7/V
kbW+eRJzxcsYlb+q1H0yqQs/852+Ehm2b2QzNpavkmkJTMHv9F4IrCqBBvzY
gOe5aS94IYDOMw7R0oH/HqRkPhJJfyiS+yl+/j3i2FXr+meQ+7wN/J5MWlKE
4xFgy/eNbE61fNF7Bc9EBDzA7sDnWRfx3rlTwYu9Met2nNmIvj1m0YeSPXzR
6fRPIHiii3LrDO49pzyNDSecdtij+XUhsdqneb7GwIvmN9wYPPb8nLHMwCyZ
WHCdull0xghIHgPBk0l/V3H8tlHzrwd9dN1ZhmA/Hg/0OyD26xTdj2Eplo1T
rNFW8xm8Bngrx8tCYNGCLwR2Dgvw/RQ8W/6NgBcCmH2ZgJd8RkmESeM3kW+8
orS9GpX9RNTxFRXG57RzP9Tr9Lra6IcxIg8kg/s4XYXXgHqNSivI6QZAqx34
VRvjJ5bvS7gdVc6Dbgt8HgEE1JRvyK2kYP55ONDzOsyv+QN3zazia5KbsIV6
+zn/UPflcKmZiVPJg8i9oF8dv2H/pDqRUXXYKhukxVFi/EQ2bwq8EAB4Sfkl
rc0kJLNRs2zR8Rm7gKs6nDN4KS7cD8xr/kf6b6mJOJK3ECzb078xV6xvBb5G
GgbPDssZprxn5Een2wIvBJgxW6CkxabMEqk4aYBrSk7DecjOWVe0TQu1Po44
kAVxZEFMZ+mYYwKtbJhkBY/mKni2fDoxPd0mAS73mqSspgmZgJYYz+YZdpGG
HVW3sT6tbxE6V8XyN4Fnh71T8DmMah13TpzTYt0QqOBrmGzj/KbG8X2hskab
Ap5lw5rnRGbkephLzjsFn30AD2IHypUThJJ9IRTnOmn5mg4XSxfwiwJ20ZCR
jHKqebZ8BQ/Nx9MmqDdMQAoOPLg+rJRSgXaVEg3T3KZoejVNhat8JrKpSRk7
rMxObPmzAL8jUPKZpgTMs+wey68ay7fpwLLR/qa1fMlr7gr4EwSK5WNOV2VE
hgJ6O3HQ3ew6Ab8rRKrm26SMl18APp0l+ErAFZ2rov3YyGczyWv2WX65J5c/
kVEiIYu3SofvmECxds/1sKQGx/l967DLKfg9hQjLpm9yeV/Ah7sFvh2BPvuv
LJz4Rj7VYZdTy59SRY37qii6S5tNOaPcFgkxCY5KbMl1ydX3hsry+02yKRnl
/y1Ezm4EkqzZMAj2Xl0WWLcFaAt+57CTdJjJD/cDfK0HhryEsdvGMiInnHYP
+Dq79jU1aMBHukebLbPkuoTRVB24AbwsSx7rPYVIXzPKJh1OdA83Wxx4nYNQ
DqGs7zJhtaFyva+KmoCPdI83duKq91iW0nn9vs0qV00hcqsSMNxry7cFzaaA
5HqA1/T71KyiVctPqig3qV/vC/hcD2QJLWsWWvKfOgKbAn5qeV+qqPhmqqiz
deJs8WVd6yyzabU6E7jJ8qUQSfcbfIlCPOuqKiH+gtKu72wby0sJWAqRcwH+
mECCD+yqMLVbpGoKEUmHzxv4UlIalEZhjVosmKT5i2OtA1rLn2kVdbYE+IOS
0uyknEp7HfUYVeQlQ65fRTZ3oxA5w2xUeaNpw18tEf99UFHWf/iLSLH8uQVf
RyBARltrDaaEEPhbbI408jURmh/TeQWf10ZtF9iRu86mAAImSi4WeLklr5ad
X/BCoOsMf/cdZ11HKJ/4HwdiMHyg0/2cYW8nG+X1IDefzxUI8P9ySP2KITj3
4PMnpqT4ozZrP3bWxq7rUlmle0tsVv6xgWkg/Bg7IxPr/2K8Nbb/CTAAF12f
5l7y6xMAAAAASUVORK5CYII=
====</pre>
Also add the field:
<pre>XSBC-Maemo-Display-Name: Photo light meter</pre>
== pushing to maemo-leste-extras ==
go to [https://github.com/maemo-leste-extras/ maemo-leste-extras] and [https://github.com/maemo-leste-extras/bugtracker/issues/new/choose open an issue] in the [https://github.com/maemo-leste-extras/bugtracker extras bugtracker] repo to request a repository.
ping <code>Wizzup</code> on <code>#maemo-leste@irc.libera.chat</code> to open you repo[s]. then try to be attentive to emails, because you may get github invite which you need to accept, otherwise it’ll time out(not sure when).
push your code to the newly opened repo in <code>maemo/beowulf</code> branch.
<code>beowulf</code> is the codename of the <code>devuan</code> release on which <code>maemo</code> is based.
<pre>$ git remote -v
origin git@github.com:norayr/msid.git (fetch)
origin git@github.com:norayr/msid.git (push)
$ git remote add maemo git@github.com:maemo-leste-extras/msid
$ git remote -v
maemo git@github.com:maemo-leste-extras/msid (fetch)
maemo git@github.com:maemo-leste-extras/msid (push)
origin git@github.com:norayr/msid.git (fetch)
origin git@github.com:norayr/msid.git (push)
$ git push maemo main
Enumerating objects: 176, done.
Counting objects: 100% (176/176), done.
Delta compression using up to 4 threads
Compressing objects: 100% (86/86), done.
Writing objects: 100% (176/176), 578.92 KiB | 4.71 MiB/s, done.
Total 176 (delta 105), reused 141 (delta 85)
remote: Resolving deltas: 100% (105/105), done.
To github.com:maemo-leste-extras/msid
* [new branch] main -> main
$ git checkout -b maemo/beowulf
Switched to a new branch 'maemo/beowulf'
$ git push maemo maemo/beowulf
Total 0 (delta 0), reused 0 (delta 0)
remote:
remote: Create a pull request for 'maemo/beowulf' on GitHub by visiting:
remote: https://github.com/maemo-leste-extras/msid/pull/new/maemo/beowulf
remote:
To github.com:maemo-leste-extras/msid
* [new branch] maemo/beowulf -> maemo/beowulf
$
</pre>
the repo needs to be tagged.
<pre>git tag 0.0.1</pre>
and then the tag has to be pushed:
<pre>git push maemo 0.0.1</pre>
in case you did some changes but don’t want to bump a tag/changelog version, you need to delete the tag locally:
<pre>git tag -d 0.0.1
git push maemo :refs/tags/0.0.1</pre>
== phoenix ==
login https://phoenix.maemo.org/
the build sequence is:
* source
* binaries
* repos
find your project. let’s say https://phoenix.maemo.org/job/msid-source/
it has to have ‘build with parameters’ button on the left.
if everything is right it’ll trigger build of binaries https://phoenix.maemo.org/job/msid-binaries/
that link, for instance, will contain <code>arm64</code> build console output: https://phoenix.maemo.org/job/msid-binaries/architecture=arm64,label=arm64/1/console
== wiki ==
add a wiki page about the package [https://leste.maemo.org/Category:Extras here].
links:
https://leste.maemo.org/Development https://leste.maemo.org/Development/Porting_Packages https://leste.maemo.org/Development/Building_Packages https://leste.maemo.org/Development/Modified_Software
If you import a package, please try to preserve history if possible (converting from svn -> git is not too hard)
= Forking Debian/Devuan packages =
(TODO - Describe what branches need to be set up, Jenkins integration, etc)
= Preparing package for the repositories =
See https://leste.maemo.org/Development/Building_Packages
8cef2f379b83050a47208cfb9419766ef9e0e359
PinePhone
0
93
1468
1438
2023-01-18T09:12:00Z
Rafael2k
54
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro.
== Notes ==
Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project.
== Status ==
Currently, most things work, for example you can:
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
=== More Information ===
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to on. You can check by tapping the top left corner->"Settings"->"Text input"-> ensure the "Use virtual keyboard" option is checked. You may also want to change the keyboard layout by changing the dictionary settings.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* '''VoLTE should work out-of-the-box.''' If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
== Installation ==
Unlike most phones, it's pretty simple.
=== SD Card Installation ===
==== Prepare the SD card ====
Create a new msdos partition table using fdisk
$ sudo fdisk /dev/''SDCARD''
# press 'p' to view current table
# press 'o' to erase and make a new table
# press 'w' to write changes and quit
==== Write the image to an SD-Card. ====
Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here].
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE''
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE''
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
$ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56
Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image:
$ unxz maemo-leste-*-arm64-pinephone-*.img.xz
Write the image to microSD. '''''Be very careful with this step''''' to select the correct device.
$ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync
Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.
<small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one. You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small>
=== eMMC Installation ===
''Note: Currently '''not working'''''
'''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''.
==== Preparing the .img file for eMMC boot ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.''
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install Using Tow-Boot ====
If you [https://tow-boot.org/devices/pine64-pinephoneA64.html flashed tow-boot to the PinePhone] the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode.
The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc.
==== Install Using JumpDrive ====
You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.
The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card.
[https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.]
==== Install from the booted microSD ====
# Flash Maemo Leste to the microSD card
# Insert microSD card and boot the phone
# Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download.
# Extract the image file so that it only ends in ".img"
# Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct.
# Turn off phone, remove microSD card and then turn on the phone.
== Post-Installation ==
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet.
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Other option is to use "cam" to capture to DNG. Example:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/frame-#.dng --capture=10
And then convert to .ppm (for .tiff use "-T" cmd line parameter). Eg:
$ dcraw frame-cam0-stream0-000001.dng
Also the graphical tool "qcam" is working! Run it with:
$ qcam -r gles -spixelformat=NV21,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
=== Suspend ===
Suspend can be triggered with:
$ echo mem > /sys/power/state
A temporary workaround for calling suspend from UI is here: https://github.com/rafael2k/maemo-suspend/blob/main/suspend.c
=== Volume Applet ===
Volume applet (https://github.com/maemo-leste/maemo-statusmenu-volume) needs a change in "sink_name" at "/usr/share/maemo-statusmenu-volume/sinks.ini". Edit the sinks.ini in order the sink_name is:
sink_name=alsa_output.0.HiFi__hw_PinePhone_0__sink
=== Installing apps ===
* Apps can be installed just as on any Devuan system with:
$ sudo apt install ''package-name''
* There is also the app store.
=== Launching apps ===
This works for any app. Say for instance, you want to run Iceweasel/Firefox:
* Launch apps from the desktop
* Launch apps from your console:
$ iceweasel &
* Install a universal app launcher that you can run from desktop:
$ sudo apt install desktop-cmd-exec
=== Make apps show up on desktop ===
Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples])
To view a list of currently installed apps, do:
$ sudo apt list --installed | less
This should help you figure out for which apps to configure .desktop icons. A benefit with all this is that you can decide which apps you want to show or hide.
=== Unhide the keyboard ===
The virtual keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar in a web browser like Firefox). This will be fixed in a future release (image tested: 20220731).
=== Note about Calculator ===
The default GUI calculator works (08/15/2022) but you won't see the numbers appear on screen until after you touch the next key. It should be used in landscape mode for best results, as there are additional display issues in portrait mode.
=== Time zone / World Clock ===
Currently (06/15/2022) the interface to the default GUI clock has a few bugs but the workaround is to:
* Go to Settings > Date and Time > and adjust time zone and date and time there. This also has some bugs, but only in portrait mode.
* Or just use the console:
$ sudo date -s HH:MM
$ sudo date -s YYYYMMDD
$ sudo ln -s /usr/share/zoneinfo/YOURREGION/YOURCITY /etc/localtime
=== Customize the Keyboard ===
TODO: write this
=== More Tips & Tricks ===
Visit [https://leste.maemo.org/Tricks '''this page'''] for more general advice on customizing Maemo on your PinePhone.
[[Category:Device]]
ab23b3f7ce42f58cb45af9768b836774d9c9097b
1469
1468
2023-01-18T09:12:45Z
Rafael2k
54
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro.
== Notes ==
Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project.
== Status ==
Currently, most things work, for example you can:
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
=== More Information ===
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to on. You can check by tapping the top left corner->"Settings"->"Text input"-> ensure the "Use virtual keyboard" option is checked. You may also want to change the keyboard layout by changing the dictionary settings.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* '''VoLTE should work out-of-the-box.''' If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
== Installation ==
Unlike most phones, it's pretty simple.
=== SD Card Installation ===
==== Prepare the SD card ====
Create a new msdos partition table using fdisk
$ sudo fdisk /dev/''SDCARD''
# press 'p' to view current table
# press 'o' to erase and make a new table
# press 'w' to write changes and quit
==== Write the image to an SD-Card. ====
Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here].
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE''
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE''
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
$ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56
Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image:
$ unxz maemo-leste-*-arm64-pinephone-*.img.xz
Write the image to microSD. '''''Be very careful with this step''''' to select the correct device.
$ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync
Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.
<small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one. You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small>
=== eMMC Installation ===
''Note: Currently '''not working'''''
'''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''.
==== Preparing the .img file for eMMC boot ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.''
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install Using Tow-Boot ====
If you [https://tow-boot.org/devices/pine64-pinephoneA64.html flashed tow-boot to the PinePhone] the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode.
The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc.
==== Install Using JumpDrive ====
You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.
The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card.
[https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.]
==== Install from the booted microSD ====
# Flash Maemo Leste to the microSD card
# Insert microSD card and boot the phone
# Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download.
# Extract the image file so that it only ends in ".img"
# Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct.
# Turn off phone, remove microSD card and then turn on the phone.
== Post-Installation ==
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet.
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Other option is to use "cam" to capture to DNG. Example:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/frame-#.dng --capture=10
And then convert to .ppm (for .tiff use "-T" cmd line parameter). Eg:
$ dcraw frame-cam0-stream0-000001.dng
Also the graphical tool "qcam" is working! Run it with:
$ qcam -r gles -spixelformat=NV21,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
=== Suspend ===
Suspend can be triggered with:
$ echo mem > /sys/power/state
A temporary workaround for calling suspend from UI is here: https://github.com/rafael2k/maemo-suspend/
=== Volume Applet ===
Volume applet (https://github.com/maemo-leste/maemo-statusmenu-volume) needs a change in "sink_name" at "/usr/share/maemo-statusmenu-volume/sinks.ini". Edit the sinks.ini in order the sink_name is:
sink_name=alsa_output.0.HiFi__hw_PinePhone_0__sink
=== Installing apps ===
* Apps can be installed just as on any Devuan system with:
$ sudo apt install ''package-name''
* There is also the app store.
=== Launching apps ===
This works for any app. Say for instance, you want to run Iceweasel/Firefox:
* Launch apps from the desktop
* Launch apps from your console:
$ iceweasel &
* Install a universal app launcher that you can run from desktop:
$ sudo apt install desktop-cmd-exec
=== Make apps show up on desktop ===
Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples])
To view a list of currently installed apps, do:
$ sudo apt list --installed | less
This should help you figure out for which apps to configure .desktop icons. A benefit with all this is that you can decide which apps you want to show or hide.
=== Unhide the keyboard ===
The virtual keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar in a web browser like Firefox). This will be fixed in a future release (image tested: 20220731).
=== Note about Calculator ===
The default GUI calculator works (08/15/2022) but you won't see the numbers appear on screen until after you touch the next key. It should be used in landscape mode for best results, as there are additional display issues in portrait mode.
=== Time zone / World Clock ===
Currently (06/15/2022) the interface to the default GUI clock has a few bugs but the workaround is to:
* Go to Settings > Date and Time > and adjust time zone and date and time there. This also has some bugs, but only in portrait mode.
* Or just use the console:
$ sudo date -s HH:MM
$ sudo date -s YYYYMMDD
$ sudo ln -s /usr/share/zoneinfo/YOURREGION/YOURCITY /etc/localtime
=== Customize the Keyboard ===
TODO: write this
=== More Tips & Tricks ===
Visit [https://leste.maemo.org/Tricks '''this page'''] for more general advice on customizing Maemo on your PinePhone.
[[Category:Device]]
37fe02a8ae0e72a314db0b181c888f5a68a59b71
1470
1469
2023-01-18T09:14:16Z
Rafael2k
54
/* How to take a picture */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro.
== Notes ==
Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project.
== Status ==
Currently, most things work, for example you can:
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
=== More Information ===
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to on. You can check by tapping the top left corner->"Settings"->"Text input"-> ensure the "Use virtual keyboard" option is checked. You may also want to change the keyboard layout by changing the dictionary settings.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* '''VoLTE should work out-of-the-box.''' If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
== Installation ==
Unlike most phones, it's pretty simple.
=== SD Card Installation ===
==== Prepare the SD card ====
Create a new msdos partition table using fdisk
$ sudo fdisk /dev/''SDCARD''
# press 'p' to view current table
# press 'o' to erase and make a new table
# press 'w' to write changes and quit
==== Write the image to an SD-Card. ====
Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here].
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE''
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE''
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
$ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56
Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image:
$ unxz maemo-leste-*-arm64-pinephone-*.img.xz
Write the image to microSD. '''''Be very careful with this step''''' to select the correct device.
$ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync
Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.
<small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one. You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small>
=== eMMC Installation ===
''Note: Currently '''not working'''''
'''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''.
==== Preparing the .img file for eMMC boot ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.''
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install Using Tow-Boot ====
If you [https://tow-boot.org/devices/pine64-pinephoneA64.html flashed tow-boot to the PinePhone] the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode.
The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc.
==== Install Using JumpDrive ====
You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.
The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card.
[https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.]
==== Install from the booted microSD ====
# Flash Maemo Leste to the microSD card
# Insert microSD card and boot the phone
# Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download.
# Extract the image file so that it only ends in ".img"
# Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct.
# Turn off phone, remove microSD card and then turn on the phone.
== Post-Installation ==
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet. Work is ongoing to import pinhole camera app: https://github.com/piggz/harbour-pinhole/
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Other option is to use "cam" to capture to DNG. Example:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/frame-#.dng --capture=10
And then convert to .ppm (for .tiff use "-T" cmd line parameter). Eg:
$ dcraw frame-cam0-stream0-000001.dng
Also the graphical tool "qcam" is working! Run it with:
$ qcam -r gles -spixelformat=NV21,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
=== Suspend ===
Suspend can be triggered with:
$ echo mem > /sys/power/state
A temporary workaround for calling suspend from UI is here: https://github.com/rafael2k/maemo-suspend/
=== Volume Applet ===
Volume applet (https://github.com/maemo-leste/maemo-statusmenu-volume) needs a change in "sink_name" at "/usr/share/maemo-statusmenu-volume/sinks.ini". Edit the sinks.ini in order the sink_name is:
sink_name=alsa_output.0.HiFi__hw_PinePhone_0__sink
=== Installing apps ===
* Apps can be installed just as on any Devuan system with:
$ sudo apt install ''package-name''
* There is also the app store.
=== Launching apps ===
This works for any app. Say for instance, you want to run Iceweasel/Firefox:
* Launch apps from the desktop
* Launch apps from your console:
$ iceweasel &
* Install a universal app launcher that you can run from desktop:
$ sudo apt install desktop-cmd-exec
=== Make apps show up on desktop ===
Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples])
To view a list of currently installed apps, do:
$ sudo apt list --installed | less
This should help you figure out for which apps to configure .desktop icons. A benefit with all this is that you can decide which apps you want to show or hide.
=== Unhide the keyboard ===
The virtual keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar in a web browser like Firefox). This will be fixed in a future release (image tested: 20220731).
=== Note about Calculator ===
The default GUI calculator works (08/15/2022) but you won't see the numbers appear on screen until after you touch the next key. It should be used in landscape mode for best results, as there are additional display issues in portrait mode.
=== Time zone / World Clock ===
Currently (06/15/2022) the interface to the default GUI clock has a few bugs but the workaround is to:
* Go to Settings > Date and Time > and adjust time zone and date and time there. This also has some bugs, but only in portrait mode.
* Or just use the console:
$ sudo date -s HH:MM
$ sudo date -s YYYYMMDD
$ sudo ln -s /usr/share/zoneinfo/YOURREGION/YOURCITY /etc/localtime
=== Customize the Keyboard ===
TODO: write this
=== More Tips & Tricks ===
Visit [https://leste.maemo.org/Tricks '''this page'''] for more general advice on customizing Maemo on your PinePhone.
[[Category:Device]]
8c5b1cf3b5e55c64dabb7da62bd4ded6d3a3d344
1471
1470
2023-01-18T09:15:25Z
Rafael2k
54
/* Volume Applet */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro.
== Notes ==
Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project.
== Status ==
Currently, most things work, for example you can:
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
=== More Information ===
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to on. You can check by tapping the top left corner->"Settings"->"Text input"-> ensure the "Use virtual keyboard" option is checked. You may also want to change the keyboard layout by changing the dictionary settings.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* '''VoLTE should work out-of-the-box.''' If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
== Installation ==
Unlike most phones, it's pretty simple.
=== SD Card Installation ===
==== Prepare the SD card ====
Create a new msdos partition table using fdisk
$ sudo fdisk /dev/''SDCARD''
# press 'p' to view current table
# press 'o' to erase and make a new table
# press 'w' to write changes and quit
==== Write the image to an SD-Card. ====
Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here].
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE''
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE''
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
$ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56
Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image:
$ unxz maemo-leste-*-arm64-pinephone-*.img.xz
Write the image to microSD. '''''Be very careful with this step''''' to select the correct device.
$ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync
Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.
<small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one. You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small>
=== eMMC Installation ===
''Note: Currently '''not working'''''
'''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''.
==== Preparing the .img file for eMMC boot ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.''
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install Using Tow-Boot ====
If you [https://tow-boot.org/devices/pine64-pinephoneA64.html flashed tow-boot to the PinePhone] the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode.
The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc.
==== Install Using JumpDrive ====
You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.
The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card.
[https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.]
==== Install from the booted microSD ====
# Flash Maemo Leste to the microSD card
# Insert microSD card and boot the phone
# Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download.
# Extract the image file so that it only ends in ".img"
# Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct.
# Turn off phone, remove microSD card and then turn on the phone.
== Post-Installation ==
=== How to take a picture ===
Maemo userland to take pictures or make videos is not ready yet. Work is ongoing to import pinhole camera app: https://github.com/piggz/harbour-pinhole/
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Other option is to use "cam" to capture to DNG. Example:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/frame-#.dng --capture=10
And then convert to .ppm (for .tiff use "-T" cmd line parameter). Eg:
$ dcraw frame-cam0-stream0-000001.dng
Also the graphical tool "qcam" is working! Run it with:
$ qcam -r gles -spixelformat=NV21,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
=== Suspend ===
Suspend can be triggered with:
$ echo mem > /sys/power/state
A temporary workaround for calling suspend from UI is here: https://github.com/rafael2k/maemo-suspend/
=== Volume Applet ===
Volume applet ( https://github.com/maemo-leste/maemo-statusmenu-volume ) needs a change in "sink_name" at "/usr/share/maemo-statusmenu-volume/sinks.ini". Edit the sinks.ini in order the sink_name is:
sink_name=alsa_output.0.HiFi__hw_PinePhone_0__sink
=== Installing apps ===
* Apps can be installed just as on any Devuan system with:
$ sudo apt install ''package-name''
* There is also the app store.
=== Launching apps ===
This works for any app. Say for instance, you want to run Iceweasel/Firefox:
* Launch apps from the desktop
* Launch apps from your console:
$ iceweasel &
* Install a universal app launcher that you can run from desktop:
$ sudo apt install desktop-cmd-exec
=== Make apps show up on desktop ===
Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples])
To view a list of currently installed apps, do:
$ sudo apt list --installed | less
This should help you figure out for which apps to configure .desktop icons. A benefit with all this is that you can decide which apps you want to show or hide.
=== Unhide the keyboard ===
The virtual keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar in a web browser like Firefox). This will be fixed in a future release (image tested: 20220731).
=== Note about Calculator ===
The default GUI calculator works (08/15/2022) but you won't see the numbers appear on screen until after you touch the next key. It should be used in landscape mode for best results, as there are additional display issues in portrait mode.
=== Time zone / World Clock ===
Currently (06/15/2022) the interface to the default GUI clock has a few bugs but the workaround is to:
* Go to Settings > Date and Time > and adjust time zone and date and time there. This also has some bugs, but only in portrait mode.
* Or just use the console:
$ sudo date -s HH:MM
$ sudo date -s YYYYMMDD
$ sudo ln -s /usr/share/zoneinfo/YOURREGION/YOURCITY /etc/localtime
=== Customize the Keyboard ===
TODO: write this
=== More Tips & Tricks ===
Visit [https://leste.maemo.org/Tricks '''this page'''] for more general advice on customizing Maemo on your PinePhone.
[[Category:Device]]
fe8acb8b9bbe2567f19095f26f0d082687551a97
1473
1471
2023-01-25T07:13:01Z
Rafael2k
54
/* How to take a picture */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro.
== Notes ==
Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project.
== Status ==
Currently, most things work, for example you can:
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
=== More Information ===
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to on. You can check by tapping the top left corner->"Settings"->"Text input"-> ensure the "Use virtual keyboard" option is checked. You may also want to change the keyboard layout by changing the dictionary settings.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* '''VoLTE should work out-of-the-box.''' If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
== Installation ==
Unlike most phones, it's pretty simple.
=== SD Card Installation ===
==== Prepare the SD card ====
Create a new msdos partition table using fdisk
$ sudo fdisk /dev/''SDCARD''
# press 'p' to view current table
# press 'o' to erase and make a new table
# press 'w' to write changes and quit
==== Write the image to an SD-Card. ====
Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here].
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE''
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE''
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
$ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56
Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image:
$ unxz maemo-leste-*-arm64-pinephone-*.img.xz
Write the image to microSD. '''''Be very careful with this step''''' to select the correct device.
$ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync
Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.
<small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one. You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small>
=== eMMC Installation ===
''Note: Currently '''not working'''''
'''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''.
==== Preparing the .img file for eMMC boot ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.''
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install Using Tow-Boot ====
If you [https://tow-boot.org/devices/pine64-pinephoneA64.html flashed tow-boot to the PinePhone] the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode.
The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc.
==== Install Using JumpDrive ====
You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.
The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card.
[https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.]
==== Install from the booted microSD ====
# Flash Maemo Leste to the microSD card
# Insert microSD card and boot the phone
# Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download.
# Extract the image file so that it only ends in ".img"
# Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct.
# Turn off phone, remove microSD card and then turn on the phone.
== Post-Installation ==
=== How to take a picture ===
Maemo userland to take pictures or make videos is ready yet. The default camera app is pinhole: https://github.com/piggz/harbour-pinhole/
To open the (pinhole) camera from the terminal:
$ harbour-pinhole
Or open it from Maemo desktop "Camera" icon.
In order to trigger auto-focus:
$ v4l2-ctl -d /dev/v4l-subdev1 -c focus_automatic_continuous=1
Or trigger autofocus using the commands to start and stop manually:
$ v4l2-ctl -d /dev/v4l-subdev1 -c auto_focus_start=1
then wait till it gets the focus where you want, then
$ v4l2-ctl -d /dev/v4l-subdev1 -c auto_focus_stop=1
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Other option is to use "cam" to capture to DNG. Example:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/frame-#.dng --capture=10
And then convert to .ppm (for .tiff use "-T" cmd line parameter). Eg:
$ dcraw frame-cam0-stream0-000001.dng
Also the graphical tool "qcam" is working! Run it with:
$ qcam -r gles -spixelformat=NV21,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
=== Suspend ===
Suspend can be triggered with:
$ echo mem > /sys/power/state
A temporary workaround for calling suspend from UI is here: https://github.com/rafael2k/maemo-suspend/
=== Volume Applet ===
Volume applet ( https://github.com/maemo-leste/maemo-statusmenu-volume ) needs a change in "sink_name" at "/usr/share/maemo-statusmenu-volume/sinks.ini". Edit the sinks.ini in order the sink_name is:
sink_name=alsa_output.0.HiFi__hw_PinePhone_0__sink
=== Installing apps ===
* Apps can be installed just as on any Devuan system with:
$ sudo apt install ''package-name''
* There is also the app store.
=== Launching apps ===
This works for any app. Say for instance, you want to run Iceweasel/Firefox:
* Launch apps from the desktop
* Launch apps from your console:
$ iceweasel &
* Install a universal app launcher that you can run from desktop:
$ sudo apt install desktop-cmd-exec
=== Make apps show up on desktop ===
Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples])
To view a list of currently installed apps, do:
$ sudo apt list --installed | less
This should help you figure out for which apps to configure .desktop icons. A benefit with all this is that you can decide which apps you want to show or hide.
=== Unhide the keyboard ===
The virtual keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar in a web browser like Firefox). This will be fixed in a future release (image tested: 20220731).
=== Note about Calculator ===
The default GUI calculator works (08/15/2022) but you won't see the numbers appear on screen until after you touch the next key. It should be used in landscape mode for best results, as there are additional display issues in portrait mode.
=== Time zone / World Clock ===
Currently (06/15/2022) the interface to the default GUI clock has a few bugs but the workaround is to:
* Go to Settings > Date and Time > and adjust time zone and date and time there. This also has some bugs, but only in portrait mode.
* Or just use the console:
$ sudo date -s HH:MM
$ sudo date -s YYYYMMDD
$ sudo ln -s /usr/share/zoneinfo/YOURREGION/YOURCITY /etc/localtime
=== Customize the Keyboard ===
TODO: write this
=== More Tips & Tricks ===
Visit [https://leste.maemo.org/Tricks '''this page'''] for more general advice on customizing Maemo on your PinePhone.
[[Category:Device]]
aba0e6e81e16f239b17be33cc2d1caf92a960a96
1474
1473
2023-01-25T07:13:19Z
Rafael2k
54
/* How to take a picture */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro.
== Notes ==
Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project.
== Status ==
Currently, most things work, for example you can:
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
=== More Information ===
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to on. You can check by tapping the top left corner->"Settings"->"Text input"-> ensure the "Use virtual keyboard" option is checked. You may also want to change the keyboard layout by changing the dictionary settings.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* '''VoLTE should work out-of-the-box.''' If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
== Installation ==
Unlike most phones, it's pretty simple.
=== SD Card Installation ===
==== Prepare the SD card ====
Create a new msdos partition table using fdisk
$ sudo fdisk /dev/''SDCARD''
# press 'p' to view current table
# press 'o' to erase and make a new table
# press 'w' to write changes and quit
==== Write the image to an SD-Card. ====
Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here].
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE''
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE''
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
$ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56
Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image:
$ unxz maemo-leste-*-arm64-pinephone-*.img.xz
Write the image to microSD. '''''Be very careful with this step''''' to select the correct device.
$ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync
Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.
<small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one. You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small>
=== eMMC Installation ===
''Note: Currently '''not working'''''
'''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''.
==== Preparing the .img file for eMMC boot ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.''
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install Using Tow-Boot ====
If you [https://tow-boot.org/devices/pine64-pinephoneA64.html flashed tow-boot to the PinePhone] the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode.
The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc.
==== Install Using JumpDrive ====
You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.
The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card.
[https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.]
==== Install from the booted microSD ====
# Flash Maemo Leste to the microSD card
# Insert microSD card and boot the phone
# Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download.
# Extract the image file so that it only ends in ".img"
# Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct.
# Turn off phone, remove microSD card and then turn on the phone.
== Post-Installation ==
=== How to take a picture ===
Maemo userland to take pictures or make videos is ready yet. The default camera app is pinhole: https://github.com/piggz/harbour-pinhole/
To open the (pinhole) camera from the terminal:
$ harbour-pinhole
Or open it from Maemo desktop "Camera" icon.
In order to trigger auto-focus:
$ v4l2-ctl -d /dev/v4l-subdev1 -c focus_automatic_continuous=1
Or trigger autofocus using the commands to start and stop manually:
$ v4l2-ctl -d /dev/v4l-subdev1 -c auto_focus_start=1
then wait till it gets the focus where you want, then
$ v4l2-ctl -d /dev/v4l-subdev1 -c auto_focus_stop=1
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Other option is to use "cam" to capture to DNG. Example:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/frame-#.dng --capture=10
And then convert to .ppm (for .tiff use "-T" cmd line parameter). Eg:
$ dcraw frame-cam0-stream0-000001.dng
Also the graphical tool "qcam" is working! Run it with:
$ qcam -r gles -spixelformat=NV21,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
=== Suspend ===
Suspend can be triggered with:
$ echo mem > /sys/power/state
A temporary workaround for calling suspend from UI is here: https://github.com/rafael2k/maemo-suspend/
=== Volume Applet ===
Volume applet ( https://github.com/maemo-leste/maemo-statusmenu-volume ) needs a change in "sink_name" at "/usr/share/maemo-statusmenu-volume/sinks.ini". Edit the sinks.ini in order the sink_name is:
sink_name=alsa_output.0.HiFi__hw_PinePhone_0__sink
=== Installing apps ===
* Apps can be installed just as on any Devuan system with:
$ sudo apt install ''package-name''
* There is also the app store.
=== Launching apps ===
This works for any app. Say for instance, you want to run Iceweasel/Firefox:
* Launch apps from the desktop
* Launch apps from your console:
$ iceweasel &
* Install a universal app launcher that you can run from desktop:
$ sudo apt install desktop-cmd-exec
=== Make apps show up on desktop ===
Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples])
To view a list of currently installed apps, do:
$ sudo apt list --installed | less
This should help you figure out for which apps to configure .desktop icons. A benefit with all this is that you can decide which apps you want to show or hide.
=== Unhide the keyboard ===
The virtual keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar in a web browser like Firefox). This will be fixed in a future release (image tested: 20220731).
=== Note about Calculator ===
The default GUI calculator works (08/15/2022) but you won't see the numbers appear on screen until after you touch the next key. It should be used in landscape mode for best results, as there are additional display issues in portrait mode.
=== Time zone / World Clock ===
Currently (06/15/2022) the interface to the default GUI clock has a few bugs but the workaround is to:
* Go to Settings > Date and Time > and adjust time zone and date and time there. This also has some bugs, but only in portrait mode.
* Or just use the console:
$ sudo date -s HH:MM
$ sudo date -s YYYYMMDD
$ sudo ln -s /usr/share/zoneinfo/YOURREGION/YOURCITY /etc/localtime
=== Customize the Keyboard ===
TODO: write this
=== More Tips & Tricks ===
Visit [https://leste.maemo.org/Tricks '''this page'''] for more general advice on customizing Maemo on your PinePhone.
[[Category:Device]]
296950b5af42152f0e844599ea93f2d8a6a927bf
1475
1474
2023-01-25T07:31:48Z
Rafael2k
54
/* How to take a picture */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro.
== Notes ==
Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project.
== Status ==
Currently, most things work, for example you can:
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
=== More Information ===
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to on. You can check by tapping the top left corner->"Settings"->"Text input"-> ensure the "Use virtual keyboard" option is checked. You may also want to change the keyboard layout by changing the dictionary settings.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* '''VoLTE should work out-of-the-box.''' If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
== Installation ==
Unlike most phones, it's pretty simple.
=== SD Card Installation ===
==== Prepare the SD card ====
Create a new msdos partition table using fdisk
$ sudo fdisk /dev/''SDCARD''
# press 'p' to view current table
# press 'o' to erase and make a new table
# press 'w' to write changes and quit
==== Write the image to an SD-Card. ====
Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here].
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE''
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE''
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
$ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56
Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image:
$ unxz maemo-leste-*-arm64-pinephone-*.img.xz
Write the image to microSD. '''''Be very careful with this step''''' to select the correct device.
$ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync
Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.
<small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one. You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small>
=== eMMC Installation ===
''Note: Currently '''not working'''''
'''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''.
==== Preparing the .img file for eMMC boot ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.''
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install Using Tow-Boot ====
If you [https://tow-boot.org/devices/pine64-pinephoneA64.html flashed tow-boot to the PinePhone] the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode.
The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc.
==== Install Using JumpDrive ====
You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.
The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card.
[https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.]
==== Install from the booted microSD ====
# Flash Maemo Leste to the microSD card
# Insert microSD card and boot the phone
# Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download.
# Extract the image file so that it only ends in ".img"
# Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct.
# Turn off phone, remove microSD card and then turn on the phone.
== Post-Installation ==
=== How to take a picture ===
Maemo userland to take pictures or make videos is ready yet. The default camera app is pinhole: https://github.com/piggz/harbour-pinhole/
For now only the rear camera (ov5640) is supported. Work in ongoing for front camera support.
To open the (pinhole) camera from the terminal:
$ harbour-pinhole
Or open it from Maemo desktop "Camera" icon.
In order to trigger auto-focus:
$ v4l2-ctl -d /dev/v4l-subdev1 -c focus_automatic_continuous=1
Or trigger autofocus using the commands to start and stop manually:
$ v4l2-ctl -d /dev/v4l-subdev1 -c auto_focus_start=1
then wait till it gets the focus where you want, then
$ v4l2-ctl -d /dev/v4l-subdev1 -c auto_focus_stop=1
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Other option is to use "cam" to capture to DNG. Example:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/frame-#.dng --capture=10
And then convert to .ppm (for .tiff use "-T" cmd line parameter). Eg:
$ dcraw frame-cam0-stream0-000001.dng
Also the graphical tool "qcam" is working! Run it with:
$ qcam -r gles -spixelformat=NV21,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
=== Suspend ===
Suspend can be triggered with:
$ echo mem > /sys/power/state
A temporary workaround for calling suspend from UI is here: https://github.com/rafael2k/maemo-suspend/
=== Volume Applet ===
Volume applet ( https://github.com/maemo-leste/maemo-statusmenu-volume ) needs a change in "sink_name" at "/usr/share/maemo-statusmenu-volume/sinks.ini". Edit the sinks.ini in order the sink_name is:
sink_name=alsa_output.0.HiFi__hw_PinePhone_0__sink
=== Installing apps ===
* Apps can be installed just as on any Devuan system with:
$ sudo apt install ''package-name''
* There is also the app store.
=== Launching apps ===
This works for any app. Say for instance, you want to run Iceweasel/Firefox:
* Launch apps from the desktop
* Launch apps from your console:
$ iceweasel &
* Install a universal app launcher that you can run from desktop:
$ sudo apt install desktop-cmd-exec
=== Make apps show up on desktop ===
Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples])
To view a list of currently installed apps, do:
$ sudo apt list --installed | less
This should help you figure out for which apps to configure .desktop icons. A benefit with all this is that you can decide which apps you want to show or hide.
=== Unhide the keyboard ===
The virtual keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar in a web browser like Firefox). This will be fixed in a future release (image tested: 20220731).
=== Note about Calculator ===
The default GUI calculator works (08/15/2022) but you won't see the numbers appear on screen until after you touch the next key. It should be used in landscape mode for best results, as there are additional display issues in portrait mode.
=== Time zone / World Clock ===
Currently (06/15/2022) the interface to the default GUI clock has a few bugs but the workaround is to:
* Go to Settings > Date and Time > and adjust time zone and date and time there. This also has some bugs, but only in portrait mode.
* Or just use the console:
$ sudo date -s HH:MM
$ sudo date -s YYYYMMDD
$ sudo ln -s /usr/share/zoneinfo/YOURREGION/YOURCITY /etc/localtime
=== Customize the Keyboard ===
TODO: write this
=== More Tips & Tricks ===
Visit [https://leste.maemo.org/Tricks '''this page'''] for more general advice on customizing Maemo on your PinePhone.
[[Category:Device]]
7288f75fa9caff7f2649904cee0885d74d88a198
1476
1475
2023-01-30T07:15:38Z
Rafael2k
54
/* How to take a picture */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro.
== Notes ==
Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project.
== Status ==
Currently, most things work, for example you can:
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
=== More Information ===
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to on. You can check by tapping the top left corner->"Settings"->"Text input"-> ensure the "Use virtual keyboard" option is checked. You may also want to change the keyboard layout by changing the dictionary settings.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* '''VoLTE should work out-of-the-box.''' If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
== Installation ==
Unlike most phones, it's pretty simple.
=== SD Card Installation ===
==== Prepare the SD card ====
Create a new msdos partition table using fdisk
$ sudo fdisk /dev/''SDCARD''
# press 'p' to view current table
# press 'o' to erase and make a new table
# press 'w' to write changes and quit
==== Write the image to an SD-Card. ====
Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here].
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE''
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE''
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
$ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56
Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image:
$ unxz maemo-leste-*-arm64-pinephone-*.img.xz
Write the image to microSD. '''''Be very careful with this step''''' to select the correct device.
$ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync
Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.
<small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one. You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small>
=== eMMC Installation ===
''Note: Currently '''not working'''''
'''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''.
==== Preparing the .img file for eMMC boot ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.''
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install Using Tow-Boot ====
If you [https://tow-boot.org/devices/pine64-pinephoneA64.html flashed tow-boot to the PinePhone] the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode.
The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc.
==== Install Using JumpDrive ====
You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.
The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card.
[https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.]
==== Install from the booted microSD ====
# Flash Maemo Leste to the microSD card
# Insert microSD card and boot the phone
# Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download.
# Extract the image file so that it only ends in ".img"
# Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct.
# Turn off phone, remove microSD card and then turn on the phone.
== Post-Installation ==
=== How to take a picture ===
Maemo userland to take pictures or make videos is ready yet. The default camera app is pinhole: https://github.com/piggz/harbour-pinhole/
Both cameras (rear and front) are supported. Work in ongoing to improve the camera app.
To open the (pinhole) camera from the terminal:
$ harbour-pinhole
Or open it from Maemo desktop "Camera" icon.
In order to trigger auto-focus:
$ v4l2-ctl -d /dev/v4l-subdev1 -c focus_automatic_continuous=1
Or trigger autofocus using the commands to start and stop manually:
$ v4l2-ctl -d /dev/v4l-subdev1 -c auto_focus_start=1
then wait till it gets the focus where you want, then
$ v4l2-ctl -d /dev/v4l-subdev1 -c auto_focus_stop=1
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Other option is to use "cam" to capture to DNG. Example:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/frame-#.dng --capture=10
And then convert to .ppm (for .tiff use "-T" cmd line parameter). Eg:
$ dcraw frame-cam0-stream0-000001.dng
Also the graphical tool "qcam" is working! Run it with:
$ qcam -r gles -spixelformat=NV21,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
=== Suspend ===
Suspend can be triggered with:
$ echo mem > /sys/power/state
A temporary workaround for calling suspend from UI is here: https://github.com/rafael2k/maemo-suspend/
=== Volume Applet ===
Volume applet ( https://github.com/maemo-leste/maemo-statusmenu-volume ) needs a change in "sink_name" at "/usr/share/maemo-statusmenu-volume/sinks.ini". Edit the sinks.ini in order the sink_name is:
sink_name=alsa_output.0.HiFi__hw_PinePhone_0__sink
=== Installing apps ===
* Apps can be installed just as on any Devuan system with:
$ sudo apt install ''package-name''
* There is also the app store.
=== Launching apps ===
This works for any app. Say for instance, you want to run Iceweasel/Firefox:
* Launch apps from the desktop
* Launch apps from your console:
$ iceweasel &
* Install a universal app launcher that you can run from desktop:
$ sudo apt install desktop-cmd-exec
=== Make apps show up on desktop ===
Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples])
To view a list of currently installed apps, do:
$ sudo apt list --installed | less
This should help you figure out for which apps to configure .desktop icons. A benefit with all this is that you can decide which apps you want to show or hide.
=== Unhide the keyboard ===
The virtual keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar in a web browser like Firefox). This will be fixed in a future release (image tested: 20220731).
=== Note about Calculator ===
The default GUI calculator works (08/15/2022) but you won't see the numbers appear on screen until after you touch the next key. It should be used in landscape mode for best results, as there are additional display issues in portrait mode.
=== Time zone / World Clock ===
Currently (06/15/2022) the interface to the default GUI clock has a few bugs but the workaround is to:
* Go to Settings > Date and Time > and adjust time zone and date and time there. This also has some bugs, but only in portrait mode.
* Or just use the console:
$ sudo date -s HH:MM
$ sudo date -s YYYYMMDD
$ sudo ln -s /usr/share/zoneinfo/YOURREGION/YOURCITY /etc/localtime
=== Customize the Keyboard ===
TODO: write this
=== More Tips & Tricks ===
Visit [https://leste.maemo.org/Tricks '''this page'''] for more general advice on customizing Maemo on your PinePhone.
[[Category:Device]]
e1fb26b6bb6cb9528af24df1afe0588f58994b8e
1477
1476
2023-03-07T14:29:13Z
Rafael2k
54
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro.
== Notes ==
Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project.
== Status ==
Currently, most things work, for example you can:
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
=== More Information ===
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to on. You can check by tapping the top left corner->"Settings"->"Text input"-> ensure the "Use virtual keyboard" option is checked. You may also want to change the keyboard layout by changing the dictionary settings.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* '''VoLTE should work out-of-the-box.''' If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
== Installation ==
Unlike most phones, it's pretty simple.
=== SD Card Installation ===
==== Prepare the SD card ====
Create a new msdos partition table using fdisk
$ sudo fdisk /dev/''SDCARD''
# press 'p' to view current table
# press 'o' to erase and make a new table
# press 'w' to write changes and quit
==== Write the image to an SD-Card. ====
Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here].
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE''
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE''
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
$ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56
Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image:
$ unxz maemo-leste-*-arm64-pinephone-*.img.xz
Write the image to microSD. '''''Be very careful with this step''''' to select the correct device.
$ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync
Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.
<small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one. You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small>
=== eMMC Installation ===
''Note: Currently '''not working'''''
'''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''.
==== Preparing the .img file for eMMC boot ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
Modify the image to use eMMC paths. '''''Warning''', this '''no longer works''' in latest images since boot.txt was removed. Please update this section.''
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, determine the starting points of the image partitions:
$ fdisk -u -l maemo-leste-*-arm64-pinephone-*.img
In the output of this command, look for the '''Start''' column and multiply these values individually with the value given by the '''Units''' section -- this gives the offsets of the partitions from the beginning of the file.
Mount the first partition and enter it:
$ sudo mount -o loop,offset=<Partition 1 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>boot.txt</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave the first partition and unmount it:
$ cd ~
$ sudo umount /mnt
Mount the second partition and enter it:
$ sudo mount -o loop,offset=<Partition 2 offset> maemo-leste-*-arm64-pinephone-*.img /mnt
$ cd /mnt
Use the editor of your choice to edit <code>etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Leave the second partition and unmount it:
$ cd ~
$ sudo umount /mnt
The image is now ready to be installed to the eMMC.
==== Install Using Tow-Boot ====
If you [https://tow-boot.org/devices/pine64-pinephoneA64.html flashed tow-boot to the PinePhone] the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode.
The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc.
==== Install Using JumpDrive ====
You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.
The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card.
[https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.]
==== Install from the booted microSD ====
# Flash Maemo Leste to the microSD card
# Insert microSD card and boot the phone
# Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download.
# Extract the image file so that it only ends in ".img"
# Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct.
# Turn off phone, remove microSD card and then turn on the phone.
== Post-Installation ==
=== How to take a picture ===
Maemo userland to take pictures or make videos is ready yet. The default camera app is pinhole: https://github.com/piggz/harbour-pinhole/
Both cameras (rear and front) are supported. Work in ongoing to improve the camera app.
To open the (pinhole) camera from the terminal:
$ harbour-pinhole
Or open it from Maemo desktop "Camera" icon.
In order to trigger auto-focus:
$ v4l2-ctl -d /dev/v4l-subdev1 -c focus_automatic_continuous=1
Or trigger autofocus using the commands to start and stop manually:
$ v4l2-ctl -d /dev/v4l-subdev1 -c auto_focus_start=1
then wait till it gets the focus where you want, then
$ v4l2-ctl -d /dev/v4l-subdev1 -c auto_focus_stop=1
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Other option is to use "cam" to capture to DNG. Example:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/frame-#.dng --capture=10
And then convert to .ppm (for .tiff use "-T" cmd line parameter). Eg:
$ dcraw frame-cam0-stream0-000001.dng
Also the graphical tool "qcam" is working! Run it with:
$ qcam -r gles -spixelformat=NV21,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
=== PinePhone Keyboard ===
First of all, make sure you have the latest firmware loaded in the keyboard (firmware is here: https://github.com/maemo-leste-upstream-forks/pinephone-keyboard/tree/master/firmware/build and userland here: https://github.com/maemo-leste-upstream-forks/pinephone-keyboard ):
$ ppkb-i2c-flasher -e i2c -i fw-user.bin write reset
Load the xkb layout ( available here: https://codeberg.org/phalio/ppkb-layouts/src/branch/main/xkb )
$ setxkbmap pp altgr
=== Suspend ===
Suspend can be triggered with:
$ echo mem > /sys/power/state
A temporary workaround for calling suspend from UI is here: https://github.com/rafael2k/maemo-suspend/
=== Volume Applet ===
Volume applet ( https://github.com/maemo-leste/maemo-statusmenu-volume ) needs a change in "sink_name" at "/usr/share/maemo-statusmenu-volume/sinks.ini". Edit the sinks.ini in order the sink_name is:
sink_name=alsa_output.0.HiFi__hw_PinePhone_0__sink
=== Installing apps ===
* Apps can be installed just as on any Devuan system with:
$ sudo apt install ''package-name''
* There is also the app store.
=== Launching apps ===
This works for any app. Say for instance, you want to run Iceweasel/Firefox:
* Launch apps from the desktop
* Launch apps from your console:
$ iceweasel &
* Install a universal app launcher that you can run from desktop:
$ sudo apt install desktop-cmd-exec
=== Make apps show up on desktop ===
Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples])
To view a list of currently installed apps, do:
$ sudo apt list --installed | less
This should help you figure out for which apps to configure .desktop icons. A benefit with all this is that you can decide which apps you want to show or hide.
=== Unhide the keyboard ===
The virtual keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar in a web browser like Firefox). This will be fixed in a future release (image tested: 20220731).
=== Note about Calculator ===
The default GUI calculator works (08/15/2022) but you won't see the numbers appear on screen until after you touch the next key. It should be used in landscape mode for best results, as there are additional display issues in portrait mode.
=== Time zone / World Clock ===
Currently (06/15/2022) the interface to the default GUI clock has a few bugs but the workaround is to:
* Go to Settings > Date and Time > and adjust time zone and date and time there. This also has some bugs, but only in portrait mode.
* Or just use the console:
$ sudo date -s HH:MM
$ sudo date -s YYYYMMDD
$ sudo ln -s /usr/share/zoneinfo/YOURREGION/YOURCITY /etc/localtime
=== More Tips & Tricks ===
Visit [https://leste.maemo.org/Tricks '''this page'''] for more general advice on customizing Maemo on your PinePhone.
[[Category:Device]]
4bdb6852730fb5b6858576e994b363d28a6d6ad1
Getting Started
0
105
1472
1117
2023-01-22T19:27:00Z
Pomputer
60
/* Installation to SD Card */
wikitext
text/x-wiki
= Installation to SD Card =
After updating device firmware with included script (eg. flash-droid-4-fw.sh):
Download an image appropriate for your device from [http://maedevu.maemo.org/images/]
Insert a microsd card into your computer and find the device with '''cat /proc/partitions'''
Decompress and write the image to your microsd card device:
xzcat maemo-leste-VERSION.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
= Expand the root partition to fill SD card =
A helpful script is included to expand the root partition to fill the microSD card.
After booting and logging in to root, execute: /etc/expandcard.sh
This will expand the root partition to fill the microSD card using resize2fs.
= (SSH) Login =
User credentials are: '''user:user'''
Root credentials are: '''root:toor'''
You should prefer logging in as user and then escalating to root with sudo as necessary.
In images newer than 17 January 2021, root SSH is disabled by default.
= Useful Bits =
== Lock Code (applies to N900 only) ==
* Default lockcode is "12345"
* Lockcode can only be changed/used on [[Nokia_N900|N900]], since the current implementation depends on a special "cal" partition. QEMU and all other Leste supported devices do not have it. (TODO: Confirm if N9 and N950 have it too)
= More RAM =
You can install '''zram-tools''' from the repo, and edit '''/etc/default/zramswap''' as necessary. It's probably convenient to set allocation to 1024.
hildon-base (and it's hildon-env-setup initscript) are aware if zramswap in installed and will activate zram.
If you have an image older than 17 January 2021, you should remove the existing zram initscript and install zram-tools to utilize this functionality.
Remove it with:
rc-update del zram
rm /etc/init.d/zram
= Tweaking =
See [[Tweaking]]
478f9014bf1f5e610634fa614f41f1dc606e2f12
Nokia N900
0
48
1478
1277
2023-03-07T20:30:55Z
Arno11
61
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=5.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=300mW (needs kernel work)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking / Undervolting ==
Work in progress...
== Old status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode
|}
[[Category:Device]]
8848f9af4af4a869a166d016a69b3cfde776ab2f
1479
1478
2023-03-07T23:15:54Z
Arno11
61
/* Overclocking / Undervolting */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=5.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=300mW (needs kernel work)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking / Undervolting ==
Nokia N900 is stable using following scalable frequencies:
250-500-600-720-800MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /tmp</code>
<code>dtc -I dtb -O dts /tmp/omap3-n900.dtb -o /tmp/omap3-n900.dts</code>
(wait few seconds...)
<code>chmod +w /tmp/omap3-n900.dts</code>
(then the funny part...)
<code>nano /tmp/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content of opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };
By a new opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-800000000 {
opp-hz = < 0x00 0x2faf0800 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close
And still as root
<code>rm /tmp/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /tmp/omap3-n900.dts -o /tmp/omap3-n900.dtb</code>
(Wait a bit)
Check your kernel version:
<code>uname -r</code>
For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9
In the next command, replace "vmlinuz-<version> by yours (ie vmlinuz-5.18.9)
<code>cat boot/vmlinuz-<version> /tmp/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu"
Installing cpufrequtils is useful to switch frequency governors.
Prefer "conservative" instead of "ondemand" mode
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Old status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode
|}
[[Category:Device]]
a4ab7259b434ce753968f3ddcc34c44e04e080a2
1480
1479
2023-03-08T07:35:23Z
Arno11
61
/* Overclocking / Undervolting */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=5.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=300mW (needs kernel work)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking / Undervolting ==
Nokia N900 is stable using following scalable frequencies:
250-500-600-720-800MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /tmp</code>
<code>dtc -I dtb -O dts /tmp/omap3-n900.dtb -o /tmp/omap3-n900.dts</code>
(wait few seconds...)
<code>chmod +w /tmp/omap3-n900.dts</code>
(then the funny part...)
<code>nano /tmp/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content of opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };
By a new opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-800000000 {
opp-hz = < 0x00 0x2faf0800 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close
And still as root
<code>rm /tmp/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /tmp/omap3-n900.dts -o /tmp/omap3-n900.dtb</code>
(Wait a bit)
Check your kernel version:
<code>uname -r</code>
For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9)
<code>cat boot/vmlinuz-<version> /tmp/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu"
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor
"Performance" governor locks N900 at 800MHz
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Old status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode
|}
[[Category:Device]]
27437b2d755d07baf07586aab10e10ae104e2762
1481
1480
2023-03-08T07:37:25Z
Arno11
61
/* Overclocking / Undervolting */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=5.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=300mW (needs kernel work)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking / Undervolting ==
Nokia N900 is stable using following scalable frequencies:
250-500-600-720-800MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /tmp</code>
<code>dtc -I dtb -O dts /tmp/omap3-n900.dtb -o /tmp/omap3-n900.dts</code>
(wait few seconds...)
<code>chmod +w /tmp/omap3-n900.dts</code>
(then the funny part...)
<code>nano /tmp/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content of "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
By a new opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-800000000 {
opp-hz = < 0x00 0x2faf0800 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /tmp/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /tmp/omap3-n900.dts -o /tmp/omap3-n900.dtb</code>
(Wait a bit)
Check your kernel version:
<code>uname -r</code>
For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9)
<code>cat boot/vmlinuz-<version> /tmp/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 800MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Old status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode
|}
[[Category:Device]]
ae9cc7f7b7a3dd499c6e3a153b02c5d0ae104c38
1482
1481
2023-03-08T07:43:59Z
Arno11
61
/* Overclocking / Undervolting */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=5.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=300mW (needs kernel work)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking / Undervolting ==
Nokia N900 is stable using following scalable frequencies:
250-500-600-720-800MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /tmp</code>
<code>dtc -I dtb -O dts /tmp/omap3-n900.dtb -o /tmp/omap3-n900.dts</code>
(wait few seconds...)
<code>chmod +w /tmp/omap3-n900.dts</code>
(then the funny part...)
<code>nano /tmp/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
By a new opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-800000000 {
opp-hz = < 0x00 0x2faf0800 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /tmp/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /tmp/omap3-n900.dts -o /tmp/omap3-n900.dtb</code>
(Wait a bit)
Check your kernel version:
<code>uname -r</code>
For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9)
<code>cat boot/vmlinuz-<version> /tmp/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 800MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Old status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode
|}
[[Category:Device]]
2b6182af6a32fc80557b80452dd91cc5a9414b63
1483
1482
2023-03-08T09:48:32Z
Arno11
61
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=5.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=300mW (needs kernel work)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking / Undervolting ==
Nokia N900 is stable using following scalable frequencies:
250-500-600-720-800MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /tmp</code>
<code>dtc -I dtb -O dts /tmp/omap3-n900.dtb -o /tmp/omap3-n900.dts</code>
(wait few seconds...)
<code>chmod +w /tmp/omap3-n900.dts</code>
(then the funny part...)
<code>nano /tmp/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
By a new opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-800000000 {
opp-hz = < 0x00 0x2faf0800 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /tmp/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /tmp/omap3-n900.dts -o /tmp/omap3-n900.dtb</code>
(Wait a bit)
Check your kernel version:
<code>uname -r</code>
For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9)
<code>cat boot/vmlinuz-<version> /tmp/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 800MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
Work in progress...
== Old status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode
|}
[[Category:Device]]
6a2d983f0faf7767b1ee4a83863d9902cefcefe8
1484
1483
2023-03-08T10:35:35Z
Arno11
61
/* Tips / Tweaks */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=5.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=300mW (needs kernel work)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking / Undervolting ==
Nokia N900 is stable using following scalable frequencies:
250-500-600-720-800MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /tmp</code>
<code>dtc -I dtb -O dts /tmp/omap3-n900.dtb -o /tmp/omap3-n900.dts</code>
(wait few seconds...)
<code>chmod +w /tmp/omap3-n900.dts</code>
(then the funny part...)
<code>nano /tmp/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
By a new opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-800000000 {
opp-hz = < 0x00 0x2faf0800 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /tmp/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /tmp/omap3-n900.dts -o /tmp/omap3-n900.dtb</code>
(Wait a bit)
Check your kernel version:
<code>uname -r</code>
For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9)
<code>cat boot/vmlinuz-<version> /tmp/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 800MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
Work in progress...
=== Video playing ===
Hardware acceleration is not working actually and software acceleration is not working very well on N900.
But video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: sdl
Only unable Direct rendering, Double buffering and Disable screensaver
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Disable everything if you are using Overclock
(if not: unable Allow frame drop)
Hardware decoding: None
Prefer 360p - 480p max video format
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
You can install zram-tools from the repo, and edit /etc/default/zramswap as necessary. It's probably convenient to set allocation to 768 or 1024.
See Get Started Wiki.
== Old status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode
|}
[[Category:Device]]
e3c5a7fe29c8131c53a92e8623ffc29cc8bc052b
1485
1484
2023-03-08T11:03:18Z
Arno11
61
/* Tips / Tweaks */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=5.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=300mW (needs kernel work)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking / Undervolting ==
Nokia N900 is stable using following scalable frequencies:
250-500-600-720-800MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /tmp</code>
<code>dtc -I dtb -O dts /tmp/omap3-n900.dtb -o /tmp/omap3-n900.dts</code>
(wait few seconds...)
<code>chmod +w /tmp/omap3-n900.dts</code>
(then the funny part...)
<code>nano /tmp/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
By a new opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-800000000 {
opp-hz = < 0x00 0x2faf0800 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /tmp/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /tmp/omap3-n900.dts -o /tmp/omap3-n900.dtb</code>
(Wait a bit)
Check your kernel version:
<code>uname -r</code>
For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9)
<code>cat boot/vmlinuz-<version> /tmp/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 800MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
Work in progress...
=== Video playing ===
Hardware acceleration is not working actually and software acceleration is not working very well on N900.
But video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: sdl
Only unable Direct rendering, Double buffering and Disable screensaver
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Disable everything if you are using Overclock
(if not: unable Allow frame drop)
Hardware decoding: None
Prefer 360p - 480p max video format
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
You can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024.
See Get Started Wiki.
=== Web browsing ===
Opera Mini 8 is a temporary solution.
To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar)
Then from microemulator directory run:
<pre>java -jar microemulator-2.0.4.jar</pre>
On the main screen: / File / Open Midlet File and choose your Opera Mini jar file
Click Start (the first loading is quite long and an old nokia smartphone will appear on the screen)
Once loaded and installed, click on resize button to fit to N900 screen.
(Be patient, first loading and settings are slow)
== Old status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode
|}
[[Category:Device]]
f5b4ced5a9e895990bd2d559a7f957b5c04484b9
1486
1485
2023-03-08T14:30:27Z
Arno11
61
/* Tips / Tweaks */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=5.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=300mW (needs kernel work)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking / Undervolting ==
Nokia N900 is stable using following scalable frequencies:
250-500-600-720-800MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /tmp</code>
<code>dtc -I dtb -O dts /tmp/omap3-n900.dtb -o /tmp/omap3-n900.dts</code>
(wait few seconds...)
<code>chmod +w /tmp/omap3-n900.dts</code>
(then the funny part...)
<code>nano /tmp/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
By a new opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-800000000 {
opp-hz = < 0x00 0x2faf0800 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /tmp/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /tmp/omap3-n900.dts -o /tmp/omap3-n900.dtb</code>
(Wait a bit)
Check your kernel version:
<code>uname -r</code>
For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9)
<code>cat boot/vmlinuz-<version> /tmp/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 800MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
Work in progress...
== SD Card ==
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Video playing ===
Hardware acceleration is not working actually and software acceleration is not working very well on N900.
But video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: sdl
Only unable Direct rendering, Double buffering and Disable screensaver
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Disable everything if you are using Overclock
(if not: unable Allow frame drop)
Hardware decoding: None
Prefer 360p - 480p max video format
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
You can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024.
See Get Started Wiki.
=== Web browsing ===
Opera Mini 8 is a temporary solution.
To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar)
Then from microemulator directory run:
<pre>java -jar microemulator-2.0.4.jar</pre>
On the main screen: / File / Open Midlet File and choose your Opera Mini jar file
Click Start (the first loading is quite long and an old nokia smartphone will appear on the screen)
Once loaded and installed, click on resize button to fit to N900 screen.
(Be patient, first loading and settings are slow)
== Old status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode
|}
[[Category:Device]]
0797663cf6877cfd4ed02042d7110aabef669ee4
1487
1486
2023-03-08T14:30:55Z
Arno11
61
/* Tips / Tweaks */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=5.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=300mW (needs kernel work)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking / Undervolting ==
Nokia N900 is stable using following scalable frequencies:
250-500-600-720-800MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /tmp</code>
<code>dtc -I dtb -O dts /tmp/omap3-n900.dtb -o /tmp/omap3-n900.dts</code>
(wait few seconds...)
<code>chmod +w /tmp/omap3-n900.dts</code>
(then the funny part...)
<code>nano /tmp/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
By a new opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-800000000 {
opp-hz = < 0x00 0x2faf0800 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /tmp/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /tmp/omap3-n900.dts -o /tmp/omap3-n900.dtb</code>
(Wait a bit)
Check your kernel version:
<code>uname -r</code>
For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9)
<code>cat boot/vmlinuz-<version> /tmp/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 800MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
=== Tips / Tweaks ===
Work in progress...
== SD Card ==
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Video playing ===
Hardware acceleration is not working actually and software acceleration is not working very well on N900.
But video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: sdl
Only unable Direct rendering, Double buffering and Disable screensaver
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Disable everything if you are using Overclock
(if not: unable Allow frame drop)
Hardware decoding: None
Prefer 360p - 480p max video format
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
You can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024.
See Get Started Wiki.
=== Web browsing ===
Opera Mini 8 is a temporary solution.
To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar)
Then from microemulator directory run:
<pre>java -jar microemulator-2.0.4.jar</pre>
On the main screen: / File / Open Midlet File and choose your Opera Mini jar file
Click Start (the first loading is quite long and an old nokia smartphone will appear on the screen)
Once loaded and installed, click on resize button to fit to N900 screen.
(Be patient, first loading and settings are slow)
== Old status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode
|}
[[Category:Device]]
dfa44a8b7dfa06409855c39dd4dc4cf20b9531b1
1488
1487
2023-03-08T14:31:19Z
Arno11
61
/* Tips / Tweaks */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=5.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=300mW (needs kernel work)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking / Undervolting ==
Nokia N900 is stable using following scalable frequencies:
250-500-600-720-800MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /tmp</code>
<code>dtc -I dtb -O dts /tmp/omap3-n900.dtb -o /tmp/omap3-n900.dts</code>
(wait few seconds...)
<code>chmod +w /tmp/omap3-n900.dts</code>
(then the funny part...)
<code>nano /tmp/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
By a new opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-800000000 {
opp-hz = < 0x00 0x2faf0800 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /tmp/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /tmp/omap3-n900.dts -o /tmp/omap3-n900.dtb</code>
(Wait a bit)
Check your kernel version:
<code>uname -r</code>
For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9)
<code>cat boot/vmlinuz-<version> /tmp/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 800MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
Work in progress...
== SD Card ==
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Video playing ===
Hardware acceleration is not working actually and software acceleration is not working very well on N900.
But video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: sdl
Only unable Direct rendering, Double buffering and Disable screensaver
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Disable everything if you are using Overclock
(if not: unable Allow frame drop)
Hardware decoding: None
Prefer 360p - 480p max video format
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
You can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024.
See Get Started Wiki.
=== Web browsing ===
Opera Mini 8 is a temporary solution.
To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar)
Then from microemulator directory run:
<pre>java -jar microemulator-2.0.4.jar</pre>
On the main screen: / File / Open Midlet File and choose your Opera Mini jar file
Click Start (the first loading is quite long and an old nokia smartphone will appear on the screen)
Once loaded and installed, click on resize button to fit to N900 screen.
(Be patient, first loading and settings are slow)
== Old status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode
|}
[[Category:Device]]
0797663cf6877cfd4ed02042d7110aabef669ee4
1489
1488
2023-03-08T14:31:52Z
Arno11
61
/* SD Card */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=5.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=300mW (needs kernel work)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking / Undervolting ==
Nokia N900 is stable using following scalable frequencies:
250-500-600-720-800MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /tmp</code>
<code>dtc -I dtb -O dts /tmp/omap3-n900.dtb -o /tmp/omap3-n900.dts</code>
(wait few seconds...)
<code>chmod +w /tmp/omap3-n900.dts</code>
(then the funny part...)
<code>nano /tmp/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
By a new opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-800000000 {
opp-hz = < 0x00 0x2faf0800 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /tmp/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /tmp/omap3-n900.dts -o /tmp/omap3-n900.dtb</code>
(Wait a bit)
Check your kernel version:
<code>uname -r</code>
For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9)
<code>cat boot/vmlinuz-<version> /tmp/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 800MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
Work in progress...
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Video playing ===
Hardware acceleration is not working actually and software acceleration is not working very well on N900.
But video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: sdl
Only unable Direct rendering, Double buffering and Disable screensaver
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Disable everything if you are using Overclock
(if not: unable Allow frame drop)
Hardware decoding: None
Prefer 360p - 480p max video format
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
You can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024.
See Get Started Wiki.
=== Web browsing ===
Opera Mini 8 is a temporary solution.
To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar)
Then from microemulator directory run:
<pre>java -jar microemulator-2.0.4.jar</pre>
On the main screen: / File / Open Midlet File and choose your Opera Mini jar file
Click Start (the first loading is quite long and an old nokia smartphone will appear on the screen)
Once loaded and installed, click on resize button to fit to N900 screen.
(Be patient, first loading and settings are slow)
== Old status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode
|}
[[Category:Device]]
c05ef320a4a4bf7be2e2a3763239b66f0e52ebf6
1490
1489
2023-03-10T09:13:55Z
Arno11
61
/* Overclocking / Undervolting */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=5.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=300mW (needs kernel work)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking / Undervolting ==
Nokia N900 is stable using following scalable frequencies:
250-500-600-720-800MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /tmp</code>
<code>dtc -I dtb -O dts /tmp/omap3-n900.dtb -o /tmp/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /tmp/omap3-n900.dts</code>
(then the funny part...)
<code>nano /tmp/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
By a new opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-800000000 {
opp-hz = < 0x00 0x2faf0800 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /tmp/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /tmp/omap3-n900.dts -o /tmp/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9)
<code>cat boot/vmlinuz-<version> /tmp/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 800MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
Work in progress...
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Video playing ===
Hardware acceleration is not working actually and software acceleration is not working very well on N900.
But video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: sdl
Only unable Direct rendering, Double buffering and Disable screensaver
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Disable everything if you are using Overclock
(if not: unable Allow frame drop)
Hardware decoding: None
Prefer 360p - 480p max video format
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
You can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024.
See Get Started Wiki.
=== Web browsing ===
Opera Mini 8 is a temporary solution.
To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar)
Then from microemulator directory run:
<pre>java -jar microemulator-2.0.4.jar</pre>
On the main screen: / File / Open Midlet File and choose your Opera Mini jar file
Click Start (the first loading is quite long and an old nokia smartphone will appear on the screen)
Once loaded and installed, click on resize button to fit to N900 screen.
(Be patient, first loading and settings are slow)
== Old status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode
|}
[[Category:Device]]
92604c4454660c8cf712f6febcc119d8054c6225
1491
1490
2023-03-10T09:16:35Z
Arno11
61
/* Tips / Tweaks */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=5.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=300mW (needs kernel work)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking / Undervolting ==
Nokia N900 is stable using following scalable frequencies:
250-500-600-720-800MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /tmp</code>
<code>dtc -I dtb -O dts /tmp/omap3-n900.dtb -o /tmp/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /tmp/omap3-n900.dts</code>
(then the funny part...)
<code>nano /tmp/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
By a new opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-800000000 {
opp-hz = < 0x00 0x2faf0800 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /tmp/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /tmp/omap3-n900.dts -o /tmp/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9)
<code>cat boot/vmlinuz-<version> /tmp/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 800MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Video playing ===
Hardware acceleration is not working actually and software acceleration is not working very well on N900.
But video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: sdl
Only unable Direct rendering, Double buffering and Disable screensaver
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Disable everything if you are using Overclock
(if not: unable Allow frame drop)
Hardware decoding: None
Prefer 360p - 480p max video format
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
You can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024.
See Get Started Wiki.
=== Web browsing ===
Opera Mini 8 is a temporary solution.
To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar)
Then from microemulator directory run:
<pre>java -jar microemulator-2.0.4.jar</pre>
On the main screen: / File / Open Midlet File and choose your Opera Mini jar file
Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen)
Once loaded and installed, click on resize button to fit to N900 screen.
(Be patient, first loading and settings are slow)
== Old status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode
|}
[[Category:Device]]
0ad55325ef0e0fa725f4b18259ad42d5503f7aeb
1492
1491
2023-03-14T08:20:52Z
Arno11
61
/* Overclocking / Undervolting */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=5.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=300mW (needs kernel work)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking / Undervolting ==
Nokia N900 is stable using following scalable frequencies:
250-500-600-720-800MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
By a new opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-800000000 {
opp-hz = < 0x00 0x2faf0800 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9)
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 800MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Video playing ===
Hardware acceleration is not working actually and software acceleration is not working very well on N900.
But video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: sdl
Only unable Direct rendering, Double buffering and Disable screensaver
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Disable everything if you are using Overclock
(if not: unable Allow frame drop)
Hardware decoding: None
Prefer 360p - 480p max video format
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
You can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024.
See Get Started Wiki.
=== Web browsing ===
Opera Mini 8 is a temporary solution.
To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar)
Then from microemulator directory run:
<pre>java -jar microemulator-2.0.4.jar</pre>
On the main screen: / File / Open Midlet File and choose your Opera Mini jar file
Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen)
Once loaded and installed, click on resize button to fit to N900 screen.
(Be patient, first loading and settings are slow)
== Old status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode
|}
[[Category:Device]]
28d3b430c3b897b6c0a7fc1d1d29a9670efd07b7
1493
1492
2023-03-18T09:33:42Z
Arno11
61
/* More SWAP */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=5.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=300mW (needs kernel work)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking / Undervolting ==
Nokia N900 is stable using following scalable frequencies:
250-500-600-720-800MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
By a new opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-800000000 {
opp-hz = < 0x00 0x2faf0800 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9)
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 800MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Video playing ===
Hardware acceleration is not working actually and software acceleration is not working very well on N900.
But video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: sdl
Only unable Direct rendering, Double buffering and Disable screensaver
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Disable everything if you are using Overclock
(if not: unable Allow frame drop)
Hardware decoding: None
Prefer 360p - 480p max video format
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
To create a simple swap file:
sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576
You can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024.
See Get Started Wiki.
=== Web browsing ===
Opera Mini 8 is a temporary solution.
To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar)
Then from microemulator directory run:
<pre>java -jar microemulator-2.0.4.jar</pre>
On the main screen: / File / Open Midlet File and choose your Opera Mini jar file
Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen)
Once loaded and installed, click on resize button to fit to N900 screen.
(Be patient, first loading and settings are slow)
== Old status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode
|}
[[Category:Device]]
4e31cc85b2af741500c66d9dd7c04dc885a67602
1494
1493
2023-03-18T09:34:27Z
Arno11
61
/* More SWAP */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=5.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=300mW (needs kernel work)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking / Undervolting ==
Nokia N900 is stable using following scalable frequencies:
250-500-600-720-800MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
By a new opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-800000000 {
opp-hz = < 0x00 0x2faf0800 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9)
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 800MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Video playing ===
Hardware acceleration is not working actually and software acceleration is not working very well on N900.
But video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: sdl
Only unable Direct rendering, Double buffering and Disable screensaver
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Disable everything if you are using Overclock
(if not: unable Allow frame drop)
Hardware decoding: None
Prefer 360p - 480p max video format
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
In progress...
To create a simple swap file:
sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576
You can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024.
See Get Started Wiki.
=== Web browsing ===
Opera Mini 8 is a temporary solution.
To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar)
Then from microemulator directory run:
<pre>java -jar microemulator-2.0.4.jar</pre>
On the main screen: / File / Open Midlet File and choose your Opera Mini jar file
Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen)
Once loaded and installed, click on resize button to fit to N900 screen.
(Be patient, first loading and settings are slow)
== Old status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode
|}
[[Category:Device]]
eee06e346de1f751c763b3ce68499b3ae2da517e
1495
1494
2023-03-18T09:35:48Z
Arno11
61
/* More SWAP */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=5.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=300mW (needs kernel work)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking / Undervolting ==
Nokia N900 is stable using following scalable frequencies:
250-500-600-720-800MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
By a new opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-800000000 {
opp-hz = < 0x00 0x2faf0800 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9)
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 800MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Video playing ===
Hardware acceleration is not working actually and software acceleration is not working very well on N900.
But video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: sdl
Only unable Direct rendering, Double buffering and Disable screensaver
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Disable everything if you are using Overclock
(if not: unable Allow frame drop)
Hardware decoding: None
Prefer 360p - 480p max video format
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
In progress...
To create a simple swap file:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
You can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024.
See Get Started Wiki.
=== Web browsing ===
Opera Mini 8 is a temporary solution.
To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar)
Then from microemulator directory run:
<pre>java -jar microemulator-2.0.4.jar</pre>
On the main screen: / File / Open Midlet File and choose your Opera Mini jar file
Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen)
Once loaded and installed, click on resize button to fit to N900 screen.
(Be patient, first loading and settings are slow)
== Old status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode
|}
[[Category:Device]]
c4b1d57baa40e28a9bbb30a78edf209cd6cb6818
Nokia N900
0
48
1496
1495
2023-03-18T09:48:50Z
Arno11
61
/* More SWAP */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=5.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=300mW (needs kernel work)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking / Undervolting ==
Nokia N900 is stable using following scalable frequencies:
250-500-600-720-800MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
By a new opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-800000000 {
opp-hz = < 0x00 0x2faf0800 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9)
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 800MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Video playing ===
Hardware acceleration is not working actually and software acceleration is not working very well on N900.
But video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: sdl
Only unable Direct rendering, Double buffering and Disable screensaver
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Disable everything if you are using Overclock
(if not: unable Allow frame drop)
Hardware decoding: None
Prefer 360p - 480p max video format
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
==First method==
To create a simple swap file:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
==Second method==
Or you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024.
See Get Started Wiki.
=== Web browsing ===
Opera Mini 8 is a temporary solution.
To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar)
Then from microemulator directory run:
<pre>java -jar microemulator-2.0.4.jar</pre>
On the main screen: / File / Open Midlet File and choose your Opera Mini jar file
Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen)
Once loaded and installed, click on resize button to fit to N900 screen.
(Be patient, first loading and settings are slow)
== Old status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode
|}
[[Category:Device]]
a81382e3e60f85acf1c6185e6349d7309fdf6571
1497
1496
2023-03-18T09:50:55Z
Arno11
61
/* Video playing */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=5.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=300mW (needs kernel work)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking / Undervolting ==
Nokia N900 is stable using following scalable frequencies:
250-500-600-720-800MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
By a new opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-800000000 {
opp-hz = < 0x00 0x2faf0800 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9)
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 800MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Video playing ===
Hardware acceleration is not working actually on N900.
But video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: sdl
Only unable Direct rendering, Double buffering and Disable screensaver
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Disable everything if you are using Overclock
(if not: unable Allow frame drop)
Hardware decoding: None
Prefer 360p - 480p max video format
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
==First method==
To create a simple swap file:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
==Second method==
Or you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024.
See Get Started Wiki.
=== Web browsing ===
Opera Mini 8 is a temporary solution.
To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar)
Then from microemulator directory run:
<pre>java -jar microemulator-2.0.4.jar</pre>
On the main screen: / File / Open Midlet File and choose your Opera Mini jar file
Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen)
Once loaded and installed, click on resize button to fit to N900 screen.
(Be patient, first loading and settings are slow)
== Old status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode
|}
[[Category:Device]]
d745607d43b32d983ce5a74037a383da2b44cbed
1498
1497
2023-03-18T09:53:46Z
Arno11
61
/* First method */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=5.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=300mW (needs kernel work)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking / Undervolting ==
Nokia N900 is stable using following scalable frequencies:
250-500-600-720-800MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
By a new opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-800000000 {
opp-hz = < 0x00 0x2faf0800 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9)
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 800MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Video playing ===
Hardware acceleration is not working actually on N900.
But video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: sdl
Only unable Direct rendering, Double buffering and Disable screensaver
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Disable everything if you are using Overclock
(if not: unable Allow frame drop)
Hardware decoding: None
Prefer 360p - 480p max video format
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
==SWAP==
To create a simple swap file if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
==Second method==
Or you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024.
See Get Started Wiki.
=== Web browsing ===
Opera Mini 8 is a temporary solution.
To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar)
Then from microemulator directory run:
<pre>java -jar microemulator-2.0.4.jar</pre>
On the main screen: / File / Open Midlet File and choose your Opera Mini jar file
Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen)
Once loaded and installed, click on resize button to fit to N900 screen.
(Be patient, first loading and settings are slow)
== Old status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode
|}
[[Category:Device]]
62d6bafff5a0bd2ab5ffb724bd7fbf9d2ea1ef3f
1499
1498
2023-03-18T09:55:03Z
Arno11
61
/* SWAP */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=5.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=300mW (needs kernel work)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking / Undervolting ==
Nokia N900 is stable using following scalable frequencies:
250-500-600-720-800MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
By a new opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-800000000 {
opp-hz = < 0x00 0x2faf0800 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9)
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 800MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Video playing ===
Hardware acceleration is not working actually on N900.
But video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: sdl
Only unable Direct rendering, Double buffering and Disable screensaver
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Disable everything if you are using Overclock
(if not: unable Allow frame drop)
Hardware decoding: None
Prefer 360p - 480p max video format
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
==First method==
To create a simple swap file if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
==Second method==
Or you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024.
See Get Started Wiki.
=== Web browsing ===
Opera Mini 8 is a temporary solution.
To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar)
Then from microemulator directory run:
<pre>java -jar microemulator-2.0.4.jar</pre>
On the main screen: / File / Open Midlet File and choose your Opera Mini jar file
Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen)
Once loaded and installed, click on resize button to fit to N900 screen.
(Be patient, first loading and settings are slow)
== Old status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode
|}
[[Category:Device]]
7fd1db78cc3202e1497cd93cc54a77954349d088
1500
1499
2023-03-18T09:59:06Z
Arno11
61
/* More SWAP */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=5.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=300mW (needs kernel work)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking / Undervolting ==
Nokia N900 is stable using following scalable frequencies:
250-500-600-720-800MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
By a new opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-800000000 {
opp-hz = < 0x00 0x2faf0800 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9)
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 800MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Video playing ===
Hardware acceleration is not working actually on N900.
But video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: sdl
Only unable Direct rendering, Double buffering and Disable screensaver
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Disable everything if you are using Overclock
(if not: unable Allow frame drop)
Hardware decoding: None
Prefer 360p - 480p max video format
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
== More SWAP ==
==First method==
To create a simple swap file if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
==Second method==
Or you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024.
See Get Started Wiki.
=== Web browsing ===
Opera Mini 8 is a temporary solution.
To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar)
Then from microemulator directory run:
<pre>java -jar microemulator-2.0.4.jar</pre>
On the main screen: / File / Open Midlet File and choose your Opera Mini jar file
Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen)
Once loaded and installed, click on resize button to fit to N900 screen.
(Be patient, first loading and settings are slow)
== Old status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode
|}
[[Category:Device]]
301c285db6da70cac310d35143c4388b92d430cb
1501
1500
2023-03-18T09:59:43Z
Arno11
61
/* First method */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=5.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=300mW (needs kernel work)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking / Undervolting ==
Nokia N900 is stable using following scalable frequencies:
250-500-600-720-800MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
By a new opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-800000000 {
opp-hz = < 0x00 0x2faf0800 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9)
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 800MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Video playing ===
Hardware acceleration is not working actually on N900.
But video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: sdl
Only unable Direct rendering, Double buffering and Disable screensaver
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Disable everything if you are using Overclock
(if not: unable Allow frame drop)
Hardware decoding: None
Prefer 360p - 480p max video format
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
== More SWAP ==
===First method===
To create a simple swap file if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
==Second method==
Or you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024.
See Get Started Wiki.
=== Web browsing ===
Opera Mini 8 is a temporary solution.
To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar)
Then from microemulator directory run:
<pre>java -jar microemulator-2.0.4.jar</pre>
On the main screen: / File / Open Midlet File and choose your Opera Mini jar file
Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen)
Once loaded and installed, click on resize button to fit to N900 screen.
(Be patient, first loading and settings are slow)
== Old status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode
|}
[[Category:Device]]
bf1525cea876185218f36f9ef9bba59911ecbe7f
1502
1501
2023-03-18T10:00:56Z
Arno11
61
/* Second method */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=5.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=300mW (needs kernel work)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking / Undervolting ==
Nokia N900 is stable using following scalable frequencies:
250-500-600-720-800MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
By a new opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-800000000 {
opp-hz = < 0x00 0x2faf0800 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9)
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 800MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Video playing ===
Hardware acceleration is not working actually on N900.
But video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: sdl
Only unable Direct rendering, Double buffering and Disable screensaver
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Disable everything if you are using Overclock
(if not: unable Allow frame drop)
Hardware decoding: None
Prefer 360p - 480p max video format
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
== More SWAP ==
===First method===
To create a simple swap file if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
===Second method===
To extand existing swap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024.
See Get Started Wiki.
=== Web browsing ===
Opera Mini 8 is a temporary solution.
To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar)
Then from microemulator directory run:
<pre>java -jar microemulator-2.0.4.jar</pre>
On the main screen: / File / Open Midlet File and choose your Opera Mini jar file
Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen)
Once loaded and installed, click on resize button to fit to N900 screen.
(Be patient, first loading and settings are slow)
== Old status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode
|}
[[Category:Device]]
6c28ae8c2addc7ac6e33d3fe10783d9919a6148f
1503
1502
2023-03-18T10:03:30Z
Arno11
61
/* More SWAP */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=5.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=300mW (needs kernel work)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking / Undervolting ==
Nokia N900 is stable using following scalable frequencies:
250-500-600-720-800MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
By a new opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-800000000 {
opp-hz = < 0x00 0x2faf0800 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9)
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 800MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Video playing ===
Hardware acceleration is not working actually on N900.
But video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: sdl
Only unable Direct rendering, Double buffering and Disable screensaver
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Disable everything if you are using Overclock
(if not: unable Allow frame drop)
Hardware decoding: None
Prefer 360p - 480p max video format
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
First method:
To create a simple swap file if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
Second method:
To extand existing swap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024.
See Get Started Wiki.
=== Web browsing ===
Opera Mini 8 is a temporary solution.
To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar)
Then from microemulator directory run:
<pre>java -jar microemulator-2.0.4.jar</pre>
On the main screen: / File / Open Midlet File and choose your Opera Mini jar file
Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen)
Once loaded and installed, click on resize button to fit to N900 screen.
(Be patient, first loading and settings are slow)
== Old status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode
|}
[[Category:Device]]
b8b3d31078d0be5d451cc55eeff6d9012521821e
1504
1503
2023-03-19T13:35:59Z
Arno11
61
/* More SWAP */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=5.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=300mW (needs kernel work)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking / Undervolting ==
Nokia N900 is stable using following scalable frequencies:
250-500-600-720-800MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
By a new opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-800000000 {
opp-hz = < 0x00 0x2faf0800 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9)
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 800MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Video playing ===
Hardware acceleration is not working actually on N900.
But video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: sdl
Only unable Direct rendering, Double buffering and Disable screensaver
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Disable everything if you are using Overclock
(if not: unable Allow frame drop)
Hardware decoding: None
Prefer 360p - 480p max video format
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
First method:
To create a simple swap file if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
Second method:
To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024.
See Get Started Wiki.
=== Web browsing ===
Opera Mini 8 is a temporary solution.
To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar)
Then from microemulator directory run:
<pre>java -jar microemulator-2.0.4.jar</pre>
On the main screen: / File / Open Midlet File and choose your Opera Mini jar file
Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen)
Once loaded and installed, click on resize button to fit to N900 screen.
(Be patient, first loading and settings are slow)
== Old status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode
|}
[[Category:Device]]
aa30c5f17765c32ef9ab7ae859ebaa740da2b4ae
1506
1504
2023-03-24T12:30:36Z
Arno11
61
/* Video playing */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=5.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=300mW (needs kernel work)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking / Undervolting ==
Nokia N900 is stable using following scalable frequencies:
250-500-600-720-800MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
By a new opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-800000000 {
opp-hz = < 0x00 0x2faf0800 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9)
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 800MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Video playing ===
Hardware acceleration is not working actually on N900.
But video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
First method:
To create a simple swap file if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
Second method:
To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024.
See Get Started Wiki.
=== Web browsing ===
Opera Mini 8 is a temporary solution.
To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar)
Then from microemulator directory run:
<pre>java -jar microemulator-2.0.4.jar</pre>
On the main screen: / File / Open Midlet File and choose your Opera Mini jar file
Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen)
Once loaded and installed, click on resize button to fit to N900 screen.
(Be patient, first loading and settings are slow)
== Old status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode
|}
[[Category:Device]]
8d56df15f42bfb6d5da79d6d606d1a6de5ecfde9
1507
1506
2023-03-24T12:38:25Z
Arno11
61
/* Video playing */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=5.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=300mW (needs kernel work)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking / Undervolting ==
Nokia N900 is stable using following scalable frequencies:
250-500-600-720-800MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
By a new opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-800000000 {
opp-hz = < 0x00 0x2faf0800 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9)
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 800MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
First method:
To create a simple swap file if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
Second method:
To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024.
See Get Started Wiki.
=== Web browsing ===
Opera Mini 8 is a temporary solution.
To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar)
Then from microemulator directory run:
<pre>java -jar microemulator-2.0.4.jar</pre>
On the main screen: / File / Open Midlet File and choose your Opera Mini jar file
Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen)
Once loaded and installed, click on resize button to fit to N900 screen.
(Be patient, first loading and settings are slow)
== Old status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode
|}
[[Category:Device]]
dc2c9cae6b59b01ea43b90873220eb847d6afc70
1509
1507
2023-04-08T16:41:30Z
Arno11
61
/* Old status table */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=5.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=300mW (needs kernel work)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking / Undervolting ==
Nokia N900 is stable using following scalable frequencies:
250-500-600-720-800MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
By a new opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-800000000 {
opp-hz = < 0x00 0x2faf0800 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9)
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 800MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
First method:
To create a simple swap file if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
Second method:
To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024.
See Get Started Wiki.
=== Web browsing ===
Opera Mini 8 is a temporary solution.
To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar)
Then from microemulator directory run:
<pre>java -jar microemulator-2.0.4.jar</pre>
On the main screen: / File / Open Midlet File and choose your Opera Mini jar file
Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen)
Once loaded and installed, click on resize button to fit to N900 screen.
(Be patient, first loading and settings are slow)
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.20 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Conversations UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
be421d9e02083ba17737e3ec7529fd87d4fc3e85
1510
1509
2023-04-08T17:20:33Z
Arno11
61
/* Tips / Tweaks */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=5.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=300mW (needs kernel work)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking / Undervolting ==
Nokia N900 is stable using following scalable frequencies:
250-500-600-720-800MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
By a new opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-800000000 {
opp-hz = < 0x00 0x2faf0800 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9)
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 800MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
First method:
To create a simple swap file if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
Second method:
To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024.
See Get Started Wiki.
=== Web browsing ===
Opera Mini 8 is a temporary solution.
To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar)
Then from microemulator directory run:
<pre>java -jar microemulator-2.0.4.jar</pre>
On the main screen: / File / Open Midlet File and choose your Opera Mini jar file
Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen)
Once loaded and installed, click on resize button to fit to N900 screen.
(Be patient, first loading and settings are slow)
=== Retroarch ===
First thing to do:
Edit /home/user/.config/retroarch/retroarch.cfg
menu_driver = "glui"
menu_show_core_updater = "true"
video_driver = "gl"
video_vsync = "true"
menu_unified_control = "true"
menu_core_enable = "true"
quick_menu_show_options = "true"
Some emulators are working well:
- QuickNES (NES/Famicom)
- Snes9x 2005 (SNES/Super Famicom)
Others at 70-80% speed:
- Genesis Plus GX (SEGA MS/GG/MD/CD)
Retroarch recommended settings:
To avoid crashes, use only "glui" Menu Driver
Driver:
Input driver X, joypad driver linuxraw, video driver gl, audio driver null, location driver null
Video:
Aspect ratio core provided, Integer scaler no, Threaded Video yes, Vertical Sync yes, Hard gpu Sync no,
Audio:
Audio Enable no
Input: (very important)
Unified Menu Controls yes
Input User 1 Binds (keyboard settings)
Directory: (very important)
Core /home/user
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.20 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Conversations UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
152ea37282510b1f524b372e2a7b5d397a531f3f
1511
1510
2023-04-08T17:27:20Z
Arno11
61
/* Retroarch */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=5.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=300mW (needs kernel work)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking / Undervolting ==
Nokia N900 is stable using following scalable frequencies:
250-500-600-720-800MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
By a new opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-800000000 {
opp-hz = < 0x00 0x2faf0800 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9)
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 800MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
First method:
To create a simple swap file if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
Second method:
To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024.
See Get Started Wiki.
=== Web browsing ===
Opera Mini 8 is a temporary solution.
To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar)
Then from microemulator directory run:
<pre>java -jar microemulator-2.0.4.jar</pre>
On the main screen: / File / Open Midlet File and choose your Opera Mini jar file
Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen)
Once loaded and installed, click on resize button to fit to N900 screen.
(Be patient, first loading and settings are slow)
=== Retroarch ===
'''First thing to do:'''
Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre>
menu_driver = "glui"
menu_show_core_updater = "true"
video_driver = "gl"
video_vsync = "true"
menu_unified_control = "true"
menu_core_enable = "true"
quick_menu_show_options = "true"
'''Some emulators are working well:
'''
- QuickNES (NES/Famicom)
- Snes9x 2005 (SNES/Super Famicom)
Others at 70-80% speed:
- Genesis Plus GX (SEGA MS/GG/MD/CD)
'''Retroarch recommended settings:'''
To avoid crashes, use only "glui" Menu Driver
'''Driver'''
Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null"
'''Video'''
Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no",
'''Audio'''
Audio Enable "no"
'''Input''' (very important)
Unified Menu Controls "yes"
Input User 1 Binds (keyboard settings)
'''Directory''' (very important)
Core "/home/user"
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.20 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Conversations UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
d1f936405adc8481d1aca9210510cceaeaae51f3
1512
1511
2023-04-08T17:33:14Z
Arno11
61
/* Retroarch */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=5.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=300mW (needs kernel work)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking / Undervolting ==
Nokia N900 is stable using following scalable frequencies:
250-500-600-720-800MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
By a new opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-800000000 {
opp-hz = < 0x00 0x2faf0800 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9)
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 800MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
First method:
To create a simple swap file if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
Second method:
To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024.
See Get Started Wiki.
=== Web browsing ===
Opera Mini 8 is a temporary solution.
To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar)
Then from microemulator directory run:
<pre>java -jar microemulator-2.0.4.jar</pre>
On the main screen: / File / Open Midlet File and choose your Opera Mini jar file
Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen)
Once loaded and installed, click on resize button to fit to N900 screen.
(Be patient, first loading and settings are slow)
=== Retroarch ===
'''First thing to do:'''
Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre>
menu_driver = "glui"
menu_show_core_updater = "true"
video_driver = "gl"
video_vsync = "true"
menu_unified_control = "true"
menu_core_enable = "true"
quick_menu_show_options = "true"
'''Some emulators are working well:
'''
- QuickNES (NES/Famicom)
- Snes9x 2005 (SNES/Super Famicom)
Others at 70-80% speed:
- Genesis Plus GX (SEGA MS/GG/MD/CD)
'''Retroarch recommended settings:'''
To avoid crashes, use only "glui" Menu Driver
'''Driver'''
Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null"
'''Video'''
Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no",
'''Audio'''
Audio Enable "no"
'''Input''' (very important)
Unified Menu Controls "yes"
Input User 1 Binds (keyboard settings)
'''Directory''' (very important)
Core "/home/user"
'''Default keyboard keys'''
'''X''' validate/ok
'''C''' cancel/back
'''F''' fullscreen (never close Retroarch in fullscreen mode)
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.20 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Conversations UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
227efad202a75d59d20d81ea8629df577ac1b769
1513
1512
2023-04-08T17:34:16Z
Arno11
61
/* Retroarch */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=5.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes, no UI
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=300mW (needs kernel work)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking / Undervolting ==
Nokia N900 is stable using following scalable frequencies:
250-500-600-720-800MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
By a new opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-800000000 {
opp-hz = < 0x00 0x2faf0800 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9)
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 800MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
First method:
To create a simple swap file if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
Second method:
To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024.
See Get Started Wiki.
=== Web browsing ===
Opera Mini 8 is a temporary solution.
To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar)
Then from microemulator directory run:
<pre>java -jar microemulator-2.0.4.jar</pre>
On the main screen: / File / Open Midlet File and choose your Opera Mini jar file
Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen)
Once loaded and installed, click on resize button to fit to N900 screen.
(Be patient, first loading and settings are slow)
=== Retroarch ===
'''First thing to do:'''
Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre>
menu_driver = "glui"
menu_show_core_updater = "true"
video_driver = "gl"
video_vsync = "true"
menu_unified_control = "true"
menu_core_enable = "true"
quick_menu_show_options = "true"
'''Some emulators are working well:
'''
- QuickNES (NES/Famicom)
- Snes9x 2005 (SNES/Super Famicom)
Others at 70-80% speed:
- Genesis Plus GX (SEGA MS/GG/MD/CD)
'''Retroarch recommended settings:'''
To avoid crashes, use only "glui" Menu Driver
'''Driver'''
Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null"
'''Video'''
Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no",
'''Audio'''
Audio Enable "no"
'''Input''' (very important)
Unified Menu Controls "yes"
Input User 1 Binds (keyboard settings)
'''Directory''' (very important)
Core "/home/user"
'''Default keyboard keys'''
'''X''' validate/ok
'''C''' cancel/back
'''F''' fullscreen (never close Retroarch in fullscreen mode)
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.20 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Conversations UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
4a0738f28f5c18035fc27d61f42afc696570938a
1514
1513
2023-04-08T17:40:46Z
Arno11
61
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking / Undervolting ==
Nokia N900 is stable using following scalable frequencies:
250-500-600-720-800MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
By a new opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-800000000 {
opp-hz = < 0x00 0x2faf0800 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9)
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 800MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
First method:
To create a simple swap file if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
Second method:
To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024.
See Get Started Wiki.
=== Web browsing ===
Opera Mini 8 is a temporary solution.
To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar)
Then from microemulator directory run:
<pre>java -jar microemulator-2.0.4.jar</pre>
On the main screen: / File / Open Midlet File and choose your Opera Mini jar file
Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen)
Once loaded and installed, click on resize button to fit to N900 screen.
(Be patient, first loading and settings are slow)
=== Retroarch ===
'''First thing to do:'''
Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre>
menu_driver = "glui"
menu_show_core_updater = "true"
video_driver = "gl"
video_vsync = "true"
menu_unified_control = "true"
menu_core_enable = "true"
quick_menu_show_options = "true"
'''Some emulators are working well:
'''
- QuickNES (NES/Famicom)
- Snes9x 2005 (SNES/Super Famicom)
Others at 70-80% speed:
- Genesis Plus GX (SEGA MS/GG/MD/CD)
'''Retroarch recommended settings:'''
To avoid crashes, use only "glui" Menu Driver
'''Driver'''
Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null"
'''Video'''
Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no",
'''Audio'''
Audio Enable "no"
'''Input''' (very important)
Unified Menu Controls "yes"
Input User 1 Binds (keyboard settings)
'''Directory''' (very important)
Core "/home/user"
'''Default keyboard keys'''
'''X''' validate/ok
'''C''' cancel/back
'''F''' fullscreen (never close Retroarch in fullscreen mode)
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.20 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Conversations UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
19043455e37d34bd91fecc1757a2d36ea1ed730f
1515
1514
2023-04-08T17:47:12Z
Arno11
61
/* Retroarch */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking / Undervolting ==
Nokia N900 is stable using following scalable frequencies:
250-500-600-720-800MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
By a new opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-800000000 {
opp-hz = < 0x00 0x2faf0800 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9)
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 800MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
First method:
To create a simple swap file if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
Second method:
To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024.
See Get Started Wiki.
=== Web browsing ===
Opera Mini 8 is a temporary solution.
To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar)
Then from microemulator directory run:
<pre>java -jar microemulator-2.0.4.jar</pre>
On the main screen: / File / Open Midlet File and choose your Opera Mini jar file
Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen)
Once loaded and installed, click on resize button to fit to N900 screen.
(Be patient, first loading and settings are slow)
=== Retroarch ===
'''First thing to do:'''
Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre>
menu_driver = "glui"
menu_show_core_updater = "true"
video_driver = "gl"
video_vsync = "true"
menu_unified_control = "true"
menu_core_enable = "true"
quick_menu_show_options = "true"
'''Some emulators are working well:
'''
- QuickNES (NES/Famicom)
- Snes9x 2005 (SNES/Super Famicom)
Others at 70-80% speed:
- Genesis Plus GX (SEGA MS/GG/MD/CD)
Go to Online Updater / Core Updater to download emulators
'''Retroarch recommended settings:'''
To avoid crashes, use only "glui" Menu Driver
'''Driver'''
Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null"
'''Video'''
Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no",
'''Audio'''
Audio Enable "no"
'''Input''' (very important)
Unified Menu Controls "yes"
Input User 1 Binds (keyboard settings)
'''Directory''' (very important)
Core "/home/user"
'''Default keyboard keys'''
'''X''' validate/ok
'''C''' cancel/back
'''F''' fullscreen (never close Retroarch in fullscreen mode)
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.20 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Conversations UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
bfaab4131909601e17129983be628a32d7f2a6c4
1516
1515
2023-04-08T17:57:57Z
Arno11
61
/* Overclocking / Undervolting */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
Nokia N900 is stable using following scalable frequencies and is much, much faster:
250-500-600-720-850MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
By a new opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9)
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 800MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
First method:
To create a simple swap file if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
Second method:
To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024.
See Get Started Wiki.
=== Web browsing ===
Opera Mini 8 is a temporary solution.
To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar)
Then from microemulator directory run:
<pre>java -jar microemulator-2.0.4.jar</pre>
On the main screen: / File / Open Midlet File and choose your Opera Mini jar file
Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen)
Once loaded and installed, click on resize button to fit to N900 screen.
(Be patient, first loading and settings are slow)
=== Retroarch ===
'''First thing to do:'''
Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre>
menu_driver = "glui"
menu_show_core_updater = "true"
video_driver = "gl"
video_vsync = "true"
menu_unified_control = "true"
menu_core_enable = "true"
quick_menu_show_options = "true"
'''Some emulators are working well:
'''
- QuickNES (NES/Famicom)
- Snes9x 2005 (SNES/Super Famicom)
Others at 70-80% speed:
- Genesis Plus GX (SEGA MS/GG/MD/CD)
Go to Online Updater / Core Updater to download emulators
'''Retroarch recommended settings:'''
To avoid crashes, use only "glui" Menu Driver
'''Driver'''
Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null"
'''Video'''
Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no",
'''Audio'''
Audio Enable "no"
'''Input''' (very important)
Unified Menu Controls "yes"
Input User 1 Binds (keyboard settings)
'''Directory''' (very important)
Core "/home/user"
'''Default keyboard keys'''
'''X''' validate/ok
'''C''' cancel/back
'''F''' fullscreen (never close Retroarch in fullscreen mode)
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.20 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Conversations UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
570c2cdb66a445f226fdcf41f267b71bf61f8ca1
1517
1516
2023-04-08T17:59:45Z
Arno11
61
/* Overclocking */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
Nokia N900 is stable using following scalable frequencies and is much, much faster:
250-500-600-720-850MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
By a new opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 800MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
First method:
To create a simple swap file if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
Second method:
To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024.
See Get Started Wiki.
=== Web browsing ===
Opera Mini 8 is a temporary solution.
To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar)
Then from microemulator directory run:
<pre>java -jar microemulator-2.0.4.jar</pre>
On the main screen: / File / Open Midlet File and choose your Opera Mini jar file
Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen)
Once loaded and installed, click on resize button to fit to N900 screen.
(Be patient, first loading and settings are slow)
=== Retroarch ===
'''First thing to do:'''
Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre>
menu_driver = "glui"
menu_show_core_updater = "true"
video_driver = "gl"
video_vsync = "true"
menu_unified_control = "true"
menu_core_enable = "true"
quick_menu_show_options = "true"
'''Some emulators are working well:
'''
- QuickNES (NES/Famicom)
- Snes9x 2005 (SNES/Super Famicom)
Others at 70-80% speed:
- Genesis Plus GX (SEGA MS/GG/MD/CD)
Go to Online Updater / Core Updater to download emulators
'''Retroarch recommended settings:'''
To avoid crashes, use only "glui" Menu Driver
'''Driver'''
Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null"
'''Video'''
Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no",
'''Audio'''
Audio Enable "no"
'''Input''' (very important)
Unified Menu Controls "yes"
Input User 1 Binds (keyboard settings)
'''Directory''' (very important)
Core "/home/user"
'''Default keyboard keys'''
'''X''' validate/ok
'''C''' cancel/back
'''F''' fullscreen (never close Retroarch in fullscreen mode)
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.20 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Conversations UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
e1415f62941622f661b379eaa4de9272c58e88f8
1518
1517
2023-04-08T18:00:29Z
Arno11
61
/* Overclocking */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
Nokia N900 is stable using following scalable frequencies and is much, much faster:
250-500-600-720-850MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 800MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
First method:
To create a simple swap file if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
Second method:
To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024.
See Get Started Wiki.
=== Web browsing ===
Opera Mini 8 is a temporary solution.
To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar)
Then from microemulator directory run:
<pre>java -jar microemulator-2.0.4.jar</pre>
On the main screen: / File / Open Midlet File and choose your Opera Mini jar file
Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen)
Once loaded and installed, click on resize button to fit to N900 screen.
(Be patient, first loading and settings are slow)
=== Retroarch ===
'''First thing to do:'''
Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre>
menu_driver = "glui"
menu_show_core_updater = "true"
video_driver = "gl"
video_vsync = "true"
menu_unified_control = "true"
menu_core_enable = "true"
quick_menu_show_options = "true"
'''Some emulators are working well:
'''
- QuickNES (NES/Famicom)
- Snes9x 2005 (SNES/Super Famicom)
Others at 70-80% speed:
- Genesis Plus GX (SEGA MS/GG/MD/CD)
Go to Online Updater / Core Updater to download emulators
'''Retroarch recommended settings:'''
To avoid crashes, use only "glui" Menu Driver
'''Driver'''
Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null"
'''Video'''
Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no",
'''Audio'''
Audio Enable "no"
'''Input''' (very important)
Unified Menu Controls "yes"
Input User 1 Binds (keyboard settings)
'''Directory''' (very important)
Core "/home/user"
'''Default keyboard keys'''
'''X''' validate/ok
'''C''' cancel/back
'''F''' fullscreen (never close Retroarch in fullscreen mode)
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.20 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Conversations UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
380a0ce7d22a918624f5c1f87aefd41c59c76a9f
1519
1518
2023-04-08T18:02:23Z
Arno11
61
/* Overclocking */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster:
250-500-600-720-850MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 800MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
First method:
To create a simple swap file if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
Second method:
To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024.
See Get Started Wiki.
=== Web browsing ===
Opera Mini 8 is a temporary solution.
To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar)
Then from microemulator directory run:
<pre>java -jar microemulator-2.0.4.jar</pre>
On the main screen: / File / Open Midlet File and choose your Opera Mini jar file
Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen)
Once loaded and installed, click on resize button to fit to N900 screen.
(Be patient, first loading and settings are slow)
=== Retroarch ===
'''First thing to do:'''
Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre>
menu_driver = "glui"
menu_show_core_updater = "true"
video_driver = "gl"
video_vsync = "true"
menu_unified_control = "true"
menu_core_enable = "true"
quick_menu_show_options = "true"
'''Some emulators are working well:
'''
- QuickNES (NES/Famicom)
- Snes9x 2005 (SNES/Super Famicom)
Others at 70-80% speed:
- Genesis Plus GX (SEGA MS/GG/MD/CD)
Go to Online Updater / Core Updater to download emulators
'''Retroarch recommended settings:'''
To avoid crashes, use only "glui" Menu Driver
'''Driver'''
Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null"
'''Video'''
Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no",
'''Audio'''
Audio Enable "no"
'''Input''' (very important)
Unified Menu Controls "yes"
Input User 1 Binds (keyboard settings)
'''Directory''' (very important)
Core "/home/user"
'''Default keyboard keys'''
'''X''' validate/ok
'''C''' cancel/back
'''F''' fullscreen (never close Retroarch in fullscreen mode)
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.20 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Conversations UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
26b48e0a0f75f418e08f3505806c0418bd0763e2
1520
1519
2023-04-08T18:23:05Z
Arno11
61
/* Tips / Tweaks */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster:
250-500-600-720-850MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 800MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Social messaging ===
Conversations app is compatible with libpurple and irc/bitlbee server.
Twitter, Signal, Telegram, FB Messenger and others are working.
(most audio and video links are playable)
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
First method:
To create a simple swap file if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
Second method:
To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024.
See Get Started Wiki.
=== Web browsing ===
Opera Mini 8 is a temporary solution.
To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar)
Then from microemulator directory run:
<pre>java -jar microemulator-2.0.4.jar</pre>
On the main screen: / File / Open Midlet File and choose your Opera Mini jar file
Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen)
Once loaded and installed, click on resize button to fit to N900 screen.
(Be patient, first loading and settings are slow)
=== Retroarch ===
'''First thing to do:'''
Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre>
menu_driver = "glui"
menu_show_core_updater = "true"
video_driver = "gl"
video_vsync = "true"
menu_unified_control = "true"
menu_core_enable = "true"
quick_menu_show_options = "true"
'''Some emulators are working well:
'''
- QuickNES (NES/Famicom)
- Snes9x 2005 (SNES/Super Famicom)
Others at 70-80% speed:
- Genesis Plus GX (SEGA MS/GG/MD/CD)
Go to Online Updater / Core Updater to download emulators
'''Retroarch recommended settings:'''
To avoid crashes, use only "glui" Menu Driver
'''Driver'''
Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null"
'''Video'''
Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no",
'''Audio'''
Audio Enable "no"
'''Input''' (very important)
Unified Menu Controls "yes"
Input User 1 Binds (keyboard settings)
'''Directory''' (very important)
Core "/home/user"
'''Default keyboard keys'''
'''X''' validate/ok
'''C''' cancel/back
'''F''' fullscreen (never close Retroarch in fullscreen mode)
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.20 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Conversations UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
bcef4992f841a45950d27fd08ca17ec735fe3687
1521
1520
2023-04-08T19:21:38Z
Arno11
61
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster:
250-500-600-720-850MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 800MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Social messaging ===
Conversations app is compatible with libpurple and irc/bitlbee server.
Twitter, Signal, Telegram, FB Messenger and others are working.
(most audio and video links are playable)
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
First method:
To create a simple swap file if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
Second method:
To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024.
See Get Started Wiki.
=== Web browsing ===
Opera Mini 8 is a temporary solution.
To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar)
Then from microemulator directory run:
<pre>java -jar microemulator-2.0.4.jar</pre>
On the main screen: / File / Open Midlet File and choose your Opera Mini jar file
Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen)
Once loaded and installed, click on resize button to fit to N900 screen.
(Be patient, first loading and settings are slow)
=== Retroarch ===
'''First thing to do:'''
Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre>
menu_driver = "glui"
menu_show_core_updater = "true"
video_driver = "gl"
video_vsync = "true"
menu_unified_control = "true"
menu_core_enable = "true"
quick_menu_show_options = "true"
'''Some emulators are working well:
'''
- QuickNES (NES/Famicom)
- Snes9x 2005 (SNES/Super Famicom)
Others at 70-80% speed:
- Genesis Plus GX (SEGA MS/GG/MD/CD)
Go to Online Updater / Core Updater to download emulators
'''Retroarch recommended settings:'''
To avoid crashes, use only "glui" Menu Driver
'''Driver'''
Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null"
'''Video'''
Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no",
'''Audio'''
Audio Enable "no"
'''Input''' (very important)
Unified Menu Controls "yes"
Input User 1 Binds (keyboard settings)
'''Directory''' (very important)
Core "/home/user"
'''Default keyboard keys'''
'''X''' validate/ok
'''C''' cancel/back
'''F''' fullscreen (never close Retroarch in fullscreen mode)
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.20 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Conversations UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
d7c42e14f4a7cbb98706ea752b93706abbd3894d
1522
1521
2023-04-08T19:29:20Z
Arno11
61
/* Overclocking */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster:
250-500-600-720-850MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Social messaging ===
Conversations app is compatible with libpurple and irc/bitlbee server.
Twitter, Signal, Telegram, FB Messenger and others are working.
(most audio and video links are playable)
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
First method:
To create a simple swap file if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
Second method:
To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024.
See Get Started Wiki.
=== Web browsing ===
Opera Mini 8 is a temporary solution.
To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar)
Then from microemulator directory run:
<pre>java -jar microemulator-2.0.4.jar</pre>
On the main screen: / File / Open Midlet File and choose your Opera Mini jar file
Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen)
Once loaded and installed, click on resize button to fit to N900 screen.
(Be patient, first loading and settings are slow)
=== Retroarch ===
'''First thing to do:'''
Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre>
menu_driver = "glui"
menu_show_core_updater = "true"
video_driver = "gl"
video_vsync = "true"
menu_unified_control = "true"
menu_core_enable = "true"
quick_menu_show_options = "true"
'''Some emulators are working well:
'''
- QuickNES (NES/Famicom)
- Snes9x 2005 (SNES/Super Famicom)
Others at 70-80% speed:
- Genesis Plus GX (SEGA MS/GG/MD/CD)
Go to Online Updater / Core Updater to download emulators
'''Retroarch recommended settings:'''
To avoid crashes, use only "glui" Menu Driver
'''Driver'''
Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null"
'''Video'''
Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no",
'''Audio'''
Audio Enable "no"
'''Input''' (very important)
Unified Menu Controls "yes"
Input User 1 Binds (keyboard settings)
'''Directory''' (very important)
Core "/home/user"
'''Default keyboard keys'''
'''X''' validate/ok
'''C''' cancel/back
'''F''' fullscreen (never close Retroarch in fullscreen mode)
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.20 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Conversations UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
53a7d21e4e5cd2e92b2dd4de4c0771bb7fe577d4
1523
1522
2023-04-09T08:36:28Z
Arno11
61
/* Power Management */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 40mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster:
250-500-600-720-850MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Social messaging ===
Conversations app is compatible with libpurple and irc/bitlbee server.
Twitter, Signal, Telegram, FB Messenger and others are working.
(most audio and video links are playable)
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
First method:
To create a simple swap file if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
Second method:
To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024.
See Get Started Wiki.
=== Web browsing ===
Opera Mini 8 is a temporary solution.
To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar)
Then from microemulator directory run:
<pre>java -jar microemulator-2.0.4.jar</pre>
On the main screen: / File / Open Midlet File and choose your Opera Mini jar file
Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen)
Once loaded and installed, click on resize button to fit to N900 screen.
(Be patient, first loading and settings are slow)
=== Retroarch ===
'''First thing to do:'''
Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre>
menu_driver = "glui"
menu_show_core_updater = "true"
video_driver = "gl"
video_vsync = "true"
menu_unified_control = "true"
menu_core_enable = "true"
quick_menu_show_options = "true"
'''Some emulators are working well:
'''
- QuickNES (NES/Famicom)
- Snes9x 2005 (SNES/Super Famicom)
Others at 70-80% speed:
- Genesis Plus GX (SEGA MS/GG/MD/CD)
Go to Online Updater / Core Updater to download emulators
'''Retroarch recommended settings:'''
To avoid crashes, use only "glui" Menu Driver
'''Driver'''
Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null"
'''Video'''
Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no",
'''Audio'''
Audio Enable "no"
'''Input''' (very important)
Unified Menu Controls "yes"
Input User 1 Binds (keyboard settings)
'''Directory''' (very important)
Core "/home/user"
'''Default keyboard keys'''
'''X''' validate/ok
'''C''' cancel/back
'''F''' fullscreen (never close Retroarch in fullscreen mode)
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.20 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Conversations UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
8250ed5fc929d31d8034a9a7600e772617ba8edc
1524
1523
2023-04-09T08:39:22Z
Arno11
61
/* Power Management */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster:
250-500-600-720-850MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Social messaging ===
Conversations app is compatible with libpurple and irc/bitlbee server.
Twitter, Signal, Telegram, FB Messenger and others are working.
(most audio and video links are playable)
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
First method:
To create a simple swap file if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
Second method:
To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024.
See Get Started Wiki.
=== Web browsing ===
Opera Mini 8 is a temporary solution.
To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar)
Then from microemulator directory run:
<pre>java -jar microemulator-2.0.4.jar</pre>
On the main screen: / File / Open Midlet File and choose your Opera Mini jar file
Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen)
Once loaded and installed, click on resize button to fit to N900 screen.
(Be patient, first loading and settings are slow)
=== Retroarch ===
'''First thing to do:'''
Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre>
menu_driver = "glui"
menu_show_core_updater = "true"
video_driver = "gl"
video_vsync = "true"
menu_unified_control = "true"
menu_core_enable = "true"
quick_menu_show_options = "true"
'''Some emulators are working well:
'''
- QuickNES (NES/Famicom)
- Snes9x 2005 (SNES/Super Famicom)
Others at 70-80% speed:
- Genesis Plus GX (SEGA MS/GG/MD/CD)
Go to Online Updater / Core Updater to download emulators
'''Retroarch recommended settings:'''
To avoid crashes, use only "glui" Menu Driver
'''Driver'''
Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null"
'''Video'''
Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no",
'''Audio'''
Audio Enable "no"
'''Input''' (very important)
Unified Menu Controls "yes"
Input User 1 Binds (keyboard settings)
'''Directory''' (very important)
Core "/home/user"
'''Default keyboard keys'''
'''X''' validate/ok
'''C''' cancel/back
'''F''' fullscreen (never close Retroarch in fullscreen mode)
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.20 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Conversations UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes ||
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
fb7c0f72f31c67b6aeb877b49e3f272028a6b7da
1525
1524
2023-04-10T21:34:08Z
Sicelo
5
/* Status table */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster:
250-500-600-720-850MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Social messaging ===
Conversations app is compatible with libpurple and irc/bitlbee server.
Twitter, Signal, Telegram, FB Messenger and others are working.
(most audio and video links are playable)
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
First method:
To create a simple swap file if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
Second method:
To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024.
See Get Started Wiki.
=== Web browsing ===
Opera Mini 8 is a temporary solution.
To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar)
Then from microemulator directory run:
<pre>java -jar microemulator-2.0.4.jar</pre>
On the main screen: / File / Open Midlet File and choose your Opera Mini jar file
Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen)
Once loaded and installed, click on resize button to fit to N900 screen.
(Be patient, first loading and settings are slow)
=== Retroarch ===
'''First thing to do:'''
Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre>
menu_driver = "glui"
menu_show_core_updater = "true"
video_driver = "gl"
video_vsync = "true"
menu_unified_control = "true"
menu_core_enable = "true"
quick_menu_show_options = "true"
'''Some emulators are working well:
'''
- QuickNES (NES/Famicom)
- Snes9x 2005 (SNES/Super Famicom)
Others at 70-80% speed:
- Genesis Plus GX (SEGA MS/GG/MD/CD)
Go to Online Updater / Core Updater to download emulators
'''Retroarch recommended settings:'''
To avoid crashes, use only "glui" Menu Driver
'''Driver'''
Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null"
'''Video'''
Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no",
'''Audio'''
Audio Enable "no"
'''Input''' (very important)
Unified Menu Controls "yes"
Input User 1 Binds (keyboard settings)
'''Directory''' (very important)
Core "/home/user"
'''Default keyboard keys'''
'''X''' validate/ok
'''C''' cancel/back
'''F''' fullscreen (never close Retroarch in fullscreen mode)
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.20 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Conversations UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes || Not really used in Leste at the moment, since UI rotation does not work
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
1ff55aff1431c6553ad25b8249fb677031433602
1527
1525
2023-04-22T01:36:01Z
Astra
64
Add info about having the keyboard slide open to select the U-boot option
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster:
250-500-600-720-850MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Social messaging ===
Conversations app is compatible with libpurple and irc/bitlbee server.
Twitter, Signal, Telegram, FB Messenger and others are working.
(most audio and video links are playable)
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
First method:
To create a simple swap file if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
Second method:
To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024.
See Get Started Wiki.
=== Web browsing ===
Opera Mini 8 is a temporary solution.
To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar)
Then from microemulator directory run:
<pre>java -jar microemulator-2.0.4.jar</pre>
On the main screen: / File / Open Midlet File and choose your Opera Mini jar file
Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen)
Once loaded and installed, click on resize button to fit to N900 screen.
(Be patient, first loading and settings are slow)
=== Retroarch ===
'''First thing to do:'''
Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre>
menu_driver = "glui"
menu_show_core_updater = "true"
video_driver = "gl"
video_vsync = "true"
menu_unified_control = "true"
menu_core_enable = "true"
quick_menu_show_options = "true"
'''Some emulators are working well:
'''
- QuickNES (NES/Famicom)
- Snes9x 2005 (SNES/Super Famicom)
Others at 70-80% speed:
- Genesis Plus GX (SEGA MS/GG/MD/CD)
Go to Online Updater / Core Updater to download emulators
'''Retroarch recommended settings:'''
To avoid crashes, use only "glui" Menu Driver
'''Driver'''
Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null"
'''Video'''
Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no",
'''Audio'''
Audio Enable "no"
'''Input''' (very important)
Unified Menu Controls "yes"
Input User 1 Binds (keyboard settings)
'''Directory''' (very important)
Core "/home/user"
'''Default keyboard keys'''
'''X''' validate/ok
'''C''' cancel/back
'''F''' fullscreen (never close Retroarch in fullscreen mode)
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.20 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Conversations UI
|-
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes || Not really used in Leste at the moment, since UI rotation does not work
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
d5748dd27709f299462e958e74ce220395027e80
1528
1527
2023-05-06T12:12:48Z
Arno11
61
/* Status table */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster:
250-500-600-720-850MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Social messaging ===
Conversations app is compatible with libpurple and irc/bitlbee server.
Twitter, Signal, Telegram, FB Messenger and others are working.
(most audio and video links are playable)
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
First method:
To create a simple swap file if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
Second method:
To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024.
See Get Started Wiki.
=== Web browsing ===
Opera Mini 8 is a temporary solution.
To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar)
Then from microemulator directory run:
<pre>java -jar microemulator-2.0.4.jar</pre>
On the main screen: / File / Open Midlet File and choose your Opera Mini jar file
Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen)
Once loaded and installed, click on resize button to fit to N900 screen.
(Be patient, first loading and settings are slow)
=== Retroarch ===
'''First thing to do:'''
Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre>
menu_driver = "glui"
menu_show_core_updater = "true"
video_driver = "gl"
video_vsync = "true"
menu_unified_control = "true"
menu_core_enable = "true"
quick_menu_show_options = "true"
'''Some emulators are working well:
'''
- QuickNES (NES/Famicom)
- Snes9x 2005 (SNES/Super Famicom)
Others at 70-80% speed:
- Genesis Plus GX (SEGA MS/GG/MD/CD)
Go to Online Updater / Core Updater to download emulators
'''Retroarch recommended settings:'''
To avoid crashes, use only "glui" Menu Driver
'''Driver'''
Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null"
'''Video'''
Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no",
'''Audio'''
Audio Enable "no"
'''Input''' (very important)
Unified Menu Controls "yes"
Input User 1 Binds (keyboard settings)
'''Directory''' (very important)
Core "/home/user"
'''Default keyboard keys'''
'''X''' validate/ok
'''C''' cancel/back
'''F''' fullscreen (never close Retroarch in fullscreen mode)
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.2 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Conversations UI
|-
| Phone calls || WIP || Works with sphone, might require pulseaudio audio filters and UCM files
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes || Not really used in Leste at the moment, since UI rotation does not work
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
5d90e264a5c89d79c6cc6fe96781de8910528567
1529
1528
2023-05-06T12:24:51Z
Arno11
61
/* Overclocking */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster:
250-500-600-720-850MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New UimageX must be created again and old UimageX must be removed))
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Social messaging ===
Conversations app is compatible with libpurple and irc/bitlbee server.
Twitter, Signal, Telegram, FB Messenger and others are working.
(most audio and video links are playable)
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
First method:
To create a simple swap file if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
Second method:
To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024.
See Get Started Wiki.
=== Web browsing ===
Opera Mini 8 is a temporary solution.
To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar)
Then from microemulator directory run:
<pre>java -jar microemulator-2.0.4.jar</pre>
On the main screen: / File / Open Midlet File and choose your Opera Mini jar file
Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen)
Once loaded and installed, click on resize button to fit to N900 screen.
(Be patient, first loading and settings are slow)
=== Retroarch ===
'''First thing to do:'''
Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre>
menu_driver = "glui"
menu_show_core_updater = "true"
video_driver = "gl"
video_vsync = "true"
menu_unified_control = "true"
menu_core_enable = "true"
quick_menu_show_options = "true"
'''Some emulators are working well:
'''
- QuickNES (NES/Famicom)
- Snes9x 2005 (SNES/Super Famicom)
Others at 70-80% speed:
- Genesis Plus GX (SEGA MS/GG/MD/CD)
Go to Online Updater / Core Updater to download emulators
'''Retroarch recommended settings:'''
To avoid crashes, use only "glui" Menu Driver
'''Driver'''
Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null"
'''Video'''
Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no",
'''Audio'''
Audio Enable "no"
'''Input''' (very important)
Unified Menu Controls "yes"
Input User 1 Binds (keyboard settings)
'''Directory''' (very important)
Core "/home/user"
'''Default keyboard keys'''
'''X''' validate/ok
'''C''' cancel/back
'''F''' fullscreen (never close Retroarch in fullscreen mode)
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.2 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Conversations UI
|-
| Phone calls || WIP || Works with sphone, might require pulseaudio audio filters and UCM files
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes || Not really used in Leste at the moment, since UI rotation does not work
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
bb3661ffcd79477d58e8be68309b4c935ab8bf41
1530
1529
2023-05-06T12:27:03Z
Arno11
61
/* Status table */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster:
250-500-600-720-850MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New UimageX must be created again and old UimageX must be removed))
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Social messaging ===
Conversations app is compatible with libpurple and irc/bitlbee server.
Twitter, Signal, Telegram, FB Messenger and others are working.
(most audio and video links are playable)
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
First method:
To create a simple swap file if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
Second method:
To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024.
See Get Started Wiki.
=== Web browsing ===
Opera Mini 8 is a temporary solution.
To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar)
Then from microemulator directory run:
<pre>java -jar microemulator-2.0.4.jar</pre>
On the main screen: / File / Open Midlet File and choose your Opera Mini jar file
Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen)
Once loaded and installed, click on resize button to fit to N900 screen.
(Be patient, first loading and settings are slow)
=== Retroarch ===
'''First thing to do:'''
Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre>
menu_driver = "glui"
menu_show_core_updater = "true"
video_driver = "gl"
video_vsync = "true"
menu_unified_control = "true"
menu_core_enable = "true"
quick_menu_show_options = "true"
'''Some emulators are working well:
'''
- QuickNES (NES/Famicom)
- Snes9x 2005 (SNES/Super Famicom)
Others at 70-80% speed:
- Genesis Plus GX (SEGA MS/GG/MD/CD)
Go to Online Updater / Core Updater to download emulators
'''Retroarch recommended settings:'''
To avoid crashes, use only "glui" Menu Driver
'''Driver'''
Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null"
'''Video'''
Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no",
'''Audio'''
Audio Enable "no"
'''Input''' (very important)
Unified Menu Controls "yes"
Input User 1 Binds (keyboard settings)
'''Directory''' (very important)
Core "/home/user"
'''Default keyboard keys'''
'''X''' validate/ok
'''C''' cancel/back
'''F''' fullscreen (never close Retroarch in fullscreen mode)
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.2 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Conversations UI
|-
| Phone calls || WIP || Works with sphone and cmtspeech, might require pulseaudio audio filters and UCM support
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes || Not really used in Leste at the moment, since UI rotation does not work
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
46d8afe46ee8d3e5a441190676b3d93472b5b433
1531
1530
2023-05-06T12:55:06Z
Arno11
61
/* Status table */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, no ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster:
250-500-600-720-850MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New UimageX must be created again and old UimageX must be removed))
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Social messaging ===
Conversations app is compatible with libpurple and irc/bitlbee server.
Twitter, Signal, Telegram, FB Messenger and others are working.
(most audio and video links are playable)
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
First method:
To create a simple swap file if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
Second method:
To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024.
See Get Started Wiki.
=== Web browsing ===
Opera Mini 8 is a temporary solution.
To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar)
Then from microemulator directory run:
<pre>java -jar microemulator-2.0.4.jar</pre>
On the main screen: / File / Open Midlet File and choose your Opera Mini jar file
Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen)
Once loaded and installed, click on resize button to fit to N900 screen.
(Be patient, first loading and settings are slow)
=== Retroarch ===
'''First thing to do:'''
Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre>
menu_driver = "glui"
menu_show_core_updater = "true"
video_driver = "gl"
video_vsync = "true"
menu_unified_control = "true"
menu_core_enable = "true"
quick_menu_show_options = "true"
'''Some emulators are working well:
'''
- QuickNES (NES/Famicom)
- Snes9x 2005 (SNES/Super Famicom)
Others at 70-80% speed:
- Genesis Plus GX (SEGA MS/GG/MD/CD)
Go to Online Updater / Core Updater to download emulators
'''Retroarch recommended settings:'''
To avoid crashes, use only "glui" Menu Driver
'''Driver'''
Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null"
'''Video'''
Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no",
'''Audio'''
Audio Enable "no"
'''Input''' (very important)
Unified Menu Controls "yes"
Input User 1 Binds (keyboard settings)
'''Directory''' (very important)
Core "/home/user"
'''Default keyboard keys'''
'''X''' validate/ok
'''C''' cancel/back
'''F''' fullscreen (never close Retroarch in fullscreen mode)
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.20 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support
|-
| 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Conversations UI
|-
| Phone calls || WIP || Works with sphone and cmtspeech, might require pulseaudio audio filters and UCM support
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes || Not really used in Leste at the moment, since UI rotation does not work
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
278b835808e7cee961687cd9a4038de1058027aa
1537
1531
2023-06-16T21:15:36Z
Arno11
61
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster:
250-500-600-720-850MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New UimageX must be created again and old UimageX must be removed))
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Social messaging ===
Conversations app is compatible with libpurple and irc/bitlbee server.
Twitter, Signal, Telegram, FB Messenger and others are working.
(most audio and video links are playable)
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
First method:
To create a simple swap file if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
Second method:
To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024.
See Get Started Wiki.
=== Web browsing ===
Opera Mini 8 is a temporary solution.
To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar)
Then from microemulator directory run:
<pre>java -jar microemulator-2.0.4.jar</pre>
On the main screen: / File / Open Midlet File and choose your Opera Mini jar file
Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen)
Once loaded and installed, click on resize button to fit to N900 screen.
(Be patient, first loading and settings are slow)
=== Retroarch ===
'''First thing to do:'''
Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre>
menu_driver = "glui"
menu_show_core_updater = "true"
video_driver = "gl"
video_vsync = "true"
menu_unified_control = "true"
menu_core_enable = "true"
quick_menu_show_options = "true"
'''Some emulators are working well:
'''
- QuickNES (NES/Famicom)
- Snes9x 2005 (SNES/Super Famicom)
Others at 70-80% speed:
- Genesis Plus GX (SEGA MS/GG/MD/CD)
Go to Online Updater / Core Updater to download emulators
'''Retroarch recommended settings:'''
To avoid crashes, use only "glui" Menu Driver
'''Driver'''
Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null"
'''Video'''
Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no",
'''Audio'''
Audio Enable "no"
'''Input''' (very important)
Unified Menu Controls "yes"
Input User 1 Binds (keyboard settings)
'''Directory''' (very important)
Core "/home/user"
'''Default keyboard keys'''
'''X''' validate/ok
'''C''' cancel/back
'''F''' fullscreen (never close Retroarch in fullscreen mode)
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.30 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration || UCM support with Jack plug/unplug detection
|-
| 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Conversations UI
|-
| Phone calls || WIP || Works with sphone and cmtspeech, might require pulseaudio audio filters || UCM support
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes || Not really used in Leste at the moment, since UI rotation does not work
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
3c23f3ceb05d9e8d1ec08ba4ccc807d813dd2baa
1538
1537
2023-06-16T21:19:43Z
Arno11
61
/* Status table */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster:
250-500-600-720-850MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New UimageX must be created again and old UimageX must be removed))
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Social messaging ===
Conversations app is compatible with libpurple and irc/bitlbee server.
Twitter, Signal, Telegram, FB Messenger and others are working.
(most audio and video links are playable)
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
First method:
To create a simple swap file if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
Second method:
To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024.
See Get Started Wiki.
=== Web browsing ===
Opera Mini 8 is a temporary solution.
To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar)
Then from microemulator directory run:
<pre>java -jar microemulator-2.0.4.jar</pre>
On the main screen: / File / Open Midlet File and choose your Opera Mini jar file
Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen)
Once loaded and installed, click on resize button to fit to N900 screen.
(Be patient, first loading and settings are slow)
=== Retroarch ===
'''First thing to do:'''
Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre>
menu_driver = "glui"
menu_show_core_updater = "true"
video_driver = "gl"
video_vsync = "true"
menu_unified_control = "true"
menu_core_enable = "true"
quick_menu_show_options = "true"
'''Some emulators are working well:
'''
- QuickNES (NES/Famicom)
- Snes9x 2005 (SNES/Super Famicom)
Others at 70-80% speed:
- Genesis Plus GX (SEGA MS/GG/MD/CD)
Go to Online Updater / Core Updater to download emulators
'''Retroarch recommended settings:'''
To avoid crashes, use only "glui" Menu Driver
'''Driver'''
Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null"
'''Video'''
Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no",
'''Audio'''
Audio Enable "no"
'''Input''' (very important)
Unified Menu Controls "yes"
Input User 1 Binds (keyboard settings)
'''Directory''' (very important)
Core "/home/user"
'''Default keyboard keys'''
'''X''' validate/ok
'''C''' cancel/back
'''F''' fullscreen (never close Retroarch in fullscreen mode)
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.30 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration, UCM support with Jack plug/unplug detection
|-
| 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Conversations UI
|-
| Phone calls || WIP || Works with sphone and cmtspeech, might require pulseaudio audio filters, UCM support
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes || Not really used in Leste at the moment, since UI rotation does not work
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
b8dd5d3b616b8a6f3c7d0ab8ccac45df3b7e25d0
1541
1538
2023-06-30T12:55:32Z
Arno11
61
/* Web browsing */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster:
250-500-600-720-850MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New UimageX must be created again and old UimageX must be removed))
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Social messaging ===
Conversations app is compatible with libpurple and irc/bitlbee server.
Twitter, Signal, Telegram, FB Messenger and others are working.
(most audio and video links are playable)
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
First method:
To create a simple swap file if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
Second method:
To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024.
See Get Started Wiki.
=== Web browsing ===
Links2 is currently the faster and the most usable web browser on N900 -using few tweaks-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <pre>Ctl + Maj + N</pre> to disable Hildon composition -links2 performances will increase a lot-
Press <pre>Ctl + Maj + N</pre> if you want to enable Hildon composition again.
=== Retroarch ===
'''First thing to do:'''
Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre>
menu_driver = "glui"
menu_show_core_updater = "true"
video_driver = "gl"
video_vsync = "true"
menu_unified_control = "true"
menu_core_enable = "true"
quick_menu_show_options = "true"
'''Some emulators are working well:
'''
- QuickNES (NES/Famicom)
- Snes9x 2005 (SNES/Super Famicom)
Others at 70-80% speed:
- Genesis Plus GX (SEGA MS/GG/MD/CD)
Go to Online Updater / Core Updater to download emulators
'''Retroarch recommended settings:'''
To avoid crashes, use only "glui" Menu Driver
'''Driver'''
Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null"
'''Video'''
Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no",
'''Audio'''
Audio Enable "no"
'''Input''' (very important)
Unified Menu Controls "yes"
Input User 1 Binds (keyboard settings)
'''Directory''' (very important)
Core "/home/user"
'''Default keyboard keys'''
'''X''' validate/ok
'''C''' cancel/back
'''F''' fullscreen (never close Retroarch in fullscreen mode)
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.30 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration, UCM support with Jack plug/unplug detection
|-
| 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Conversations UI
|-
| Phone calls || WIP || Works with sphone and cmtspeech, might require pulseaudio audio filters, UCM support
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes || Not really used in Leste at the moment, since UI rotation does not work
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
975d6969abf73b7fbc4338e02bf3682923720f95
1542
1541
2023-06-30T12:56:13Z
Arno11
61
/* Retroarch */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster:
250-500-600-720-850MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New UimageX must be created again and old UimageX must be removed))
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Social messaging ===
Conversations app is compatible with libpurple and irc/bitlbee server.
Twitter, Signal, Telegram, FB Messenger and others are working.
(most audio and video links are playable)
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
First method:
To create a simple swap file if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
Second method:
To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024.
See Get Started Wiki.
=== Web browsing ===
Links2 is currently the faster and the most usable web browser on N900 -using few tweaks-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <pre>Ctl + Maj + N</pre> to disable Hildon composition -links2 performances will increase a lot-
Press <pre>Ctl + Maj + N</pre> if you want to enable Hildon composition again.
=== Retroarch ===
'''First things to do:'''
Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre>
menu_driver = "glui"
menu_show_core_updater = "true"
video_driver = "gl"
video_vsync = "true"
menu_unified_control = "true"
menu_core_enable = "true"
quick_menu_show_options = "true"
'''Some emulators are working well:
'''
- QuickNES (NES/Famicom)
- Snes9x 2005 (SNES/Super Famicom)
Others at 70-80% speed:
- Genesis Plus GX (SEGA MS/GG/MD/CD)
Go to Online Updater / Core Updater to download emulators
'''Retroarch recommended settings:'''
To avoid crashes, use only "glui" Menu Driver
'''Driver'''
Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null"
'''Video'''
Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no",
'''Audio'''
Audio Enable "no"
'''Input''' (very important)
Unified Menu Controls "yes"
Input User 1 Binds (keyboard settings)
'''Directory''' (very important)
Core "/home/user"
'''Default keyboard keys'''
'''X''' validate/ok
'''C''' cancel/back
'''F''' fullscreen (never close Retroarch in fullscreen mode)
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.30 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration, UCM support with Jack plug/unplug detection
|-
| 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Conversations UI
|-
| Phone calls || WIP || Works with sphone and cmtspeech, might require pulseaudio audio filters, UCM support
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes || Not really used in Leste at the moment, since UI rotation does not work
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
42d01776837c7a944d0d88d33b9c55bc1c53c92d
1543
1542
2023-06-30T12:58:13Z
Arno11
61
/* Status table */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster:
250-500-600-720-850MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New UimageX must be created again and old UimageX must be removed))
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Social messaging ===
Conversations app is compatible with libpurple and irc/bitlbee server.
Twitter, Signal, Telegram, FB Messenger and others are working.
(most audio and video links are playable)
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
First method:
To create a simple swap file if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
Second method:
To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024.
See Get Started Wiki.
=== Web browsing ===
Links2 is currently the faster and the most usable web browser on N900 -using few tweaks-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <pre>Ctl + Maj + N</pre> to disable Hildon composition -links2 performances will increase a lot-
Press <pre>Ctl + Maj + N</pre> if you want to enable Hildon composition again.
=== Retroarch ===
'''First things to do:'''
Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre>
menu_driver = "glui"
menu_show_core_updater = "true"
video_driver = "gl"
video_vsync = "true"
menu_unified_control = "true"
menu_core_enable = "true"
quick_menu_show_options = "true"
'''Some emulators are working well:
'''
- QuickNES (NES/Famicom)
- Snes9x 2005 (SNES/Super Famicom)
Others at 70-80% speed:
- Genesis Plus GX (SEGA MS/GG/MD/CD)
Go to Online Updater / Core Updater to download emulators
'''Retroarch recommended settings:'''
To avoid crashes, use only "glui" Menu Driver
'''Driver'''
Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null"
'''Video'''
Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no",
'''Audio'''
Audio Enable "no"
'''Input''' (very important)
Unified Menu Controls "yes"
Input User 1 Binds (keyboard settings)
'''Directory''' (very important)
Core "/home/user"
'''Default keyboard keys'''
'''X''' validate/ok
'''C''' cancel/back
'''F''' fullscreen (never close Retroarch in fullscreen mode)
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.30 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Conversations UI
|-
| Phone calls || WIP || Works with sphone and cmtspeech, might require pulseaudio audio filters, UCM support
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes || Not really used in Leste at the moment, since UI rotation does not work
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
95b0e72146211a3ba5d06ff20c9f2d2070522556
1544
1543
2023-06-30T13:02:59Z
Arno11
61
/* Web browsing */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster:
250-500-600-720-850MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New UimageX must be created again and old UimageX must be removed))
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Social messaging ===
Conversations app is compatible with libpurple and irc/bitlbee server.
Twitter, Signal, Telegram, FB Messenger and others are working.
(most audio and video links are playable)
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
First method:
To create a simple swap file if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
Second method:
To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024.
See Get Started Wiki.
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using few tweaks-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <pre>Ctl + Maj + N</pre> to disable Hildon composition -links2 performances will increase a lot-
Press <pre>Ctl + Maj + N</pre> if you want to enable Hildon composition again.
=== Retroarch ===
'''First things to do:'''
Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre>
menu_driver = "glui"
menu_show_core_updater = "true"
video_driver = "gl"
video_vsync = "true"
menu_unified_control = "true"
menu_core_enable = "true"
quick_menu_show_options = "true"
'''Some emulators are working well:
'''
- QuickNES (NES/Famicom)
- Snes9x 2005 (SNES/Super Famicom)
Others at 70-80% speed:
- Genesis Plus GX (SEGA MS/GG/MD/CD)
Go to Online Updater / Core Updater to download emulators
'''Retroarch recommended settings:'''
To avoid crashes, use only "glui" Menu Driver
'''Driver'''
Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null"
'''Video'''
Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no",
'''Audio'''
Audio Enable "no"
'''Input''' (very important)
Unified Menu Controls "yes"
Input User 1 Binds (keyboard settings)
'''Directory''' (very important)
Core "/home/user"
'''Default keyboard keys'''
'''X''' validate/ok
'''C''' cancel/back
'''F''' fullscreen (never close Retroarch in fullscreen mode)
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.30 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Conversations UI
|-
| Phone calls || WIP || Works with sphone and cmtspeech, might require pulseaudio audio filters, UCM support
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes || Not really used in Leste at the moment, since UI rotation does not work
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
a98060b67858ec7b7d0368f3240d634c0ab20dd1
1545
1544
2023-06-30T13:08:35Z
Arno11
61
/* Web browsing */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster:
250-500-600-720-850MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 5-18.9, your vmlinuz version is vmlinuz-5.18.9
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-5.18.9)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New UimageX must be created again and old UimageX must be removed))
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Social messaging ===
Conversations app is compatible with libpurple and irc/bitlbee server.
Twitter, Signal, Telegram, FB Messenger and others are working.
(most audio and video links are playable)
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
First method:
To create a simple swap file if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
Second method:
To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024.
See Get Started Wiki.
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using few tweaks-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Maj + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Maj + N</code> if you want to enable Hildon composition again.
=== Retroarch ===
'''First things to do:'''
Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre>
menu_driver = "glui"
menu_show_core_updater = "true"
video_driver = "gl"
video_vsync = "true"
menu_unified_control = "true"
menu_core_enable = "true"
quick_menu_show_options = "true"
'''Some emulators are working well:
'''
- QuickNES (NES/Famicom)
- Snes9x 2005 (SNES/Super Famicom)
Others at 70-80% speed:
- Genesis Plus GX (SEGA MS/GG/MD/CD)
Go to Online Updater / Core Updater to download emulators
'''Retroarch recommended settings:'''
To avoid crashes, use only "glui" Menu Driver
'''Driver'''
Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null"
'''Video'''
Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no",
'''Audio'''
Audio Enable "no"
'''Input''' (very important)
Unified Menu Controls "yes"
Input User 1 Binds (keyboard settings)
'''Directory''' (very important)
Core "/home/user"
'''Default keyboard keys'''
'''X''' validate/ok
'''C''' cancel/back
'''F''' fullscreen (never close Retroarch in fullscreen mode)
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.30 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Conversations UI
|-
| Phone calls || WIP || Works with sphone and cmtspeech, might require pulseaudio audio filters, UCM support
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes || Not really used in Leste at the moment, since UI rotation does not work
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
b5b9bc050011d3b13a25bb0d5bfae5b60d6576a8
Motorola Droid 4
0
50
1505
1368
2023-03-21T11:27:51Z
Pavel
9
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati XT894
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
|category=Supported
|sw_kernel=5.18.x
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Yes
|sw_usb_host=Yes
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=Yes
|sw_tv=
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=Yes
|sw_sms=Yes
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=Yes
|sw_4g=No
|sw_bluetooth=Yes, [[#Bluetooth|see notes]]
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=120mW
|sw_standbytime=
}}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
=== Updating Android ===
This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
=== Setting up kexecboot ===
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
=== Install Maemo Leste to the sdcard ===
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab the latest image from https://phoenix.maemo.org/view/Images/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
The keyboard layout is extended to provide more standard keys.
[[File:Maemo-leste-droid4-kbd-2021-07.png|center|620px|thumb|maemo-leste droid4 keyboard]]
Key mapping can be tested with the 'xev' program.
It may be necessary to run the follow commands as root in order to get the OK key to function correctly (see [https://github.com/maemo-leste/bugtracker/issues/510#issuecomment-815618591 here]):
udevadm hwdb --update
udevadm trigger
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Bluetooth ==
Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded. So you should do:
<pre>
sudo apt install firmware-ti-connectivity
sudo modprobe hci_uart
sudo hciconfig hci0 up
sudo hcitool lescan
</pre>
== Stuff to try ==
==== Using a battery without temperature sensor ====
Modprobe the pmic driver as follows:
<pre>
cpcap-battery ignore_temperature_probe=1
</pre>
==== Flashing the boot logo ====
More info: https://github.com/xsetiadi/droid4-kexecboot/blob/master/LOGO
<pre>
15:04 < tmlind> Wizzup: i think the logo on droid4 can be flashed with fastboot flash logo logo.bin or something, can also be just written to logo partition from m-l
[snip]
09:24 < xsetiadi> https://github.com/xsetiadi/droid4-kexecboot/blob/master/logo.bin
09:25 < xsetiadi> becarefull, you can bootloop droid4 if you wrong flash partition
09:26 < xsetiadi> like i do last year
09:26 < xsetiadi> instead of flashing using command: fastboot flash logo.bin logo.bin i just flash it with command: fastboot flash logo logo.bin
</pre>
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
==== HDMI ====
Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier.
<pre>
xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off
</pre>
Return to internal touchscreen display.
<pre>
xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off
</pre>
==== Keyboard / Mouse sharing with PC ====
To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4.
<pre>
[https://github.com/debauchee/barrier Barrier software-KVM switch]
</pre>
Developers and testers may wish to disable the googley bits before compiling.
==== BT Audio headset ====
sudo apt install pulseaudio-module-bluetooth blueman bluez
sudo modprobe hci_uart
pactl load-module module-bluetooth-discover
blueman-manager
Pair & trust your device in blueman, connect audiosink. You can close blueman now. The quality seems a bit better in 'offline mode'.
==== Torch ====
The Droid 4 has a TI LM3559 flash torch controller. This provides flash functionality when taking pictures, usage as a torch, and provides privacy indication (in this mode, the LED flashes in a fast heartbeat pattern). A driver for it exists in mainline, but it requires some DTS work, since it is tied to a camera device.
If you want to use it in the meantime, direct i2c access can be used as follows (since this is direct access, be careful about each of the commands below):
<source>
##Install the prerequisites
$ sudo apt install i2c-tools
## Turn LED on in torch mode
$ sudo i2cset -y 2 0x53 0x10 0x1a
## Turn LED on in privacy indication mode
$ sudo i2cset -y 2 0x53 0x10 0x19
## Turn LED off (in any mode)
$ sudo i2cset -y 2 0x53 0x10 0x18
## Use LED for doing a hella bright flash for some time once and then turn off
$ sudo i2cset -y 2 0x53 0x10 0x1b
</source>
== Using a configured Leste sdcard in a different Droid4 ==
A configured Droid4 Leste installation is unique to the device that it was calibrated on. Particularly the wlan firmware calibration will be incorrect if an existing Leste installation is transferred to a different device.
The wifi calibration script requires a system set to stock settings to calibrate-from. It cannot just be re-run on an already calibrated system.
To recalibrate the wifi firmware on a different Droid4, you must reset the FEM parameters to stock settings on the new device, then recalibrate.
If you can get the device online (usb networking or moving close to the WLAN AP) this can be done with.
apt reinstall firmware-ti-connectivity
If not, you can download the firmware-ti-connectivity_[version]_all.deb on another Leste device
apt download firmware-ti-connectivity
Then copy the .deb to your new device and install that (as root) with
dpkg -i firmware-ti-connectivity_[version]_all.deb
Then (as root) re-calibrate the wifi chip by running
/usr/bin/maserati-calibrate
Then reboot.
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
Cant_have_2_much_leste.jpg
Leste-neverball.jpg
Statsfun.jpg
Leste-glmatrix.png
Droid4-leste-utox2.jpg
Droid4-leste-pcsx.jpg
Droid4-leste-surf_master.jpg
Droid4_Daimonin_Hdmi.jpg
</gallery>
== Old status overview ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Implemented with Pulseaudio and UCM files
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || Yes || Available in /sys, and as input device via iio-uinput
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)
|-
| Gyro || N/A ||
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/
|-
| Idle power consumption || ~120mW || Needs sim inserted
|}
[[Category:Device]]
d516d4e7b298df27bb8cef51fd7006458a1be30b
1508
1505
2023-03-25T18:18:56Z
Wizzup
4
/* HDMI */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati XT894
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor
|other=
|category=Supported
|sw_kernel=5.18.x
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Yes
|sw_usb_host=Yes
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=Yes
|sw_tv=
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=Yes
|sw_sms=Yes
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=Yes
|sw_4g=No
|sw_bluetooth=Yes, [[#Bluetooth|see notes]]
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=120mW
|sw_standbytime=
}}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
=== Updating Android ===
This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
=== Setting up kexecboot ===
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
=== Install Maemo Leste to the sdcard ===
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab the latest image from https://phoenix.maemo.org/view/Images/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
The keyboard layout is extended to provide more standard keys.
[[File:Maemo-leste-droid4-kbd-2021-07.png|center|620px|thumb|maemo-leste droid4 keyboard]]
Key mapping can be tested with the 'xev' program.
It may be necessary to run the follow commands as root in order to get the OK key to function correctly (see [https://github.com/maemo-leste/bugtracker/issues/510#issuecomment-815618591 here]):
udevadm hwdb --update
udevadm trigger
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Bluetooth ==
Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded. So you should do:
<pre>
sudo apt install firmware-ti-connectivity
sudo modprobe hci_uart
sudo hciconfig hci0 up
sudo hcitool lescan
</pre>
== Stuff to try ==
==== Using a battery without temperature sensor ====
Modprobe the pmic driver as follows:
<pre>
cpcap-battery ignore_temperature_probe=1
</pre>
==== Flashing the boot logo ====
More info: https://github.com/xsetiadi/droid4-kexecboot/blob/master/LOGO
<pre>
15:04 < tmlind> Wizzup: i think the logo on droid4 can be flashed with fastboot flash logo logo.bin or something, can also be just written to logo partition from m-l
[snip]
09:24 < xsetiadi> https://github.com/xsetiadi/droid4-kexecboot/blob/master/logo.bin
09:25 < xsetiadi> becarefull, you can bootloop droid4 if you wrong flash partition
09:26 < xsetiadi> like i do last year
09:26 < xsetiadi> instead of flashing using command: fastboot flash logo.bin logo.bin i just flash it with command: fastboot flash logo logo.bin
</pre>
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
==== HDMI ====
Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier.
<pre>
xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off
</pre>
Return to internal touchscreen display.
<pre>
xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off
</pre>
If one wants to mirror the screen on HDMI, this can be done like so, for landscape:
<pre>
xrandr --newmode "960x540_60.00" 40.75 960 992 1088 1216 540 543 548 562 -hsync +vsync
xrandr --addmode HDMI-1 "960x540_60.00"
xrandr --output HDMI-1 --mode "960x540_60.00" --same-as DSI-1
</pre>
For rotation, something like this might or might not work:
<pre>
xrandr --newmode "960x540_60.00ROT" 43.00 544 576 632 720 960 963 973 996 -hsync +vsync
xrandr --addmode HDMI-1 "960x540_60.00ROT"
xrandr --output HDMI-1 --mode "960x540_60.00" --same-as DSI-1 --rotate right
</pre>
==== Keyboard / Mouse sharing with PC ====
To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4.
<pre>
[https://github.com/debauchee/barrier Barrier software-KVM switch]
</pre>
Developers and testers may wish to disable the googley bits before compiling.
==== BT Audio headset ====
sudo apt install pulseaudio-module-bluetooth blueman bluez
sudo modprobe hci_uart
pactl load-module module-bluetooth-discover
blueman-manager
Pair & trust your device in blueman, connect audiosink. You can close blueman now. The quality seems a bit better in 'offline mode'.
==== Torch ====
The Droid 4 has a TI LM3559 flash torch controller. This provides flash functionality when taking pictures, usage as a torch, and provides privacy indication (in this mode, the LED flashes in a fast heartbeat pattern). A driver for it exists in mainline, but it requires some DTS work, since it is tied to a camera device.
If you want to use it in the meantime, direct i2c access can be used as follows (since this is direct access, be careful about each of the commands below):
<source>
##Install the prerequisites
$ sudo apt install i2c-tools
## Turn LED on in torch mode
$ sudo i2cset -y 2 0x53 0x10 0x1a
## Turn LED on in privacy indication mode
$ sudo i2cset -y 2 0x53 0x10 0x19
## Turn LED off (in any mode)
$ sudo i2cset -y 2 0x53 0x10 0x18
## Use LED for doing a hella bright flash for some time once and then turn off
$ sudo i2cset -y 2 0x53 0x10 0x1b
</source>
== Using a configured Leste sdcard in a different Droid4 ==
A configured Droid4 Leste installation is unique to the device that it was calibrated on. Particularly the wlan firmware calibration will be incorrect if an existing Leste installation is transferred to a different device.
The wifi calibration script requires a system set to stock settings to calibrate-from. It cannot just be re-run on an already calibrated system.
To recalibrate the wifi firmware on a different Droid4, you must reset the FEM parameters to stock settings on the new device, then recalibrate.
If you can get the device online (usb networking or moving close to the WLAN AP) this can be done with.
apt reinstall firmware-ti-connectivity
If not, you can download the firmware-ti-connectivity_[version]_all.deb on another Leste device
apt download firmware-ti-connectivity
Then copy the .deb to your new device and install that (as root) with
dpkg -i firmware-ti-connectivity_[version]_all.deb
Then (as root) re-calibrate the wifi chip by running
/usr/bin/maserati-calibrate
Then reboot.
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
Cant_have_2_much_leste.jpg
Leste-neverball.jpg
Statsfun.jpg
Leste-glmatrix.png
Droid4-leste-utox2.jpg
Droid4-leste-pcsx.jpg
Droid4-leste-surf_master.jpg
Droid4_Daimonin_Hdmi.jpg
</gallery>
== Old status overview ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Implemented with Pulseaudio and UCM files
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || Yes || Available in /sys, and as input device via iio-uinput
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)
|-
| Gyro || N/A ||
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/
|-
| Idle power consumption || ~120mW || Needs sim inserted
|}
[[Category:Device]]
717bcc46c01d0014883ad4347a6310e83aa1b3e4
PinePhone
0
93
1526
1477
2023-04-20T11:37:13Z
Supositware
63
Working eMMC installations step
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro.
== Notes ==
Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project.
== Status ==
Currently, most things work, for example you can:
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
=== More Information ===
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to on. You can check by tapping the top left corner->"Settings"->"Text input"-> ensure the "Use virtual keyboard" option is checked. You may also want to change the keyboard layout by changing the dictionary settings.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* '''VoLTE should work out-of-the-box.''' If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
== Installation ==
Unlike most phones, it's pretty simple.
=== SD Card Installation ===
==== Prepare the SD card ====
Create a new msdos partition table using fdisk
$ sudo fdisk /dev/''SDCARD''
# press 'p' to view current table
# press 'o' to erase and make a new table
# press 'w' to write changes and quit
==== Write the image to an SD-Card. ====
Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here].
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE''
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE''
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
$ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56
Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image:
$ unxz maemo-leste-*-arm64-pinephone-*.img.xz
Write the image to microSD. '''''Be very careful with this step''''' to select the correct device.
$ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync
Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.
<small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one. You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small>
=== eMMC Installation ===
'''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''.
==== Preparing the .img file for eMMC boot ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, mount the image to a loop device.
$ sudo losetup -P /dev/loop0 maemo-leste-*-arm64-pinephone-*.img
Mount the second partition to /mnt and the first partition to /mnt/boot and enter /mnt:
$ sudo mount /dev/loop0p2 /mnt
$ sudo mount /dev/loop0p1 /mnt/boot
$ cd /mnt
Use the editor of your choice to edit <code>/mnt/etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Now we need to edit <code>boot.scr</code>. For that you will need to download <code>boot.txt</code> from Maemo Leste github:
$ cd /mnt/boot
$ sudo wget https://raw.githubusercontent.com/maemo-leste/pine64-uboot/master/boot.txt
Now we do the same step as we did for the fstab, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code> in <code>boot.txt</code>.
To regenerate <code>boot.scr</code> you need to install <code>u-boot-tools</code> first to be able to use mkimage.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave /mnt and unmount the partitions:
$ cd ~
$ sudo umount -R /mnt
We can now save the image we just modified using dd:
$ sudo dd if=/dev/loop0 of=maemo-leste-1.0-arm64-pinephone-EMMC.img
The image is now ready to be installed to the eMMC.
We can now remove the loop device we created earlier:
$ sudo losetup -d /dev/loop0
==== Install Using Tow-Boot ====
If you [https://tow-boot.org/devices/pine64-pinephoneA64.html flashed tow-boot to the PinePhone] the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode.
The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc.
==== Install Using JumpDrive ====
You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.
The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card.
[https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.]
==== Install from the booted microSD ====
# Flash Maemo Leste to the microSD card
# Insert microSD card and boot the phone
# Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download.
# Extract the image file so that it only ends in ".img"
# Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct.
# Turn off phone, remove microSD card and then turn on the phone.
== Post-Installation ==
=== How to take a picture ===
Maemo userland to take pictures or make videos is ready yet. The default camera app is pinhole: https://github.com/piggz/harbour-pinhole/
Both cameras (rear and front) are supported. Work in ongoing to improve the camera app.
To open the (pinhole) camera from the terminal:
$ harbour-pinhole
Or open it from Maemo desktop "Camera" icon.
In order to trigger auto-focus:
$ v4l2-ctl -d /dev/v4l-subdev1 -c focus_automatic_continuous=1
Or trigger autofocus using the commands to start and stop manually:
$ v4l2-ctl -d /dev/v4l-subdev1 -c auto_focus_start=1
then wait till it gets the focus where you want, then
$ v4l2-ctl -d /dev/v4l-subdev1 -c auto_focus_stop=1
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Other option is to use "cam" to capture to DNG. Example:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/frame-#.dng --capture=10
And then convert to .ppm (for .tiff use "-T" cmd line parameter). Eg:
$ dcraw frame-cam0-stream0-000001.dng
Also the graphical tool "qcam" is working! Run it with:
$ qcam -r gles -spixelformat=NV21,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
=== PinePhone Keyboard ===
First of all, make sure you have the latest firmware loaded in the keyboard (firmware is here: https://github.com/maemo-leste-upstream-forks/pinephone-keyboard/tree/master/firmware/build and userland here: https://github.com/maemo-leste-upstream-forks/pinephone-keyboard ):
$ ppkb-i2c-flasher -e i2c -i fw-user.bin write reset
Load the xkb layout ( available here: https://codeberg.org/phalio/ppkb-layouts/src/branch/main/xkb )
$ setxkbmap pp altgr
=== Suspend ===
Suspend can be triggered with:
$ echo mem > /sys/power/state
A temporary workaround for calling suspend from UI is here: https://github.com/rafael2k/maemo-suspend/
=== Volume Applet ===
Volume applet ( https://github.com/maemo-leste/maemo-statusmenu-volume ) needs a change in "sink_name" at "/usr/share/maemo-statusmenu-volume/sinks.ini". Edit the sinks.ini in order the sink_name is:
sink_name=alsa_output.0.HiFi__hw_PinePhone_0__sink
=== Installing apps ===
* Apps can be installed just as on any Devuan system with:
$ sudo apt install ''package-name''
* There is also the app store.
=== Launching apps ===
This works for any app. Say for instance, you want to run Iceweasel/Firefox:
* Launch apps from the desktop
* Launch apps from your console:
$ iceweasel &
* Install a universal app launcher that you can run from desktop:
$ sudo apt install desktop-cmd-exec
=== Make apps show up on desktop ===
Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples])
To view a list of currently installed apps, do:
$ sudo apt list --installed | less
This should help you figure out for which apps to configure .desktop icons. A benefit with all this is that you can decide which apps you want to show or hide.
=== Unhide the keyboard ===
The virtual keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar in a web browser like Firefox). This will be fixed in a future release (image tested: 20220731).
=== Note about Calculator ===
The default GUI calculator works (08/15/2022) but you won't see the numbers appear on screen until after you touch the next key. It should be used in landscape mode for best results, as there are additional display issues in portrait mode.
=== Time zone / World Clock ===
Currently (06/15/2022) the interface to the default GUI clock has a few bugs but the workaround is to:
* Go to Settings > Date and Time > and adjust time zone and date and time there. This also has some bugs, but only in portrait mode.
* Or just use the console:
$ sudo date -s HH:MM
$ sudo date -s YYYYMMDD
$ sudo ln -s /usr/share/zoneinfo/YOURREGION/YOURCITY /etc/localtime
=== More Tips & Tricks ===
Visit [https://leste.maemo.org/Tricks '''this page'''] for more general advice on customizing Maemo on your PinePhone.
[[Category:Device]]
dfe689a9ba8748f622b163cf72525e29d593ab86
Status
0
64
1532
1372
2023-05-11T08:13:16Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
For Device specific status pages, see See [[:Category:Device]]
The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device
{| class="wikitable"
! Feature
! Status
! Leste software
! Notes
|-
| Desktop environment || OK || hildon || hildon home, hildon desktop, .
|-
| [[Terminal]] || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] ||
|-
| [[Status/VirtualKeyboard|Virtual keyboard]] || WIP || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work fine for all devices, GTK2 only.
|-
| [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Works out of the box. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7
|-
| Bluetooth || WIP || Just works if supported in the kernel, but no Maemo UI available to configure it, blueman-manager can be used ||
|-
| [[Status/Browser|Browser]] || WIP || ? || qtwebbrowser works
|-
| [[Status/Audio|Audio]] || OK || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); will need to import alsa-policy-enforcement, port OHM
|-
| Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] ||
|-
| [[Status/USB Peripheral|USB Peripheral]] || OK || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv
|-
| LED control || OK || mce || Make sure the notifications are enabled in settings.
|-
| [[Status/Mobile Data|Mobile Data]] || OK || [https://github.com/maemo-leste/connui-cellular connui-cellular] [https://github.com/maemo-leste/libicd-network-ofono libicd-network-ofono] || There is basic libicd-network-ofono, connui-cellular is being ported to ofono, UI needs some more work, but mostly just works
|-
| [[Status/GPS|GPS]] || OK || gpsd, liblocation, location-daemon ||
|-
| [[Status/SMS|SMS]] || OK || sphone, conversations, ofono, telepathy-ring ? ||
|-
| [[Status/Phone Calls|Phone Calls]] || OK || sphone, ofono, telepathy-ring ? || Just works on most of the devices, except for the [https://github.com/maemo-leste/bugtracker/issues/77 n900]
|-
| [[Status/Application Manager|Application Manager]] || OK || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || Mostly works, but needs serious testing [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue]
|-
| [[Status/Media Player|Media Player]] || WIP || OMP (open media player) being ported, listening to radio streams works, local music/video coming || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue]
|-
| [[Status/PDF Viewer|PDF Viewer]] || Mostly works || osso-pdf-viewer || [https://github.com/maemo-leste/osso-pdf-viewer osso-pdf-viewer]
|-
| [[Status/Games|Games & Entertainment]] || OK || Works (available in [[Leste Extras]] || [https://github.com/maemo-leste/bugtracker/issues/18 sdl fullscreen] [https://github.com/maemo-leste/bugtracker/issues/238 game importing]
|-
| [[Status/Theming|Theming]] || OK || Works with themes (available in [[Leste Extras]] ||
|-
| [[Calendar|Calendar]] || OK || Qalendar UI, syncing works. (UI needs some scrolling work) ||
|-
| [[Qt|Qt]] || OK || Qt5 port mostly works || https://github.com/maemo-leste/qtstyleplugins/ + https://github.com/maemo-leste/qt-platform-maemo
|}
ae65cb2889d90213f90ec6d212bf793f5c587bf8
1533
1532
2023-05-11T08:16:31Z
Wizzup
4
wikitext
text/x-wiki
{{Stub}}
For Device specific status pages, see See [[:Category:Device]]
The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device
{| class="wikitable"
! Feature
! Status
! Leste software
! Notes
|-
| Desktop environment || OK || hildon || hildon home, hildon desktop, .
|-
| [[Terminal]] || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] ||
|-
| [[Status/VirtualKeyboard|Virtual keyboard]] || WIP || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work fine for all devices, GTK2 only.
|-
| [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Works out of the box. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7
|-
| Bluetooth || WIP || Just works if supported in the kernel, but no Maemo UI available to configure it, blueman-manager can be used ||
|-
| [[Status/Browser|Browser]] || WIP || ? || qtwebbrowser works
|-
| [[Status/Audio|Audio]] || OK || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); will need to import alsa-policy-enforcement, port OHM
|-
| Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] ||
|-
| [[Status/USB Peripheral|USB Peripheral]] || OK || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv
|-
| LED control || OK || mce || Make sure the notifications are enabled in settings.
|-
| [[Status/Mobile Data|Mobile Data]] || OK || [https://github.com/maemo-leste/connui-cellular connui-cellular] [https://github.com/maemo-leste/libicd-network-ofono libicd-network-ofono] || There is basic libicd-network-ofono, connui-cellular is being ported to ofono, UI needs some more work, but mostly just works
|-
| [[Status/GPS|GPS]] || OK || gpsd, liblocation, location-daemon ||
|-
| [[Status/SMS|SMS]] || OK || sphone, conversations, ofono, telepathy-ring ? ||
|-
| [[Status/Phone Calls|Phone Calls]] || OK || sphone, ofono, telepathy-ring ? || Just works on most of the devices, except for the [https://github.com/maemo-leste/bugtracker/issues/77 n900]
|-
| [[Status/Application Manager|Application Manager]] || OK || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || Works fine, theme might look a bit off on higher resolution displays
|-
| [[Status/Media Player|Media Player]] || WIP || OMP (open media player) being ported, listening to radio streams works, local music/video coming || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue]
|-
| [[Status/PDF Viewer|PDF Viewer]] || Mostly works || osso-pdf-viewer || [https://github.com/maemo-leste/osso-pdf-viewer osso-pdf-viewer]
|-
| [[Status/Games|Games & Entertainment]] || OK || Works (available in [[Leste Extras]] || [https://github.com/maemo-leste/bugtracker/issues/18 sdl fullscreen] [https://github.com/maemo-leste/bugtracker/issues/238 game importing]
|-
| [[Status/Theming|Theming]] || OK || Works with themes (available in [[Leste Extras]] ||
|-
| [[Calendar|Calendar]] || OK || Qalendar UI, syncing works. (UI needs some scrolling work) ||
|-
| [[Qt|Qt]] || OK || Qt5 port mostly works || https://github.com/maemo-leste/qtstyleplugins/ + https://github.com/maemo-leste/qt-platform-maemo
|}
51cb74e4801bcccff6c59e62cb59e1c60e4d314e
Motorola Droid 3
0
151
1534
1249
2023-05-13T08:14:00Z
Dogo6647
65
Added an idiot-proof short note to ensure the user installs kexecboot correctly
wikitext
text/x-wiki
{{Infobox Device
|image=
|manufacturer=Motorola
|codename=Solana XT862 / XT860
|dimensions=todo
|release_date=todo
|soc=TI OMAP4430
|dram=512MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=todo
|other=
|category=Supported
|sw_kernel=5.15.0
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Yes
|sw_usb_host=Yes
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=Untested
|sw_tv=
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=No (needs modem work)
|sw_sms=No (needs modem work)
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=
|sw_4g=No
|sw_bluetooth=todo
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=No (needs modem work)
|sw_agps=No
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=
|sw_standbytime=
}}
'''This device is called "Motorola Milestone 3" outside of the US.'''
== Installation ==
Hardware requirements:
* Droid 3 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux system
* Android Tools: fastboot adb
Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
# Latest maemo-leste-1.0-armhf-bionic-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# droid4-kexecboot.img
Download or clone https://github.com/MerlijnWajer/bionic-clown-boot/tree/solana (solana branch!)
Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device.
Now, flash the Maemo Leste image to your sdcard.
== Notes ==
IMPORTANT: Set the USB mode to "PC mode" instead of "mass storage mode" on your device before running install.sh
on bionic-clown-boot
Device is still heavy work in the progress. The following is known not to work:
* Brightness control (screen is always max brightness)
* Keyboard backlight
* Modem interrupts, it is visible on USB but other communication with it doesn't work
* pstore (needs figuring out what the reserved memory is on Android)
* See if we can use 512MB ram instead of 509MB (see dts)
* <s>3d shows some frame lag / misdrawing, so probably powervr clock needs adjusting</s> (seems solved on kernel 5.15)
* <s>touchscreen buttons do not work yet</s> (fixed on 5.15)
* keyboard layout in Leste is not faithful to the icons on the keyboard, but rather mostly mimic droid 4
<s>Additionally, the device suffers from random hangs while in use, causing resets. When pstore works, we can hopefully figure this out.</s> (Haven't seen them on 5.15)
Also, the device often comes network locked. [[User:Wizzup]] has access to Sigmakey software and can help remotely remove the network lock.
[[Category:Device]]
716af0d41079d51dafe1f448b3e79208d7ebbea1
1535
1534
2023-05-13T20:46:47Z
Dogo6647
65
wikitext
text/x-wiki
{{Infobox Device
|image=
|manufacturer=Motorola
|codename=Solana XT862 / XT860
|dimensions=todo
|release_date=todo
|soc=TI OMAP4430
|dram=512MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=todo
|other=
|category=Supported
|sw_kernel=5.15.0
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Yes
|sw_usb_host=Yes
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=Untested
|sw_tv=
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=No (needs modem work)
|sw_sms=No (needs modem work)
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=
|sw_4g=No
|sw_bluetooth=todo
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=No (needs modem work)
|sw_agps=No
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=
|sw_standbytime=
}}
'''This device is called "Motorola Milestone 3" outside of the US.'''
== Installation ==
Hardware requirements:
* Droid 3 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux system
* Android Tools: fastboot adb
Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
# Latest maemo-leste-1.0-armhf-bionic-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# droid4-kexecboot.img
Download or clone https://github.com/MerlijnWajer/bionic-clown-boot/tree/solana (solana branch!)
Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device.
Now, flash the Maemo Leste image to your sdcard.
== Notes ==
IMPORTANT: Set the USB mode to "PC mode" instead of "mass storage mode" on your device before running install.sh
on bionic-clown-boot
Device is still heavy work in the progress. The following is known not to work:
* Brightness control (screen is always max brightness)
* Keyboard backlight
* Modem interrupts, it is visible on USB but other communication with it doesn't work
* pstore (needs figuring out what the reserved memory is on Android)
* See if we can use 512MB ram instead of 509MB (see dts)
* <s>3d shows some frame lag / misdrawing, so probably powervr clock needs adjusting</s> (seems solved on kernel 5.15)
* <s>touchscreen buttons do not work yet</s> (fixed on 5.15)
* keyboard layout in Leste is not faithful to the icons on the keyboard, but rather mostly mimic droid 4
<s>Additionally, the device suffers from random hangs while in use, causing resets. When pstore works, we can hopefully figure this out.</s> <s>(Haven't seen them on 5.15)</s> (Came back on kernel 6.x)
Also, the device often comes network locked. [[User:Wizzup]] has access to Sigmakey software and can help remotely remove the network lock.
[[Category:Device]]
12c01af198ced591d325e3acdb31925cceb9a766
1536
1535
2023-05-13T21:02:45Z
Dogo6647
65
wikitext
text/x-wiki
{{Infobox Device
|image=
|manufacturer=Motorola
|codename=Solana XT862 / XT860
|dimensions=todo
|release_date=todo
|soc=TI OMAP4430
|dram=512MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=todo
|other=
|category=Supported
|sw_kernel=6.1.9
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Yes
|sw_usb_host=Yes
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=Untested
|sw_tv=
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=No (needs modem work)
|sw_sms=No (needs modem work)
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=
|sw_4g=No
|sw_bluetooth=todo
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=No (needs modem work)
|sw_agps=No
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=
|sw_standbytime=
}}
'''This device is called "Motorola Milestone 3" outside of the US.'''
== Installation ==
Hardware requirements:
* Droid 3 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux system
* Android Tools: fastboot adb
Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
# Latest maemo-leste-1.0-armhf-bionic-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# droid4-kexecboot.img
Download or clone https://github.com/MerlijnWajer/bionic-clown-boot/tree/solana (solana branch!)
Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device.
Now, flash the Maemo Leste image to your sdcard.
== Notes ==
IMPORTANT: Set the USB mode to "PC mode" instead of "mass storage mode" on your device before running install.sh
on bionic-clown-boot
Device is still heavy work in the progress. The following is known not to work:
* Brightness control (screen is always max brightness)
* Keyboard backlight
* Modem interrupts, it is visible on USB but other communication with it doesn't work
* pstore (needs figuring out what the reserved memory is on Android)
* See if we can use 512MB ram instead of 509MB (see dts)
* <s>3d shows some frame lag / misdrawing, so probably powervr clock needs adjusting</s> (seems solved on kernel 5.15)
* <s>touchscreen buttons do not work yet</s> (fixed on 5.15)
* keyboard layout in Leste is not faithful to the icons on the keyboard, but rather mostly mimic droid 4
<s>Additionally, the device suffers from random hangs while in use, causing resets. When pstore works, we can hopefully figure this out.</s> <s>(Haven't seen them on 5.15)</s> (Came back on kernel 6.x)
Also, the device often comes network locked. [[User:Wizzup]] has access to Sigmakey software and can help remotely remove the network lock.
[[Category:Device]]
a06507447dcc94cda7a425a1460f7fe6e8311186
1539
1536
2023-06-18T23:01:14Z
Dogo6647
65
wikitext
text/x-wiki
{{Infobox Device
|image=
|manufacturer=Motorola
|codename=Solana XT862 / XT860
|dimensions=todo
|release_date=todo
|soc=TI OMAP4430
|dram=512MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=todo
|other=
|category=Supported
|sw_kernel=6.1.9
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Yes
|sw_usb_host=Yes
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=No
|sw_tv=
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=No (needs modem work)
|sw_sms=No (needs modem work)
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=
|sw_4g=No
|sw_bluetooth=todo
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=No (needs modem work)
|sw_agps=No
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=
|sw_standbytime=
}}
'''This device is called "Motorola Milestone 3" outside of the US.'''
== Installation ==
Hardware requirements:
* Droid 3 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux system
* Android Tools: fastboot adb
Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
# Latest maemo-leste-1.0-armhf-bionic-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# droid4-kexecboot.img
Download or clone https://github.com/MerlijnWajer/bionic-clown-boot/tree/solana (solana branch!)
Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device.
Now, flash the Maemo Leste image to your sdcard.
== Notes ==
IMPORTANT: Set the USB mode to "PC mode" instead of "mass storage mode" on your device before running install.sh
on bionic-clown-boot
Device is still heavy work in the progress. The following is known not to work:
* Brightness control (screen is always max brightness)
* Keyboard backlight
* Modem interrupts, it is visible on USB but other communication with it doesn't work
* pstore (needs figuring out what the reserved memory is on Android)
* See if we can use 512MB ram instead of 509MB (see dts)
* <s>3d shows some frame lag / misdrawing, so probably powervr clock needs adjusting</s> (seems solved on kernel 5.15)
* <s>touchscreen buttons do not work yet</s> (fixed on 5.15)
* keyboard layout in Leste is not faithful to the icons on the keyboard, but rather mostly mimic droid 4
<s>Additionally, the device suffers from random hangs while in use, causing resets. When pstore works, we can hopefully figure this out.</s> <s>(Haven't seen them on 5.15)</s> (Came back on kernel 6.x)
Also, the device often comes network locked. [[User:Wizzup]] has access to Sigmakey software and can help remotely remove the network lock.
[[Category:Device]]
229167c067c7b94309c83b2ef72d44d8236cf7e4
1540
1539
2023-06-18T23:29:32Z
Dogo6647
65
/* Notes */
wikitext
text/x-wiki
{{Infobox Device
|image=
|manufacturer=Motorola
|codename=Solana XT862 / XT860
|dimensions=todo
|release_date=todo
|soc=TI OMAP4430
|dram=512MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=todo
|other=
|category=Supported
|sw_kernel=6.1.9
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Yes
|sw_usb_host=Yes
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=No
|sw_tv=
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=No (needs modem work)
|sw_sms=No (needs modem work)
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=
|sw_4g=No
|sw_bluetooth=todo
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=No (needs modem work)
|sw_agps=No
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=
|sw_standbytime=
}}
'''This device is called "Motorola Milestone 3" outside of the US.'''
== Installation ==
Hardware requirements:
* Droid 3 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux system
* Android Tools: fastboot adb
Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
# Latest maemo-leste-1.0-armhf-bionic-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# droid4-kexecboot.img
Download or clone https://github.com/MerlijnWajer/bionic-clown-boot/tree/solana (solana branch!)
Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device.
Now, flash the Maemo Leste image to your sdcard.
== Notes ==
IMPORTANT: Set the USB mode to "PC mode" instead of "mass storage mode" on your device before running install.sh
on bionic-clown-boot
Device is still heavy work in the progress. The following is known not to work:
* Brightness control (screen is always max brightness)
* Keyboard backlight
* Modem interrupts, it is visible on USB but other communication with it doesn't work
* pstore (needs figuring out what the reserved memory is on Android)
* See if we can use 512MB ram instead of 509MB (see dts)
* <s>3d shows some frame lag / misdrawing, so probably powervr clock needs adjusting</s> (seems solved on kernel 5.15)
* <s>touchscreen buttons do not work yet</s> (fixed on 5.15)
* keyboard layout in Leste is not faithful to the icons on the keyboard, but rather mostly mimic droid 4
Additionally, the device suffers from random hangs while in use, causing resets. When pstore works, we can hopefully figure this out. <s>(Haven't seen them on 5.15)</s> (Came back on kernel 6.x) It might be a power-management-related issue, or a GPU issue (last log line shows something about OMAP complaining about DRM), or something else. The emergency shell works just fine with no hangs at all.
Also, the device often comes network locked. [[User:Wizzup]] has access to Sigmakey software and can help remotely remove the network lock.
[[Category:Device]]
63ed75100060ccdef6f824582ce5004276ca12f4
Nokia N900
0
48
1546
1545
2023-06-30T13:13:22Z
Arno11
61
/* Overclocking */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster:
250-500-600-720-850MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New UimageX must be created again and old UimageX must be removed))
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Social messaging ===
Conversations app is compatible with libpurple and irc/bitlbee server.
Twitter, Signal, Telegram, FB Messenger and others are working.
(most audio and video links are playable)
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
First method:
To create a simple swap file if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
Second method:
To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024.
See Get Started Wiki.
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using few tweaks-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Maj + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Maj + N</code> if you want to enable Hildon composition again.
=== Retroarch ===
'''First things to do:'''
Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre>
menu_driver = "glui"
menu_show_core_updater = "true"
video_driver = "gl"
video_vsync = "true"
menu_unified_control = "true"
menu_core_enable = "true"
quick_menu_show_options = "true"
'''Some emulators are working well:
'''
- QuickNES (NES/Famicom)
- Snes9x 2005 (SNES/Super Famicom)
Others at 70-80% speed:
- Genesis Plus GX (SEGA MS/GG/MD/CD)
Go to Online Updater / Core Updater to download emulators
'''Retroarch recommended settings:'''
To avoid crashes, use only "glui" Menu Driver
'''Driver'''
Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null"
'''Video'''
Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no",
'''Audio'''
Audio Enable "no"
'''Input''' (very important)
Unified Menu Controls "yes"
Input User 1 Binds (keyboard settings)
'''Directory''' (very important)
Core "/home/user"
'''Default keyboard keys'''
'''X''' validate/ok
'''C''' cancel/back
'''F''' fullscreen (never close Retroarch in fullscreen mode)
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.30 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Conversations UI
|-
| Phone calls || WIP || Works with sphone and cmtspeech, might require pulseaudio audio filters, UCM support
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes || Not really used in Leste at the moment, since UI rotation does not work
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
8eb150e70921d7f1a21d384f840bc664cde6cb77
1547
1546
2023-07-04T07:06:55Z
Arno11
61
/* Web browsing */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster:
250-500-600-720-850MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New UimageX must be created again and old UimageX must be removed))
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Social messaging ===
Conversations app is compatible with libpurple and irc/bitlbee server.
Twitter, Signal, Telegram, FB Messenger and others are working.
(most audio and video links are playable)
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
First method:
To create a simple swap file if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
Second method:
To extand existing zswap you can install zram-tools from the repo, and edit <pre>/etc/default/zramswap</pre> as necessary. It's probably convenient to set allocation to 768 or 1024.
See Get Started Wiki.
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using few tweaks-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Retroarch ===
'''First things to do:'''
Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre>
menu_driver = "glui"
menu_show_core_updater = "true"
video_driver = "gl"
video_vsync = "true"
menu_unified_control = "true"
menu_core_enable = "true"
quick_menu_show_options = "true"
'''Some emulators are working well:
'''
- QuickNES (NES/Famicom)
- Snes9x 2005 (SNES/Super Famicom)
Others at 70-80% speed:
- Genesis Plus GX (SEGA MS/GG/MD/CD)
Go to Online Updater / Core Updater to download emulators
'''Retroarch recommended settings:'''
To avoid crashes, use only "glui" Menu Driver
'''Driver'''
Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null"
'''Video'''
Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no",
'''Audio'''
Audio Enable "no"
'''Input''' (very important)
Unified Menu Controls "yes"
Input User 1 Binds (keyboard settings)
'''Directory''' (very important)
Core "/home/user"
'''Default keyboard keys'''
'''X''' validate/ok
'''C''' cancel/back
'''F''' fullscreen (never close Retroarch in fullscreen mode)
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.30 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Conversations UI
|-
| Phone calls || WIP || Works with sphone and cmtspeech, might require pulseaudio audio filters, UCM support
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes || Not really used in Leste at the moment, since UI rotation does not work
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
150cbadeeb1d85d6fdd446c7eb679765b732889e
1548
1547
2023-07-10T14:04:29Z
Arno11
61
/* More SWAP */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster:
250-500-600-720-850MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New UimageX must be created again and old UimageX must be removed))
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Social messaging ===
Conversations app is compatible with libpurple and irc/bitlbee server.
Twitter, Signal, Telegram, FB Messenger and others are working.
(most audio and video links are playable)
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
To create a simple swap file if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using few tweaks-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Retroarch ===
'''First things to do:'''
Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre>
menu_driver = "glui"
menu_show_core_updater = "true"
video_driver = "gl"
video_vsync = "true"
menu_unified_control = "true"
menu_core_enable = "true"
quick_menu_show_options = "true"
'''Some emulators are working well:
'''
- QuickNES (NES/Famicom)
- Snes9x 2005 (SNES/Super Famicom)
Others at 70-80% speed:
- Genesis Plus GX (SEGA MS/GG/MD/CD)
Go to Online Updater / Core Updater to download emulators
'''Retroarch recommended settings:'''
To avoid crashes, use only "glui" Menu Driver
'''Driver'''
Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null"
'''Video'''
Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no",
'''Audio'''
Audio Enable "no"
'''Input''' (very important)
Unified Menu Controls "yes"
Input User 1 Binds (keyboard settings)
'''Directory''' (very important)
Core "/home/user"
'''Default keyboard keys'''
'''X''' validate/ok
'''C''' cancel/back
'''F''' fullscreen (never close Retroarch in fullscreen mode)
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.30 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Conversations UI
|-
| Phone calls || WIP || Works with sphone and cmtspeech, might require pulseaudio audio filters, UCM support
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes || Not really used in Leste at the moment, since UI rotation does not work
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
58f389fd22a4b1c976749f10062cafc12846179a
1551
1548
2023-07-25T10:51:54Z
Arno11
61
/* Overclocking */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster:
250-500-600-720-850MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Social messaging ===
Conversations app is compatible with libpurple and irc/bitlbee server.
Twitter, Signal, Telegram, FB Messenger and others are working.
(most audio and video links are playable)
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
To create a simple swap file if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using few tweaks-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Retroarch ===
'''First things to do:'''
Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre>
menu_driver = "glui"
menu_show_core_updater = "true"
video_driver = "gl"
video_vsync = "true"
menu_unified_control = "true"
menu_core_enable = "true"
quick_menu_show_options = "true"
'''Some emulators are working well:
'''
- QuickNES (NES/Famicom)
- Snes9x 2005 (SNES/Super Famicom)
Others at 70-80% speed:
- Genesis Plus GX (SEGA MS/GG/MD/CD)
Go to Online Updater / Core Updater to download emulators
'''Retroarch recommended settings:'''
To avoid crashes, use only "glui" Menu Driver
'''Driver'''
Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null"
'''Video'''
Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no",
'''Audio'''
Audio Enable "no"
'''Input''' (very important)
Unified Menu Controls "yes"
Input User 1 Binds (keyboard settings)
'''Directory''' (very important)
Core "/home/user"
'''Default keyboard keys'''
'''X''' validate/ok
'''C''' cancel/back
'''F''' fullscreen (never close Retroarch in fullscreen mode)
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.30 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Conversations UI
|-
| Phone calls || WIP || Works with sphone and cmtspeech, might require pulseaudio audio filters, UCM support
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes || Not really used in Leste at the moment, since UI rotation does not work
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
c6c956005554e5421d0fcd6c9f539439e1aa4a2c
1552
1551
2023-07-28T10:29:03Z
Arno11
61
/* Status table */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster:
250-500-600-720-850MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Social messaging ===
Conversations app is compatible with libpurple and irc/bitlbee server.
Twitter, Signal, Telegram, FB Messenger and others are working.
(most audio and video links are playable)
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
To create a simple swap file if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using few tweaks-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Retroarch ===
'''First things to do:'''
Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre>
menu_driver = "glui"
menu_show_core_updater = "true"
video_driver = "gl"
video_vsync = "true"
menu_unified_control = "true"
menu_core_enable = "true"
quick_menu_show_options = "true"
'''Some emulators are working well:
'''
- QuickNES (NES/Famicom)
- Snes9x 2005 (SNES/Super Famicom)
Others at 70-80% speed:
- Genesis Plus GX (SEGA MS/GG/MD/CD)
Go to Online Updater / Core Updater to download emulators
'''Retroarch recommended settings:'''
To avoid crashes, use only "glui" Menu Driver
'''Driver'''
Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null"
'''Video'''
Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no",
'''Audio'''
Audio Enable "no"
'''Input''' (very important)
Unified Menu Controls "yes"
Input User 1 Binds (keyboard settings)
'''Directory''' (very important)
Core "/home/user"
'''Default keyboard keys'''
'''X''' validate/ok
'''C''' cancel/back
'''F''' fullscreen (never close Retroarch in fullscreen mode)
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.30 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Conversations UI
|-
| Phone calls || WIP || Works with sphone and cmtspeech, might require pulseaudio audio filters, UCM support
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes || Not really used in Leste at the moment, since UI rotation does not work
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
a456f6d0e3663946ddbbf6684f4c339aa1f746e5
1553
1552
2023-08-04T14:43:26Z
Arno11
61
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes/WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster:
250-500-600-720-850MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Social messaging ===
Conversations app is compatible with libpurple and irc/bitlbee server.
Twitter, Signal, Telegram, FB Messenger and others are working.
(most audio and video links are playable)
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
To create a simple swap file if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using few tweaks-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Retroarch ===
'''First things to do:'''
Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre>
menu_driver = "glui"
menu_show_core_updater = "true"
video_driver = "gl"
video_vsync = "true"
menu_unified_control = "true"
menu_core_enable = "true"
quick_menu_show_options = "true"
'''Some emulators are working well:
'''
- QuickNES (NES/Famicom)
- Snes9x 2005 (SNES/Super Famicom)
Others at 70-80% speed:
- Genesis Plus GX (SEGA MS/GG/MD/CD)
Go to Online Updater / Core Updater to download emulators
'''Retroarch recommended settings:'''
To avoid crashes, use only "glui" Menu Driver
'''Driver'''
Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null"
'''Video'''
Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no",
'''Audio'''
Audio Enable "no"
'''Input''' (very important)
Unified Menu Controls "yes"
Input User 1 Binds (keyboard settings)
'''Directory''' (very important)
Core "/home/user"
'''Default keyboard keys'''
'''X''' validate/ok
'''C''' cancel/back
'''F''' fullscreen (never close Retroarch in fullscreen mode)
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.30 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| 2G/3G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Conversations UI
|-
| Phone calls || WIP || Works with sphone and cmtspeech, UCM support, some integration and bug fixing still remains
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No ||
|-
| Accelerometer || Yes || Not really used in Leste at the moment, since UI rotation does not work
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
19c42210abcea63755434c2650ac30b8362be172
1554
1553
2023-08-13T17:24:00Z
Arno11
61
/* Status table */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes/WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster:
250-500-600-720-850MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Social messaging ===
Conversations app is compatible with libpurple and irc/bitlbee server.
Twitter, Signal, Telegram, FB Messenger and others are working.
(most audio and video links are playable)
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
To create a simple swap file if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using few tweaks-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Retroarch ===
'''First things to do:'''
Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre>
menu_driver = "glui"
menu_show_core_updater = "true"
video_driver = "gl"
video_vsync = "true"
menu_unified_control = "true"
menu_core_enable = "true"
quick_menu_show_options = "true"
'''Some emulators are working well:
'''
- QuickNES (NES/Famicom)
- Snes9x 2005 (SNES/Super Famicom)
Others at 70-80% speed:
- Genesis Plus GX (SEGA MS/GG/MD/CD)
Go to Online Updater / Core Updater to download emulators
'''Retroarch recommended settings:'''
To avoid crashes, use only "glui" Menu Driver
'''Driver'''
Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null"
'''Video'''
Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no",
'''Audio'''
Audio Enable "no"
'''Input''' (very important)
Unified Menu Controls "yes"
Input User 1 Binds (keyboard settings)
'''Directory''' (very important)
Core "/home/user"
'''Default keyboard keys'''
'''X''' validate/ok
'''C''' cancel/back
'''F''' fullscreen (never close Retroarch in fullscreen mode)
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.30 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Conversations UI
|-
| Phone calls || WIP || Works with sphone and cmtspeech, UCM support, some integration and bug fixing still remains, sound is good. Works in 2G, 3G and 3.5G mode
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Bluetooth driver is needed
|-
| Accelerometer || Yes || Not really used in Leste at the moment, since UI rotation does not work
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || WIP || TX only (hardware limitation). Sending pulses causes a kernel oops without specific dts parameters
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
d892b0ccdf245631521881a673754282c6009c3e
1555
1554
2023-08-19T18:23:32Z
Arno11
61
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
overclock @850MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes/WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster:
250-500-600-720-850MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Social messaging ===
Conversations app is compatible with libpurple and irc/bitlbee server.
Twitter, Signal, Telegram, FB Messenger and others are working.
(most audio and video links are playable)
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
To create a simple swap file if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using few tweaks-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Retroarch ===
'''First things to do:'''
Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre>
menu_driver = "glui"
menu_show_core_updater = "true"
video_driver = "gl"
video_vsync = "true"
menu_unified_control = "true"
menu_core_enable = "true"
quick_menu_show_options = "true"
'''Some emulators are working well:
'''
- QuickNES (NES/Famicom)
- Snes9x 2005 (SNES/Super Famicom)
Others at 70-80% speed:
- Genesis Plus GX (SEGA MS/GG/MD/CD)
Go to Online Updater / Core Updater to download emulators
'''Retroarch recommended settings:'''
To avoid crashes, use only "glui" Menu Driver
'''Driver'''
Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null"
'''Video'''
Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no",
'''Audio'''
Audio Enable "no"
'''Input''' (very important)
Unified Menu Controls "yes"
Input User 1 Binds (keyboard settings)
'''Directory''' (very important)
Core "/home/user"
'''Default keyboard keys'''
'''X''' validate/ok
'''C''' cancel/back
'''F''' fullscreen (never close Retroarch in fullscreen mode)
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.30 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Conversations UI
|-
| Phone calls || WIP || Works with sphone and cmtspeech, UCM support, some integration and bug fixing still remains, sound is good. Works in 2G, 3G and 3.5G mode
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Bluetooth driver is needed
|-
| Accelerometer || Yes || Not really used in Leste at the moment, since UI rotation does not work
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || WIP || TX only (hardware limitation). Sending pulses causes a kernel oops without specific dts parameters
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
27ff1546ba6c7ee13a5b8a15cfb2f6278766fc7a
1556
1555
2023-08-19T18:33:14Z
Arno11
61
/* Status table */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
overclock @850MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes/WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster:
250-500-600-720-850MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Social messaging ===
Conversations app is compatible with libpurple and irc/bitlbee server.
Twitter, Signal, Telegram, FB Messenger and others are working.
(most audio and video links are playable)
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
To create a simple swap file if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using few tweaks-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Retroarch ===
'''First things to do:'''
Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre>
menu_driver = "glui"
menu_show_core_updater = "true"
video_driver = "gl"
video_vsync = "true"
menu_unified_control = "true"
menu_core_enable = "true"
quick_menu_show_options = "true"
'''Some emulators are working well:
'''
- QuickNES (NES/Famicom)
- Snes9x 2005 (SNES/Super Famicom)
Others at 70-80% speed:
- Genesis Plus GX (SEGA MS/GG/MD/CD)
Go to Online Updater / Core Updater to download emulators
'''Retroarch recommended settings:'''
To avoid crashes, use only "glui" Menu Driver
'''Driver'''
Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null"
'''Video'''
Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no",
'''Audio'''
Audio Enable "no"
'''Input''' (very important)
Unified Menu Controls "yes"
Input User 1 Binds (keyboard settings)
'''Directory''' (very important)
Core "/home/user"
'''Default keyboard keys'''
'''X''' validate/ok
'''C''' cancel/back
'''F''' fullscreen (never close Retroarch in fullscreen mode)
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.30 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Conversations UI
|-
| Phone calls || WIP || Works with sphone and cmtspeech, UCM support, some integration and bug fixing still remains, sound is good. Works in 2G, 3G and 3.5G mode
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Bluetooth driver is needed
|-
| Accelerometer || Yes || Not really used in Leste at the moment, since UI rotation does not work
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with specific dts parameters.
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
a0d968f628a90c8740fad41aeef701d72ef79d5a
1557
1556
2023-08-19T19:02:10Z
Arno11
61
/* Status table */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
overclock @850MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes/WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster:
250-500-600-720-850MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Social messaging ===
Conversations app is compatible with libpurple and irc/bitlbee server.
Twitter, Signal, Telegram, FB Messenger and others are working.
(most audio and video links are playable)
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
To create a simple swap file if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using few tweaks-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Retroarch ===
'''First things to do:'''
Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre>
menu_driver = "glui"
menu_show_core_updater = "true"
video_driver = "gl"
video_vsync = "true"
menu_unified_control = "true"
menu_core_enable = "true"
quick_menu_show_options = "true"
'''Some emulators are working well:
'''
- QuickNES (NES/Famicom)
- Snes9x 2005 (SNES/Super Famicom)
Others at 70-80% speed:
- Genesis Plus GX (SEGA MS/GG/MD/CD)
Go to Online Updater / Core Updater to download emulators
'''Retroarch recommended settings:'''
To avoid crashes, use only "glui" Menu Driver
'''Driver'''
Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null"
'''Video'''
Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no",
'''Audio'''
Audio Enable "no"
'''Input''' (very important)
Unified Menu Controls "yes"
Input User 1 Binds (keyboard settings)
'''Directory''' (very important)
Core "/home/user"
'''Default keyboard keys'''
'''X''' validate/ok
'''C''' cancel/back
'''F''' fullscreen (never close Retroarch in fullscreen mode)
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.30 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Conversations UI
|-
| Phone calls || WIP || Works with sphone and cmtspeech, UCM support, some integration and bug fixing still remains, sound is good. Works in 2G, 3G and 3.5G mode
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Install <code>v4l-utils</code>, then enable chip and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
Select 'headset' in Pavucontrol
|-
| FM Receiver || No || Bluetooth driver is needed
|-
| Accelerometer || Yes || Not really used in Leste at the moment, since UI rotation does not work
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with specific dts parameters.
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
1cb49488f82d97a974ea65102d867469c1ac98a7
1558
1557
2023-08-31T14:55:07Z
Arno11
61
/* Status table */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
overclock @850MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes/WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster:
250-500-600-720-850MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Social messaging ===
Conversations app is compatible with libpurple and irc/bitlbee server.
Twitter, Signal, Telegram, FB Messenger and others are working.
(most audio and video links are playable)
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
To create a simple swap file if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using few tweaks-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Retroarch ===
'''First things to do:'''
Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre>
menu_driver = "glui"
menu_show_core_updater = "true"
video_driver = "gl"
video_vsync = "true"
menu_unified_control = "true"
menu_core_enable = "true"
quick_menu_show_options = "true"
'''Some emulators are working well:
'''
- QuickNES (NES/Famicom)
- Snes9x 2005 (SNES/Super Famicom)
Others at 70-80% speed:
- Genesis Plus GX (SEGA MS/GG/MD/CD)
Go to Online Updater / Core Updater to download emulators
'''Retroarch recommended settings:'''
To avoid crashes, use only "glui" Menu Driver
'''Driver'''
Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null"
'''Video'''
Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no",
'''Audio'''
Audio Enable "no"
'''Input''' (very important)
Unified Menu Controls "yes"
Input User 1 Binds (keyboard settings)
'''Directory''' (very important)
Core "/home/user"
'''Default keyboard keys'''
'''X''' validate/ok
'''C''' cancel/back
'''F''' fullscreen (never close Retroarch in fullscreen mode)
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.30 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Conversations UI
|-
| Phone calls || Yes || Works well using ofono scripts, UCM support, some integration and bug fixing still remains with Sphone, sound is good. Works in 2G, 3G and 3.5G mode, low latency.
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Bluetooth driver is needed
|-
| Accelerometer || Yes || Not really used in Leste at the moment, since UI rotation does not work
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes/WIP || TX only (hardware limitation). Works with specific dts parameters and pwm-ir-tx driver. Unstable
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
4491d29c50721a65327e089e7725c1b39d6293c3
1560
1558
2023-09-04T09:45:14Z
Sicelo
5
/* Status table */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
overclock @850MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes/WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster:
250-500-600-720-850MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Social messaging ===
Conversations app is compatible with libpurple and irc/bitlbee server.
Twitter, Signal, Telegram, FB Messenger and others are working.
(most audio and video links are playable)
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
To create a simple swap file if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using few tweaks-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Retroarch ===
'''First things to do:'''
Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre>
menu_driver = "glui"
menu_show_core_updater = "true"
video_driver = "gl"
video_vsync = "true"
menu_unified_control = "true"
menu_core_enable = "true"
quick_menu_show_options = "true"
'''Some emulators are working well:
'''
- QuickNES (NES/Famicom)
- Snes9x 2005 (SNES/Super Famicom)
Others at 70-80% speed:
- Genesis Plus GX (SEGA MS/GG/MD/CD)
Go to Online Updater / Core Updater to download emulators
'''Retroarch recommended settings:'''
To avoid crashes, use only "glui" Menu Driver
'''Driver'''
Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null"
'''Video'''
Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no",
'''Audio'''
Audio Enable "no"
'''Input''' (very important)
Unified Menu Controls "yes"
Input User 1 Binds (keyboard settings)
'''Directory''' (very important)
Core "/home/user"
'''Default keyboard keys'''
'''X''' validate/ok
'''C''' cancel/back
'''F''' fullscreen (never close Retroarch in fullscreen mode)
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.30 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Conversations UI
|-
| Phone calls || Yes || Works well using ofono scripts, UCM support, some integration and bug fixing still remains with Sphone, sound is good. Works in 2G, 3G and 3.5G mode, low latency.
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes/WIP || TX only (hardware limitation). Works with specific dts parameters and pwm-ir-tx driver. Unstable
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
aaebf3982800a48f5d309a02053f90dda0914fe1
1562
1560
2023-09-04T21:52:09Z
Arno11
61
/* Status table */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
overclock @850MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes/WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster:
250-500-600-720-850MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Social messaging ===
Conversations app is compatible with libpurple and irc/bitlbee server.
Twitter, Signal, Telegram, FB Messenger and others are working.
(most audio and video links are playable)
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
To create a simple swap file if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using few tweaks-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Retroarch ===
'''First things to do:'''
Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre>
menu_driver = "glui"
menu_show_core_updater = "true"
video_driver = "gl"
video_vsync = "true"
menu_unified_control = "true"
menu_core_enable = "true"
quick_menu_show_options = "true"
'''Some emulators are working well:
'''
- QuickNES (NES/Famicom)
- Snes9x 2005 (SNES/Super Famicom)
Others at 70-80% speed:
- Genesis Plus GX (SEGA MS/GG/MD/CD)
Go to Online Updater / Core Updater to download emulators
'''Retroarch recommended settings:'''
To avoid crashes, use only "glui" Menu Driver
'''Driver'''
Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null"
'''Video'''
Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no",
'''Audio'''
Audio Enable "no"
'''Input''' (very important)
Unified Menu Controls "yes"
Input User 1 Binds (keyboard settings)
'''Directory''' (very important)
Core "/home/user"
'''Default keyboard keys'''
'''X''' validate/ok
'''C''' cancel/back
'''F''' fullscreen (never close Retroarch in fullscreen mode)
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.48 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Conversations UI
|-
| Phone calls || Yes || Works well using ofono scripts, UCM support, some integration and bug fixing still remains with Sphone, sound is good. Works in 2G, 3G and 3.5G mode, low latency.
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes/WIP || TX only (hardware limitation). Works with the old ir-rx51 driver (patched), overclock is needed
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
0cee8a5fce57741bd50671ea1097f9c495ee63e0
1563
1562
2023-09-05T16:21:06Z
Arno11
61
/* Status table */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
overclock @850MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes/WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster:
250-500-600-720-850MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Social messaging ===
Conversations app is compatible with libpurple and irc/bitlbee server.
Twitter, Signal, Telegram, FB Messenger and others are working.
(most audio and video links are playable)
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
To create a simple swap file if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using few tweaks-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Retroarch ===
'''First things to do:'''
Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre>
menu_driver = "glui"
menu_show_core_updater = "true"
video_driver = "gl"
video_vsync = "true"
menu_unified_control = "true"
menu_core_enable = "true"
quick_menu_show_options = "true"
'''Some emulators are working well:
'''
- QuickNES (NES/Famicom)
- Snes9x 2005 (SNES/Super Famicom)
Others at 70-80% speed:
- Genesis Plus GX (SEGA MS/GG/MD/CD)
Go to Online Updater / Core Updater to download emulators
'''Retroarch recommended settings:'''
To avoid crashes, use only "glui" Menu Driver
'''Driver'''
Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null"
'''Video'''
Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no",
'''Audio'''
Audio Enable "no"
'''Input''' (very important)
Unified Menu Controls "yes"
Input User 1 Binds (keyboard settings)
'''Directory''' (very important)
Core "/home/user"
'''Default keyboard keys'''
'''X''' validate/ok
'''C''' cancel/back
'''F''' fullscreen (never close Retroarch in fullscreen mode)
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.48 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Conversations UI
|-
| Phone calls || Yes || Works well using ofono scripts, UCM support, some integration and bug fixing still remains with Sphone, sound is good. Works in 2G, 3G and 3.5G mode, low latency.
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with the old ir-rx51 driver (patched), overclock is needed
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
8048f892eef7f3c0abbb6710f63b5716f8059959
1564
1563
2023-10-03T08:03:54Z
Arno11
61
/* Status table */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
overclock @850MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes/WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster:
250-500-600-720-850MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Social messaging ===
Conversations app is compatible with libpurple and irc/bitlbee server.
Twitter, Signal, Telegram, FB Messenger and others are working.
(most audio and video links are playable)
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP ===
To create a simple swap file if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using few tweaks-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Retroarch ===
'''First things to do:'''
Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre>
menu_driver = "glui"
menu_show_core_updater = "true"
video_driver = "gl"
video_vsync = "true"
menu_unified_control = "true"
menu_core_enable = "true"
quick_menu_show_options = "true"
'''Some emulators are working well:
'''
- QuickNES (NES/Famicom)
- Snes9x 2005 (SNES/Super Famicom)
Others at 70-80% speed:
- Genesis Plus GX (SEGA MS/GG/MD/CD)
Go to Online Updater / Core Updater to download emulators
'''Retroarch recommended settings:'''
To avoid crashes, use only "glui" Menu Driver
'''Driver'''
Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null"
'''Video'''
Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no",
'''Audio'''
Audio Enable "no"
'''Input''' (very important)
Unified Menu Controls "yes"
Input User 1 Binds (keyboard settings)
'''Directory''' (very important)
Core "/home/user"
'''Default keyboard keys'''
'''X''' validate/ok
'''C''' cancel/back
'''F''' fullscreen (never close Retroarch in fullscreen mode)
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.48 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 850MHz (stable), Turbo mode works
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Conversations UI
|-
| Phone calls || Yes || Works well using ofono scripts, UCM support, some integration and bug fixing still remains with Sphone, sound is good. Works in 2G, 3G and 3.5G mode, low latency.
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
d3f6667f505f7355a13aaad472cbe14ccc76f271
1565
1564
2023-10-03T08:16:30Z
Arno11
61
/* More SWAP */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz
overclock @850MHz
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes/WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster:
250-500-600-720-850MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Social messaging ===
Conversations app is compatible with libpurple and irc/bitlbee server.
Twitter, Signal, Telegram, FB Messenger and others are working.
(most audio and video links are playable)
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP / SWAP activation ===
To enable swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre>
Other possibility: create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using few tweaks-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Retroarch ===
'''First things to do:'''
Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre>
menu_driver = "glui"
menu_show_core_updater = "true"
video_driver = "gl"
video_vsync = "true"
menu_unified_control = "true"
menu_core_enable = "true"
quick_menu_show_options = "true"
'''Some emulators are working well:
'''
- QuickNES (NES/Famicom)
- Snes9x 2005 (SNES/Super Famicom)
Others at 70-80% speed:
- Genesis Plus GX (SEGA MS/GG/MD/CD)
Go to Online Updater / Core Updater to download emulators
'''Retroarch recommended settings:'''
To avoid crashes, use only "glui" Menu Driver
'''Driver'''
Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null"
'''Video'''
Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no",
'''Audio'''
Audio Enable "no"
'''Input''' (very important)
Unified Menu Controls "yes"
Input User 1 Binds (keyboard settings)
'''Directory''' (very important)
Core "/home/user"
'''Default keyboard keys'''
'''X''' validate/ok
'''C''' cancel/back
'''F''' fullscreen (never close Retroarch in fullscreen mode)
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.48 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 850MHz (stable), Turbo mode works
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Conversations UI
|-
| Phone calls || Yes || Works well using ofono scripts, UCM support, some integration and bug fixing still remains with Sphone, sound is good. Works in 2G, 3G and 3.5G mode, low latency.
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
211b6b5492bdf2bf88a9db658b938da4244bbba9
1568
1565
2023-10-20T11:13:10Z
Halftux
7
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes/WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster:
250-500-600-720-850MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card ===
To avoid overall slowness, please only use SDHC Class 10 or better.
=== Social messaging ===
Conversations app is compatible with libpurple and irc/bitlbee server.
Twitter, Signal, Telegram, FB Messenger and others are working.
(most audio and video links are playable)
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP / SWAP activation ===
To enable swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre>
Other possibility: create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using few tweaks-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Retroarch ===
'''First things to do:'''
Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre>
menu_driver = "glui"
menu_show_core_updater = "true"
video_driver = "gl"
video_vsync = "true"
menu_unified_control = "true"
menu_core_enable = "true"
quick_menu_show_options = "true"
'''Some emulators are working well:
'''
- QuickNES (NES/Famicom)
- Snes9x 2005 (SNES/Super Famicom)
Others at 70-80% speed:
- Genesis Plus GX (SEGA MS/GG/MD/CD)
Go to Online Updater / Core Updater to download emulators
'''Retroarch recommended settings:'''
To avoid crashes, use only "glui" Menu Driver
'''Driver'''
Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null"
'''Video'''
Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no",
'''Audio'''
Audio Enable "no"
'''Input''' (very important)
Unified Menu Controls "yes"
Input User 1 Binds (keyboard settings)
'''Directory''' (very important)
Core "/home/user"
'''Default keyboard keys'''
'''X''' validate/ok
'''C''' cancel/back
'''F''' fullscreen (never close Retroarch in fullscreen mode)
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.48 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 850MHz (stable), Turbo mode works
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Conversations UI
|-
| Phone calls || Yes || Works well using ofono scripts, UCM support, some integration and bug fixing still remains with Sphone, sound is good. Works in 2G, 3G and 3.5G mode, low latency.
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
e72ab0c894d887c501acd98c6770a77f3e78258e
1569
1568
2023-11-20T17:44:23Z
Arno11
61
/* SD Card */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes/WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster:
250-500-600-720-850MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, SDXC U3 microsd cards seem ideal. Class10 U1 cards are too slow to run Leste on N900.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
WARNING: at the moment there is no way to see if Leste has been loaded entirely or not. It means that once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness).
(Note: using a fast microsd card, overclock, custom transitions.ini file and using xorg at 16bpp make Leste running as fast as Fremantle at 850-900MHz now)
=== Social messaging ===
Conversations app is compatible with libpurple and irc/bitlbee server.
Twitter, Signal, Telegram, FB Messenger and others are working.
(most audio and video links are playable)
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== More SWAP / SWAP activation ===
To enable swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre>
Other possibility: create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using few tweaks-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Retroarch ===
'''First things to do:'''
Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre>
menu_driver = "glui"
menu_show_core_updater = "true"
video_driver = "gl"
video_vsync = "true"
menu_unified_control = "true"
menu_core_enable = "true"
quick_menu_show_options = "true"
'''Some emulators are working well:
'''
- QuickNES (NES/Famicom)
- Snes9x 2005 (SNES/Super Famicom)
Others at 70-80% speed:
- Genesis Plus GX (SEGA MS/GG/MD/CD)
Go to Online Updater / Core Updater to download emulators
'''Retroarch recommended settings:'''
To avoid crashes, use only "glui" Menu Driver
'''Driver'''
Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null"
'''Video'''
Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no",
'''Audio'''
Audio Enable "no"
'''Input''' (very important)
Unified Menu Controls "yes"
Input User 1 Binds (keyboard settings)
'''Directory''' (very important)
Core "/home/user"
'''Default keyboard keys'''
'''X''' validate/ok
'''C''' cancel/back
'''F''' fullscreen (never close Retroarch in fullscreen mode)
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.48 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 850MHz (stable), Turbo mode works
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Conversations UI
|-
| Phone calls || Yes || Works well using ofono scripts, UCM support, some integration and bug fixing still remains with Sphone, sound is good. Works in 2G, 3G and 3.5G mode, low latency.
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
5eee172b8227ecf9084cf7d544cf421fda059e2a
1570
1569
2023-11-20T17:58:01Z
Arno11
61
/* Tips / Tweaks */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes/WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster:
250-500-600-720-850MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, SDXC U3 microsd cards seem ideal. Class10 U1 cards are too slow to run Leste on N900.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
WARNING: at the moment there is no way to see if Leste has been loaded entirely or not. It means that once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness).
(Note: using a fast microsd card, overclock, custom transitions.ini file and using xorg at 16bpp make Leste running as fast as Fremantle at 850-900MHz now)
=== Social messaging ===
Conversations app is compatible with libpurple and irc/bitlbee server.
Twitter, Signal, Telegram, FB Messenger and others are working.
(most audio and video links are playable)
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== Running Xorg at 16bpp ===
It is at the moment just a workaround but running Xorg using 16bpp make N900 faster and smoother. The CPU usage is better.
As root:
<code>nano /usr/share/X11/xorg.conf.d/99-omap.conf.leste</code>
Add this line in Section "Screen":
<code>DefaultDepth 16</code>
Warning: qml is not working at the moment at 16bpp.
=== More SWAP / SWAP activation ===
To enable swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre>
Other possibility: create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using few tweaks-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Retroarch ===
'''First things to do:'''
Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre>
menu_driver = "glui"
menu_show_core_updater = "true"
video_driver = "gl"
video_vsync = "true"
menu_unified_control = "true"
menu_core_enable = "true"
quick_menu_show_options = "true"
'''Some emulators are working well:
'''
- QuickNES (NES/Famicom)
- Snes9x 2005 (SNES/Super Famicom)
Others at 70-80% speed:
- Genesis Plus GX (SEGA MS/GG/MD/CD)
Go to Online Updater / Core Updater to download emulators
'''Retroarch recommended settings:'''
To avoid crashes, use only "glui" Menu Driver
'''Driver'''
Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null"
'''Video'''
Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no",
'''Audio'''
Audio Enable "no"
'''Input''' (very important)
Unified Menu Controls "yes"
Input User 1 Binds (keyboard settings)
'''Directory''' (very important)
Core "/home/user"
'''Default keyboard keys'''
'''X''' validate/ok
'''C''' cancel/back
'''F''' fullscreen (never close Retroarch in fullscreen mode)
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.48 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 850MHz (stable), Turbo mode works
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Conversations UI
|-
| Phone calls || Yes || Works well using ofono scripts, UCM support, some integration and bug fixing still remains with Sphone, sound is good. Works in 2G, 3G and 3.5G mode, low latency.
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
a81649d3537ce3176bf939b25faacf589175c234
1571
1570
2023-11-20T18:00:56Z
Arno11
61
/* More SWAP / SWAP activation */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes/WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster:
250-500-600-720-850MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, SDXC U3 microsd cards seem ideal. Class10 U1 cards are too slow to run Leste on N900.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
WARNING: at the moment there is no way to see if Leste has been loaded entirely or not. It means that once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness).
(Note: using a fast microsd card, overclock, custom transitions.ini file and using xorg at 16bpp make Leste running as fast as Fremantle at 850-900MHz now)
=== Social messaging ===
Conversations app is compatible with libpurple and irc/bitlbee server.
Twitter, Signal, Telegram, FB Messenger and others are working.
(most audio and video links are playable)
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== Running Xorg at 16bpp ===
It is at the moment just a workaround but running Xorg using 16bpp make N900 faster and smoother. The CPU usage is better.
As root:
<code>nano /usr/share/X11/xorg.conf.d/99-omap.conf.leste</code>
Add this line in Section "Screen":
<code>DefaultDepth 16</code>
Warning: qml is not working at the moment at 16bpp.
=== More SWAP / SWAP activation ===
To enable swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre>
(Note: emmc swap is faster than sd card swap)
Other possibility: create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using few tweaks-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Retroarch ===
'''First things to do:'''
Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre>
menu_driver = "glui"
menu_show_core_updater = "true"
video_driver = "gl"
video_vsync = "true"
menu_unified_control = "true"
menu_core_enable = "true"
quick_menu_show_options = "true"
'''Some emulators are working well:
'''
- QuickNES (NES/Famicom)
- Snes9x 2005 (SNES/Super Famicom)
Others at 70-80% speed:
- Genesis Plus GX (SEGA MS/GG/MD/CD)
Go to Online Updater / Core Updater to download emulators
'''Retroarch recommended settings:'''
To avoid crashes, use only "glui" Menu Driver
'''Driver'''
Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null"
'''Video'''
Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no",
'''Audio'''
Audio Enable "no"
'''Input''' (very important)
Unified Menu Controls "yes"
Input User 1 Binds (keyboard settings)
'''Directory''' (very important)
Core "/home/user"
'''Default keyboard keys'''
'''X''' validate/ok
'''C''' cancel/back
'''F''' fullscreen (never close Retroarch in fullscreen mode)
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.48 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 850MHz (stable), Turbo mode works
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Conversations UI
|-
| Phone calls || Yes || Works well using ofono scripts, UCM support, some integration and bug fixing still remains with Sphone, sound is good. Works in 2G, 3G and 3.5G mode, low latency.
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
e13071c7ae9f74e76e2f3ac063534f29ae1b96df
1572
1571
2023-11-20T18:04:00Z
Arno11
61
/* Running Xorg at 16bpp */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes/WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster:
250-500-600-720-850MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, SDXC U3 microsd cards seem ideal. Class10 U1 cards are too slow to run Leste on N900.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
WARNING: at the moment there is no way to see if Leste has been loaded entirely or not. It means that once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness).
(Note: using a fast microsd card, overclock, custom transitions.ini file and using xorg at 16bpp make Leste running as fast as Fremantle at 850-900MHz now)
=== Social messaging ===
Conversations app is compatible with libpurple and irc/bitlbee server.
Twitter, Signal, Telegram, FB Messenger and others are working.
(most audio and video links are playable)
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== Running Xorg at 16bpp ===
It is at the moment just a workaround but running Xorg using 16bpp make N900 faster and smoother. The CPU usage is better.
As root:
<code>nano /usr/share/X11/xorg.conf.d/99-omap.conf.leste</code>
Add this line in Section "Screen":
<code>DefaultDepth 16</code>
Then reboot.
Warning: qml is not working at the moment at 16bpp.
=== More SWAP / SWAP activation ===
To enable swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre>
(Note: emmc swap is faster than sd card swap)
Other possibility: create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using few tweaks-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Retroarch ===
'''First things to do:'''
Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre>
menu_driver = "glui"
menu_show_core_updater = "true"
video_driver = "gl"
video_vsync = "true"
menu_unified_control = "true"
menu_core_enable = "true"
quick_menu_show_options = "true"
'''Some emulators are working well:
'''
- QuickNES (NES/Famicom)
- Snes9x 2005 (SNES/Super Famicom)
Others at 70-80% speed:
- Genesis Plus GX (SEGA MS/GG/MD/CD)
Go to Online Updater / Core Updater to download emulators
'''Retroarch recommended settings:'''
To avoid crashes, use only "glui" Menu Driver
'''Driver'''
Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null"
'''Video'''
Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no",
'''Audio'''
Audio Enable "no"
'''Input''' (very important)
Unified Menu Controls "yes"
Input User 1 Binds (keyboard settings)
'''Directory''' (very important)
Core "/home/user"
'''Default keyboard keys'''
'''X''' validate/ok
'''C''' cancel/back
'''F''' fullscreen (never close Retroarch in fullscreen mode)
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.48 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 850MHz (stable), Turbo mode works
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Conversations UI
|-
| Phone calls || Yes || Works well using ofono scripts, UCM support, some integration and bug fixing still remains with Sphone, sound is good. Works in 2G, 3G and 3.5G mode, low latency.
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
1172d74e04789161ec7cd5af06b96d786cb0f66b
1573
1572
2023-11-22T08:38:24Z
Arno11
61
/* SD Card and first boot */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes/WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster:
250-500-600-720-850MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp6-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x02 >;
turbo-mode;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, SDXC U3 microsd cards seem ideal. Class10 U1 cards are too slow to run Leste on N900.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
WARNING: at the moment there is no way to see if Leste has been loaded entirely or not. It means that once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness).
=== Social messaging ===
Conversations app is compatible with libpurple and irc/bitlbee server.
Twitter, Signal, Telegram, FB Messenger and others are working.
(most audio and video links are playable)
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== Running Xorg at 16bpp ===
It is at the moment just a workaround but running Xorg using 16bpp make N900 faster and smoother. The CPU usage is better.
As root:
<code>nano /usr/share/X11/xorg.conf.d/99-omap.conf.leste</code>
Add this line in Section "Screen":
<code>DefaultDepth 16</code>
Then reboot.
Warning: qml is not working at the moment at 16bpp.
=== More SWAP / SWAP activation ===
To enable swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre>
(Note: emmc swap is faster than sd card swap)
Other possibility: create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using few tweaks-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Retroarch ===
'''First things to do:'''
Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre>
menu_driver = "glui"
menu_show_core_updater = "true"
video_driver = "gl"
video_vsync = "true"
menu_unified_control = "true"
menu_core_enable = "true"
quick_menu_show_options = "true"
'''Some emulators are working well:
'''
- QuickNES (NES/Famicom)
- Snes9x 2005 (SNES/Super Famicom)
Others at 70-80% speed:
- Genesis Plus GX (SEGA MS/GG/MD/CD)
Go to Online Updater / Core Updater to download emulators
'''Retroarch recommended settings:'''
To avoid crashes, use only "glui" Menu Driver
'''Driver'''
Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null"
'''Video'''
Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no",
'''Audio'''
Audio Enable "no"
'''Input''' (very important)
Unified Menu Controls "yes"
Input User 1 Binds (keyboard settings)
'''Directory''' (very important)
Core "/home/user"
'''Default keyboard keys'''
'''X''' validate/ok
'''C''' cancel/back
'''F''' fullscreen (never close Retroarch in fullscreen mode)
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.48 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 850MHz (stable), Turbo mode works
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Conversations UI
|-
| Phone calls || Yes || Works well using ofono scripts, UCM support, some integration and bug fixing still remains with Sphone, sound is good. Works in 2G, 3G and 3.5G mode, low latency.
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
37e24970358eeb57387299701cf0eb798c0b078f
1574
1573
2023-11-22T14:07:12Z
Arno11
61
/* Overclocking */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes/WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster:
250-500-600-720-850MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
('''Note:''' overclocking will be integrated in kernel 6.6 and be available using boost mode in cpufreq out of the box)
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, SDXC U3 microsd cards seem ideal. Class10 U1 cards are too slow to run Leste on N900.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
WARNING: at the moment there is no way to see if Leste has been loaded entirely or not. It means that once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness).
=== Social messaging ===
Conversations app is compatible with libpurple and irc/bitlbee server.
Twitter, Signal, Telegram, FB Messenger and others are working.
(most audio and video links are playable)
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== Running Xorg at 16bpp ===
It is at the moment just a workaround but running Xorg using 16bpp make N900 faster and smoother. The CPU usage is better.
As root:
<code>nano /usr/share/X11/xorg.conf.d/99-omap.conf.leste</code>
Add this line in Section "Screen":
<code>DefaultDepth 16</code>
Then reboot.
Warning: qml is not working at the moment at 16bpp.
=== More SWAP / SWAP activation ===
To enable swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre>
(Note: emmc swap is faster than sd card swap)
Other possibility: create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using few tweaks-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Retroarch ===
'''First things to do:'''
Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre>
menu_driver = "glui"
menu_show_core_updater = "true"
video_driver = "gl"
video_vsync = "true"
menu_unified_control = "true"
menu_core_enable = "true"
quick_menu_show_options = "true"
'''Some emulators are working well:
'''
- QuickNES (NES/Famicom)
- Snes9x 2005 (SNES/Super Famicom)
Others at 70-80% speed:
- Genesis Plus GX (SEGA MS/GG/MD/CD)
Go to Online Updater / Core Updater to download emulators
'''Retroarch recommended settings:'''
To avoid crashes, use only "glui" Menu Driver
'''Driver'''
Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null"
'''Video'''
Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no",
'''Audio'''
Audio Enable "no"
'''Input''' (very important)
Unified Menu Controls "yes"
Input User 1 Binds (keyboard settings)
'''Directory''' (very important)
Core "/home/user"
'''Default keyboard keys'''
'''X''' validate/ok
'''C''' cancel/back
'''F''' fullscreen (never close Retroarch in fullscreen mode)
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.48 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 850MHz (stable), Turbo mode works
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Conversations UI
|-
| Phone calls || Yes || Works well using ofono scripts, UCM support, some integration and bug fixing still remains with Sphone, sound is good. Works in 2G, 3G and 3.5G mode, low latency.
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
83a1e890032dd318ba7523e6b22fb22df157d7a0
1575
1574
2023-11-22T14:10:22Z
Arno11
61
/* SD Card and first boot */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes/WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster:
250-500-600-720-850MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
('''Note:''' overclocking will be integrated in kernel 6.6 and be available using boost mode in cpufreq out of the box)
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, using SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
WARNING: at the moment there is no way to see if Leste has been loaded entirely or not. It means that once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness).
=== Social messaging ===
Conversations app is compatible with libpurple and irc/bitlbee server.
Twitter, Signal, Telegram, FB Messenger and others are working.
(most audio and video links are playable)
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== Running Xorg at 16bpp ===
It is at the moment just a workaround but running Xorg using 16bpp make N900 faster and smoother. The CPU usage is better.
As root:
<code>nano /usr/share/X11/xorg.conf.d/99-omap.conf.leste</code>
Add this line in Section "Screen":
<code>DefaultDepth 16</code>
Then reboot.
Warning: qml is not working at the moment at 16bpp.
=== More SWAP / SWAP activation ===
To enable swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre>
(Note: emmc swap is faster than sd card swap)
Other possibility: create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using few tweaks-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Retroarch ===
'''First things to do:'''
Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre>
menu_driver = "glui"
menu_show_core_updater = "true"
video_driver = "gl"
video_vsync = "true"
menu_unified_control = "true"
menu_core_enable = "true"
quick_menu_show_options = "true"
'''Some emulators are working well:
'''
- QuickNES (NES/Famicom)
- Snes9x 2005 (SNES/Super Famicom)
Others at 70-80% speed:
- Genesis Plus GX (SEGA MS/GG/MD/CD)
Go to Online Updater / Core Updater to download emulators
'''Retroarch recommended settings:'''
To avoid crashes, use only "glui" Menu Driver
'''Driver'''
Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null"
'''Video'''
Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no",
'''Audio'''
Audio Enable "no"
'''Input''' (very important)
Unified Menu Controls "yes"
Input User 1 Binds (keyboard settings)
'''Directory''' (very important)
Core "/home/user"
'''Default keyboard keys'''
'''X''' validate/ok
'''C''' cancel/back
'''F''' fullscreen (never close Retroarch in fullscreen mode)
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.48 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 850MHz (stable), Turbo mode works
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Conversations UI
|-
| Phone calls || Yes || Works well using ofono scripts, UCM support, some integration and bug fixing still remains with Sphone, sound is good. Works in 2G, 3G and 3.5G mode, low latency.
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
ae3b3c36fa6840e6de1d4bd815e6e3cfd23aa413
1576
1575
2023-11-22T14:11:52Z
Arno11
61
/* Running Xorg at 16bpp */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes/WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster:
250-500-600-720-850MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
('''Note:''' overclocking will be integrated in kernel 6.6 and be available using boost mode in cpufreq out of the box)
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, using SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
WARNING: at the moment there is no way to see if Leste has been loaded entirely or not. It means that once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness).
=== Social messaging ===
Conversations app is compatible with libpurple and irc/bitlbee server.
Twitter, Signal, Telegram, FB Messenger and others are working.
(most audio and video links are playable)
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== Running Xorg at 16bpp ===
It is at the moment just a workaround but running Xorg using 16bpp make N900 faster and smoother.
As root:
<code>nano /usr/share/X11/xorg.conf.d/99-omap.conf.leste</code>
Add this line in Section "Screen":
<code>DefaultDepth 16</code>
Then reboot.
Warning: qml is not working at the moment at 16bpp.
=== More SWAP / SWAP activation ===
To enable swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre>
(Note: emmc swap is faster than sd card swap)
Other possibility: create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using few tweaks-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Retroarch ===
'''First things to do:'''
Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre>
menu_driver = "glui"
menu_show_core_updater = "true"
video_driver = "gl"
video_vsync = "true"
menu_unified_control = "true"
menu_core_enable = "true"
quick_menu_show_options = "true"
'''Some emulators are working well:
'''
- QuickNES (NES/Famicom)
- Snes9x 2005 (SNES/Super Famicom)
Others at 70-80% speed:
- Genesis Plus GX (SEGA MS/GG/MD/CD)
Go to Online Updater / Core Updater to download emulators
'''Retroarch recommended settings:'''
To avoid crashes, use only "glui" Menu Driver
'''Driver'''
Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null"
'''Video'''
Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no",
'''Audio'''
Audio Enable "no"
'''Input''' (very important)
Unified Menu Controls "yes"
Input User 1 Binds (keyboard settings)
'''Directory''' (very important)
Core "/home/user"
'''Default keyboard keys'''
'''X''' validate/ok
'''C''' cancel/back
'''F''' fullscreen (never close Retroarch in fullscreen mode)
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.48 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 850MHz (stable), Turbo mode works
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Conversations UI
|-
| Phone calls || Yes || Works well using ofono scripts, UCM support, some integration and bug fixing still remains with Sphone, sound is good. Works in 2G, 3G and 3.5G mode, low latency.
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
497dad7b0f1ff773d59f8c3671086cf09e3871d3
1577
1576
2023-11-22T14:17:40Z
Arno11
61
/* SD Card and first boot */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes/WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster:
250-500-600-720-850MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
('''Note:''' overclocking will be integrated in kernel 6.6 and be available using boost mode in cpufreq out of the box)
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, using SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
WARNING: at the moment there is no way to see if Leste has been loaded entirely or not. It means that once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness).
('''Note:''' it is recommended to dist-upgrade to -devel to enable more features)
=== Social messaging ===
Conversations app is compatible with libpurple and irc/bitlbee server.
Twitter, Signal, Telegram, FB Messenger and others are working.
(most audio and video links are playable)
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== Running Xorg at 16bpp ===
It is at the moment just a workaround but running Xorg using 16bpp make N900 faster and smoother.
As root:
<code>nano /usr/share/X11/xorg.conf.d/99-omap.conf.leste</code>
Add this line in Section "Screen":
<code>DefaultDepth 16</code>
Then reboot.
Warning: qml is not working at the moment at 16bpp.
=== More SWAP / SWAP activation ===
To enable swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre>
(Note: emmc swap is faster than sd card swap)
Other possibility: create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using few tweaks-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Retroarch ===
'''First things to do:'''
Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre>
menu_driver = "glui"
menu_show_core_updater = "true"
video_driver = "gl"
video_vsync = "true"
menu_unified_control = "true"
menu_core_enable = "true"
quick_menu_show_options = "true"
'''Some emulators are working well:
'''
- QuickNES (NES/Famicom)
- Snes9x 2005 (SNES/Super Famicom)
Others at 70-80% speed:
- Genesis Plus GX (SEGA MS/GG/MD/CD)
Go to Online Updater / Core Updater to download emulators
'''Retroarch recommended settings:'''
To avoid crashes, use only "glui" Menu Driver
'''Driver'''
Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null"
'''Video'''
Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no",
'''Audio'''
Audio Enable "no"
'''Input''' (very important)
Unified Menu Controls "yes"
Input User 1 Binds (keyboard settings)
'''Directory''' (very important)
Core "/home/user"
'''Default keyboard keys'''
'''X''' validate/ok
'''C''' cancel/back
'''F''' fullscreen (never close Retroarch in fullscreen mode)
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.48 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 850MHz (stable), Turbo mode works
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Conversations UI
|-
| Phone calls || Yes || Works well using ofono scripts, UCM support, some integration and bug fixing still remains with Sphone, sound is good. Works in 2G, 3G and 3.5G mode, low latency.
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
07d0499eaa937f8048610d664637220e539bd24d
1578
1577
2023-11-22T14:20:31Z
Arno11
61
/* Web browsing */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes/WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster:
250-500-600-720-850MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
('''Note:''' overclocking will be integrated in kernel 6.6 and be available using boost mode in cpufreq out of the box)
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, using SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
WARNING: at the moment there is no way to see if Leste has been loaded entirely or not. It means that once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness).
('''Note:''' it is recommended to dist-upgrade to -devel to enable more features)
=== Social messaging ===
Conversations app is compatible with libpurple and irc/bitlbee server.
Twitter, Signal, Telegram, FB Messenger and others are working.
(most audio and video links are playable)
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== Running Xorg at 16bpp ===
It is at the moment just a workaround but running Xorg using 16bpp make N900 faster and smoother.
As root:
<code>nano /usr/share/X11/xorg.conf.d/99-omap.conf.leste</code>
Add this line in Section "Screen":
<code>DefaultDepth 16</code>
Then reboot.
Warning: qml is not working at the moment at 16bpp.
=== More SWAP / SWAP activation ===
To enable swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre>
(Note: emmc swap is faster than sd card swap)
Other possibility: create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Retroarch ===
'''First things to do:'''
Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre>
menu_driver = "glui"
menu_show_core_updater = "true"
video_driver = "gl"
video_vsync = "true"
menu_unified_control = "true"
menu_core_enable = "true"
quick_menu_show_options = "true"
'''Some emulators are working well:
'''
- QuickNES (NES/Famicom)
- Snes9x 2005 (SNES/Super Famicom)
Others at 70-80% speed:
- Genesis Plus GX (SEGA MS/GG/MD/CD)
Go to Online Updater / Core Updater to download emulators
'''Retroarch recommended settings:'''
To avoid crashes, use only "glui" Menu Driver
'''Driver'''
Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null"
'''Video'''
Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no",
'''Audio'''
Audio Enable "no"
'''Input''' (very important)
Unified Menu Controls "yes"
Input User 1 Binds (keyboard settings)
'''Directory''' (very important)
Core "/home/user"
'''Default keyboard keys'''
'''X''' validate/ok
'''C''' cancel/back
'''F''' fullscreen (never close Retroarch in fullscreen mode)
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.48 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 850MHz (stable), Turbo mode works
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Conversations UI
|-
| Phone calls || Yes || Works well using ofono scripts, UCM support, some integration and bug fixing still remains with Sphone, sound is good. Works in 2G, 3G and 3.5G mode, low latency.
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
15770c7b16b9e498dbbcaf25873da2d68fecc6c8
1579
1578
2023-11-23T16:28:55Z
Arno11
61
/* Tips / Tweaks */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes/WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster:
250-500-600-720-850MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
('''Note:''' overclocking will be integrated in kernel 6.6 and be available using boost mode in cpufreq out of the box)
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, using SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
WARNING: at the moment there is no way to see if Leste has been loaded entirely or not. It means that once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness).
('''Note:''' it is recommended to dist-upgrade to -devel to enable more features)
=== More SWAP / SWAP activation ===
To enable swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre>
(Note: eMMC swap is recommended and faster than SD card swap)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Running Xorg at 16bpp ===
It is at the moment just a workaround but running Xorg using 16bpp make N900 faster and smoother.
As root:
<code>nano /usr/share/X11/xorg.conf.d/99-omap.conf.leste</code>
Add this line in Section "Screen":
<code>DefaultDepth 16</code>
Then reboot.
Warning: qml is not working at the moment at 16bpp.
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Retroarch ===
'''First things to do:'''
Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre>
menu_driver = "glui"
menu_show_core_updater = "true"
video_driver = "gl"
video_vsync = "true"
menu_unified_control = "true"
menu_core_enable = "true"
quick_menu_show_options = "true"
'''Some emulators are working well:
'''
- QuickNES (NES/Famicom)
- Snes9x 2005 (SNES/Super Famicom)
Others at 70-80% speed:
- Genesis Plus GX (SEGA MS/GG/MD/CD)
Go to Online Updater / Core Updater to download emulators
'''Retroarch recommended settings:'''
To avoid crashes, use only "glui" Menu Driver
'''Driver'''
Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null"
'''Video'''
Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no",
'''Audio'''
Audio Enable "no"
'''Input''' (very important)
Unified Menu Controls "yes"
Input User 1 Binds (keyboard settings)
'''Directory''' (very important)
Core "/home/user"
'''Default keyboard keys'''
'''X''' validate/ok
'''C''' cancel/back
'''F''' fullscreen (never close Retroarch in fullscreen mode)
=== Social messaging ===
Conversations app is compatible with libpurple and irc/bitlbee server.
Twitter, Signal, Telegram, FB Messenger and others are working.
(most audio and video links are playable)
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.48 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 850MHz (stable), Turbo mode works
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Conversations UI
|-
| Phone calls || Yes || Works well using ofono scripts, UCM support, some integration and bug fixing still remains with Sphone, sound is good. Works in 2G, 3G and 3.5G mode, low latency.
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
bbddca7665fc31a9d0d9d7a4b4d25632de7b2dc2
1580
1579
2023-11-23T16:40:30Z
Arno11
61
/* Status table */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes/WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster:
250-500-600-720-850MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
('''Note:''' overclocking will be integrated in kernel 6.6 and be available using boost mode in cpufreq out of the box)
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, using SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
WARNING: at the moment there is no way to see if Leste has been loaded entirely or not. It means that once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness).
('''Note:''' it is recommended to dist-upgrade to -devel to enable more features)
=== More SWAP / SWAP activation ===
To enable swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre>
(Note: eMMC swap is recommended and faster than SD card swap)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Running Xorg at 16bpp ===
It is at the moment just a workaround but running Xorg using 16bpp make N900 faster and smoother.
As root:
<code>nano /usr/share/X11/xorg.conf.d/99-omap.conf.leste</code>
Add this line in Section "Screen":
<code>DefaultDepth 16</code>
Then reboot.
Warning: qml is not working at the moment at 16bpp.
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Retroarch ===
'''First things to do:'''
Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre>
menu_driver = "glui"
menu_show_core_updater = "true"
video_driver = "gl"
video_vsync = "true"
menu_unified_control = "true"
menu_core_enable = "true"
quick_menu_show_options = "true"
'''Some emulators are working well:
'''
- QuickNES (NES/Famicom)
- Snes9x 2005 (SNES/Super Famicom)
Others at 70-80% speed:
- Genesis Plus GX (SEGA MS/GG/MD/CD)
Go to Online Updater / Core Updater to download emulators
'''Retroarch recommended settings:'''
To avoid crashes, use only "glui" Menu Driver
'''Driver'''
Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null"
'''Video'''
Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no",
'''Audio'''
Audio Enable "no"
'''Input''' (very important)
Unified Menu Controls "yes"
Input User 1 Binds (keyboard settings)
'''Directory''' (very important)
Core "/home/user"
'''Default keyboard keys'''
'''X''' validate/ok
'''C''' cancel/back
'''F''' fullscreen (never close Retroarch in fullscreen mode)
=== Social messaging ===
Conversations app is compatible with libpurple and irc/bitlbee server.
Twitter, Signal, Telegram, FB Messenger and others are working.
(most audio and video links are playable)
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.48 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 850MHz (stable), Turbo mode works
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Sphone
|-
| Phone calls || Yes || Works well using ofono scripts, UCM support, some integration remains with Sphone, sound is good. Works in 2G, 3G and 3.5G mode, low and stable latency.
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
b67ff476239a564d8d45dd38523ec6e981534382
1581
1580
2023-11-23T16:44:35Z
Arno11
61
/* More SWAP / SWAP activation */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes/WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster:
250-500-600-720-850MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
('''Note:''' overclocking will be integrated in kernel 6.6 and be available using boost mode in cpufreq out of the box)
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, using SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
WARNING: at the moment there is no way to see if Leste has been loaded entirely or not. It means that once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness).
('''Note:''' it is recommended to dist-upgrade to -devel to enable more features)
=== More SWAP / SWAP activation ===
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre>
(Note: eMMC swap is recommended and faster than SD card swap)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Running Xorg at 16bpp ===
It is at the moment just a workaround but running Xorg using 16bpp make N900 faster and smoother.
As root:
<code>nano /usr/share/X11/xorg.conf.d/99-omap.conf.leste</code>
Add this line in Section "Screen":
<code>DefaultDepth 16</code>
Then reboot.
Warning: qml is not working at the moment at 16bpp.
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Retroarch ===
'''First things to do:'''
Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre>
menu_driver = "glui"
menu_show_core_updater = "true"
video_driver = "gl"
video_vsync = "true"
menu_unified_control = "true"
menu_core_enable = "true"
quick_menu_show_options = "true"
'''Some emulators are working well:
'''
- QuickNES (NES/Famicom)
- Snes9x 2005 (SNES/Super Famicom)
Others at 70-80% speed:
- Genesis Plus GX (SEGA MS/GG/MD/CD)
Go to Online Updater / Core Updater to download emulators
'''Retroarch recommended settings:'''
To avoid crashes, use only "glui" Menu Driver
'''Driver'''
Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null"
'''Video'''
Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no",
'''Audio'''
Audio Enable "no"
'''Input''' (very important)
Unified Menu Controls "yes"
Input User 1 Binds (keyboard settings)
'''Directory''' (very important)
Core "/home/user"
'''Default keyboard keys'''
'''X''' validate/ok
'''C''' cancel/back
'''F''' fullscreen (never close Retroarch in fullscreen mode)
=== Social messaging ===
Conversations app is compatible with libpurple and irc/bitlbee server.
Twitter, Signal, Telegram, FB Messenger and others are working.
(most audio and video links are playable)
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.48 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 850MHz (stable), Turbo mode works
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Sphone
|-
| Phone calls || Yes || Works well using ofono scripts, UCM support, some integration remains with Sphone, sound is good. Works in 2G, 3G and 3.5G mode, low and stable latency.
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
30c7bd635853e73b87a2fdc64cedf8474789b0fa
1582
1581
2023-11-23T16:48:31Z
Arno11
61
/* More SWAP / SWAP activation */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes/WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster:
250-500-600-720-850MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
('''Note:''' overclocking will be integrated in kernel 6.6 and be available using boost mode in cpufreq out of the box)
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, using SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
WARNING: at the moment there is no way to see if Leste has been loaded entirely or not. It means that once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness).
('''Note:''' it is recommended to dist-upgrade to -devel to enable more features)
=== More SWAP / SWAP activation ===
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot)
(Note: eMMC swap is '''highly recommended''' and faster than SD card swap)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Running Xorg at 16bpp ===
It is at the moment just a workaround but running Xorg using 16bpp make N900 faster and smoother.
As root:
<code>nano /usr/share/X11/xorg.conf.d/99-omap.conf.leste</code>
Add this line in Section "Screen":
<code>DefaultDepth 16</code>
Then reboot.
Warning: qml is not working at the moment at 16bpp.
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Retroarch ===
'''First things to do:'''
Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre>
menu_driver = "glui"
menu_show_core_updater = "true"
video_driver = "gl"
video_vsync = "true"
menu_unified_control = "true"
menu_core_enable = "true"
quick_menu_show_options = "true"
'''Some emulators are working well:
'''
- QuickNES (NES/Famicom)
- Snes9x 2005 (SNES/Super Famicom)
Others at 70-80% speed:
- Genesis Plus GX (SEGA MS/GG/MD/CD)
Go to Online Updater / Core Updater to download emulators
'''Retroarch recommended settings:'''
To avoid crashes, use only "glui" Menu Driver
'''Driver'''
Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null"
'''Video'''
Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no",
'''Audio'''
Audio Enable "no"
'''Input''' (very important)
Unified Menu Controls "yes"
Input User 1 Binds (keyboard settings)
'''Directory''' (very important)
Core "/home/user"
'''Default keyboard keys'''
'''X''' validate/ok
'''C''' cancel/back
'''F''' fullscreen (never close Retroarch in fullscreen mode)
=== Social messaging ===
Conversations app is compatible with libpurple and irc/bitlbee server.
Twitter, Signal, Telegram, FB Messenger and others are working.
(most audio and video links are playable)
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.48 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 850MHz (stable), Turbo mode works
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Sphone
|-
| Phone calls || Yes || Works well using ofono scripts, UCM support, some integration remains with Sphone, sound is good. Works in 2G, 3G and 3.5G mode, low and stable latency.
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
d77dc02fa5ac00bd442a6546cdcb8907042a7912
1583
1582
2023-11-23T16:59:06Z
Arno11
61
/* Tips / Tweaks */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes/WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster:
250-500-600-720-850MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
('''Note:''' overclocking will be integrated in kernel 6.6 and be available using boost mode in cpufreq out of the box)
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, using SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
WARNING: at the moment there is no way to see if Leste has been loaded entirely or not. It means that once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness).
('''Note:''' it is recommended to dist-upgrade to -devel to enable more features)
=== Deactivating apt-worker ===
Run:
<pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre>
=== More SWAP / SWAP activation ===
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot)
(Note: eMMC swap is '''highly recommended''' and faster than SD card swap)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Running Xorg at 16bpp ===
It is at the moment just a workaround but running Xorg using 16bpp make N900 faster and smoother.
As root:
<code>nano /usr/share/X11/xorg.conf.d/99-omap.conf.leste</code>
Add this line in Section "Screen":
<code>DefaultDepth 16</code>
Then reboot.
Warning: qml is not working at the moment at 16bpp.
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Retroarch ===
'''First things to do:'''
Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre>
menu_driver = "glui"
menu_show_core_updater = "true"
video_driver = "gl"
video_vsync = "true"
menu_unified_control = "true"
menu_core_enable = "true"
quick_menu_show_options = "true"
'''Some emulators are working well:
'''
- QuickNES (NES/Famicom)
- Snes9x 2005 (SNES/Super Famicom)
Others at 70-80% speed:
- Genesis Plus GX (SEGA MS/GG/MD/CD)
Go to Online Updater / Core Updater to download emulators
'''Retroarch recommended settings:'''
To avoid crashes, use only "glui" Menu Driver
'''Driver'''
Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null"
'''Video'''
Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no",
'''Audio'''
Audio Enable "no"
'''Input''' (very important)
Unified Menu Controls "yes"
Input User 1 Binds (keyboard settings)
'''Directory''' (very important)
Core "/home/user"
'''Default keyboard keys'''
'''X''' validate/ok
'''C''' cancel/back
'''F''' fullscreen (never close Retroarch in fullscreen mode)
=== Social messaging ===
Conversations app is compatible with libpurple and irc/bitlbee server.
Twitter, Signal, Telegram, FB Messenger and others are working.
(most audio and video links are playable)
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.48 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 850MHz (stable), Turbo mode works
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Sphone
|-
| Phone calls || Yes || Works well using ofono scripts, UCM support, some integration remains with Sphone, sound is good. Works in 2G, 3G and 3.5G mode, low and stable latency.
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
29d756391cf8d77f8f13b26ea4d4758d984d7ae8
1584
1583
2023-11-23T17:04:59Z
Arno11
61
/* Tips / Tweaks */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes/WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster:
250-500-600-720-850MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
('''Note:''' overclocking will be integrated in kernel 6.6 and be available using boost mode in cpufreq out of the box)
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, using SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
WARNING: at the moment there is no way to see if Leste has been loaded entirely or not. It means that once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness).
('''Note:''' it is recommended to dist-upgrade to -devel to enable more features)
=== Deactivating apt-worker ===
Run:
<pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre>
=== Removing 125MHz CPU frequency (no overclock) ===
Replace 125000 by 250000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre>
=== More SWAP / SWAP activation ===
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot)
(Note: eMMC swap is '''highly recommended''' and faster than SD card swap)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Running Xorg at 16bpp ===
It is at the moment just a workaround but running Xorg using 16bpp make N900 faster and smoother.
As root:
<code>nano /usr/share/X11/xorg.conf.d/99-omap.conf.leste</code>
Add this line in Section "Screen":
<code>DefaultDepth 16</code>
Then reboot.
Warning: qml is not working at the moment at 16bpp.
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Retroarch ===
'''First things to do:'''
Edit <pre>/home/user/.config/retroarch/retroarch.cfg</pre>
menu_driver = "glui"
menu_show_core_updater = "true"
video_driver = "gl"
video_vsync = "true"
menu_unified_control = "true"
menu_core_enable = "true"
quick_menu_show_options = "true"
'''Some emulators are working well:
'''
- QuickNES (NES/Famicom)
- Snes9x 2005 (SNES/Super Famicom)
Others at 70-80% speed:
- Genesis Plus GX (SEGA MS/GG/MD/CD)
Go to Online Updater / Core Updater to download emulators
'''Retroarch recommended settings:'''
To avoid crashes, use only "glui" Menu Driver
'''Driver'''
Input driver "X", joypad driver "linuxraw", video driver "gl", audio driver "null", location driver "null"
'''Video'''
Aspect ratio "core provided", Integer scaler "no", Threaded Video "yes", Vertical Sync "yes", Hard gpu Sync "no",
'''Audio'''
Audio Enable "no"
'''Input''' (very important)
Unified Menu Controls "yes"
Input User 1 Binds (keyboard settings)
'''Directory''' (very important)
Core "/home/user"
'''Default keyboard keys'''
'''X''' validate/ok
'''C''' cancel/back
'''F''' fullscreen (never close Retroarch in fullscreen mode)
=== Social messaging ===
Conversations app is compatible with libpurple and irc/bitlbee server.
Twitter, Signal, Telegram, FB Messenger and others are working.
(most audio and video links are playable)
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.48 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 850MHz (stable), Turbo mode works
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Sphone
|-
| Phone calls || Yes || Works well using ofono scripts, UCM support, some integration remains with Sphone, sound is good. Works in 2G, 3G and 3.5G mode, low and stable latency.
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
7cb88b28839fd7d458477f80a77d84ddeaf471c8
1585
1584
2023-11-23T17:10:06Z
Arno11
61
/* Tips / Tweaks */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes/WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster:
250-500-600-720-850MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
('''Note:''' overclocking will be integrated in kernel 6.6 and be available using boost mode in cpufreq out of the box)
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, using SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
WARNING: at the moment there is no way to see if Leste has been loaded entirely or not. It means that once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness).
('''Note:''' it is recommended to dist-upgrade to -devel to enable more features)
=== Deactivating apt-worker ===
Run:
<pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre>
=== Removing 125MHz CPU frequency (no overclock) ===
Replace 125000 by 250000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre>
=== More SWAP / SWAP activation ===
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot)
(Note: eMMC swap is '''highly recommended''' and faster than SD card swap)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Running Xorg at 16bpp ===
It is at the moment just a workaround but running Xorg using 16bpp make N900 faster and smoother.
As root:
<code>nano /usr/share/X11/xorg.conf.d/99-omap.conf.leste</code>
Add this line in Section "Screen":
<code>DefaultDepth 16</code>
Then reboot.
Warning: qml is not working at the moment at 16bpp.
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.48 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 850MHz (stable), Turbo mode works
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Sphone
|-
| Phone calls || Yes || Works well using ofono scripts, UCM support, some integration remains with Sphone, sound is good. Works in 2G, 3G and 3.5G mode, low and stable latency.
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
651c6de2696f95b17aea6ab848b13614f53268ab
1586
1585
2023-11-23T18:45:49Z
Arno11
61
/* Running Xorg at 16bpp */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes/WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster:
250-500-600-720-850MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
('''Note:''' overclocking will be integrated in kernel 6.6 and be available using boost mode in cpufreq out of the box)
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, using SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
WARNING: at the moment there is no way to see if Leste has been loaded entirely or not. It means that once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness).
('''Note:''' it is recommended to dist-upgrade to -devel to enable more features)
=== Deactivating apt-worker ===
Run:
<pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre>
=== Removing 125MHz CPU frequency (no overclock) ===
Replace 125000 by 250000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre>
=== More SWAP / SWAP activation ===
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot)
(Note: eMMC swap is '''highly recommended''' and faster than SD card swap)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Running Xorg at 16bpp ===
It is at the moment just a workaround but running Xorg using 16bpp make N900 faster and smoother.
As root:
<code>nano /usr/share/X11/xorg.conf.d/99-omap.conf.leste</code>
Add this line in Section "Screen":
<code>DefaultDepth 16</code>
Then reboot.
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.48 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 850MHz (stable), Turbo mode works
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Sphone
|-
| Phone calls || Yes || Works well using ofono scripts, UCM support, some integration remains with Sphone, sound is good. Works in 2G, 3G and 3.5G mode, low and stable latency.
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
18fcf527b97fa6d890d3b1014eec93b5bd24f28d
1587
1586
2023-11-25T17:47:48Z
Arno11
61
/* Tips / Tweaks */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes/WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster:
250-500-600-720-850MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
('''Note:''' overclocking will be integrated in kernel 6.6 and be available using boost mode in cpufreq out of the box)
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, using SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
WARNING: at the moment there is no way to see if Leste has been loaded entirely or not. It means that once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness).
('''Note:''' it is recommended to dist-upgrade to -devel to enable more features)
=== Deactivating apt-worker ===
Run:
<pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre>
=== Removing 125MHz CPU frequency (no overclock) ===
Install cpufrequtils.
Replace 125000 by 250000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre>
=== More SWAP / SWAP activation ===
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot)
(Note: eMMC swap is '''highly recommended''' and faster than SD card swap)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Running Xorg at 16bpp ===
It is at the moment just a workaround but running Xorg using 16bpp make N900 faster and smoother.
As root:
<code>nano /usr/share/X11/xorg.conf.d/99-omap.conf.leste</code>
Add this line in Section "Screen":
<code>DefaultDepth 16</code>
Then reboot.
('''Note:''' OpenMediaPlayer is not working using 16bpp but MPlayer/SMPlayer works fine)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Voice Calls / SIP Calls ===
- Dist-upgrade to -devel (not working without)
- Edit /etc/pulse/daemon.conf and add these 3 lines:
<code>resample-method = speex-fixed-2</code>
<code>default-sample-rate = 48000</code>
<code>alternate-sample-rate = 44100</code>
('''Note:''' these 3 lines make SIP calls working through Twinkle app)
Then reboot.
-run:
<code>DISPLAY=:0.0 sudo nice -n -20 /usr/bin/cmt_pulse</code>
This command starts cmtspeech and voice calls are ready to use.
('''Note:''' Swap activation, removing 125MHz freq and transitions tweaks are recommended)
This is a temporary process for testers.
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.48 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 850MHz (stable), Turbo mode works
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Sphone
|-
| Phone calls || Yes || Works well using ofono scripts, UCM support, some integration remains with Sphone, sound is good. Works in 2G, 3G and 3.5G mode, low and stable latency.
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
5348b73ec418705dc90ec884586f8bfa5f0d549c
1588
1587
2023-11-25T17:57:22Z
Arno11
61
/* Voice Calls / SIP Calls */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes/WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster:
250-500-600-720-850MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
('''Note:''' overclocking will be integrated in kernel 6.6 and be available using boost mode in cpufreq out of the box)
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, using SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
WARNING: at the moment there is no way to see if Leste has been loaded entirely or not. It means that once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness).
('''Note:''' it is recommended to dist-upgrade to -devel to enable more features)
=== Deactivating apt-worker ===
Run:
<pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre>
=== Removing 125MHz CPU frequency (no overclock) ===
Install cpufrequtils.
Replace 125000 by 250000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre>
=== More SWAP / SWAP activation ===
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot)
(Note: eMMC swap is '''highly recommended''' and faster than SD card swap)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Running Xorg at 16bpp ===
It is at the moment just a workaround but running Xorg using 16bpp make N900 faster and smoother.
As root:
<code>nano /usr/share/X11/xorg.conf.d/99-omap.conf.leste</code>
Add this line in Section "Screen":
<code>DefaultDepth 16</code>
Then reboot.
('''Note:''' OpenMediaPlayer is not working using 16bpp but MPlayer/SMPlayer works fine)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Voice Calls / SIP Calls ===
- Dist-upgrade to -devel (not working without)
- Edit /etc/pulse/daemon.conf and add these 3 lines:
<code>resample-method = speex-fixed-2</code>
<code>default-sample-rate = 48000</code>
<code>alternate-sample-rate = 44100</code>
('''Note:''' these 3 lines make SIP calls working through Twinkle app)
Then reboot.
-run:
<code>DISPLAY=:0.0 sudo nice -n -20 /usr/bin/cmt_pulse</code>
This command starts cmtspeech and voice calls are ready to use.
If sound is distorted, run:
<code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code>
('''Note:''' Swap activation, removing 125MHz freq and transitions tweaks are recommended)
This is a temporary process for testers.
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.48 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 850MHz (stable), Turbo mode works
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Sphone
|-
| Phone calls || Yes || Works well using ofono scripts, UCM support, some integration remains with Sphone, sound is good. Works in 2G, 3G and 3.5G mode, low and stable latency.
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
629eb946fbacfe2db7162a1cb282162bb4446cb5
1589
1588
2023-11-25T17:58:46Z
Arno11
61
/* SD Card and first boot */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes/WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster:
250-500-600-720-850MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
('''Note:''' overclocking will be integrated in kernel 6.6 and be available using boost mode in cpufreq out of the box)
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
WARNING: at the moment there is no way to see if Leste has been loaded entirely or not. It means that once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness).
('''Note:''' it is recommended to dist-upgrade to -devel to enable more features)
=== Deactivating apt-worker ===
Run:
<pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre>
=== Removing 125MHz CPU frequency (no overclock) ===
Install cpufrequtils.
Replace 125000 by 250000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre>
=== More SWAP / SWAP activation ===
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot)
(Note: eMMC swap is '''highly recommended''' and faster than SD card swap)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Running Xorg at 16bpp ===
It is at the moment just a workaround but running Xorg using 16bpp make N900 faster and smoother.
As root:
<code>nano /usr/share/X11/xorg.conf.d/99-omap.conf.leste</code>
Add this line in Section "Screen":
<code>DefaultDepth 16</code>
Then reboot.
('''Note:''' OpenMediaPlayer is not working using 16bpp but MPlayer/SMPlayer works fine)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Voice Calls / SIP Calls ===
- Dist-upgrade to -devel (not working without)
- Edit /etc/pulse/daemon.conf and add these 3 lines:
<code>resample-method = speex-fixed-2</code>
<code>default-sample-rate = 48000</code>
<code>alternate-sample-rate = 44100</code>
('''Note:''' these 3 lines make SIP calls working through Twinkle app)
Then reboot.
-run:
<code>DISPLAY=:0.0 sudo nice -n -20 /usr/bin/cmt_pulse</code>
This command starts cmtspeech and voice calls are ready to use.
If sound is distorted, run:
<code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code>
('''Note:''' Swap activation, removing 125MHz freq and transitions tweaks are recommended)
This is a temporary process for testers.
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.48 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 850MHz (stable), Turbo mode works
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Sphone
|-
| Phone calls || Yes || Works well using ofono scripts, UCM support, some integration remains with Sphone, sound is good. Works in 2G, 3G and 3.5G mode, low and stable latency.
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
0399362357b2a95f6cfb5938e6577e2ace0b5acb
1590
1589
2023-12-02T18:42:12Z
Arno11
61
/* Voice Calls / SIP Calls */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes/WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster:
250-500-600-720-850MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
('''Note:''' overclocking will be integrated in kernel 6.6 and be available using boost mode in cpufreq out of the box)
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
WARNING: at the moment there is no way to see if Leste has been loaded entirely or not. It means that once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness).
('''Note:''' it is recommended to dist-upgrade to -devel to enable more features)
=== Deactivating apt-worker ===
Run:
<pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre>
=== Removing 125MHz CPU frequency (no overclock) ===
Install cpufrequtils.
Replace 125000 by 250000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre>
=== More SWAP / SWAP activation ===
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot)
(Note: eMMC swap is '''highly recommended''' and faster than SD card swap)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Running Xorg at 16bpp ===
It is at the moment just a workaround but running Xorg using 16bpp make N900 faster and smoother.
As root:
<code>nano /usr/share/X11/xorg.conf.d/99-omap.conf.leste</code>
Add this line in Section "Screen":
<code>DefaultDepth 16</code>
Then reboot.
('''Note:''' OpenMediaPlayer is not working using 16bpp but MPlayer/SMPlayer works fine)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Voice Calls / SIP Calls ===
- Dist-upgrade to -devel (not working without)
Now SIP calls and messages are working out of the box using Twinkle.
To make voice calls work:
-run:
<code>/usr/bin/cmt_pulse</code>
This command starts cmtspeech and voice calls are ready to use.
If sound is distorted, run:
<code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code>
('''Note:''' Swap activation, removing 125MHz freq and transitions tweaks are recommended)
This is a temporary process for testers.
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.48 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 850MHz (stable), Turbo mode works
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono and Sphone
|-
| Phone calls || Yes || Works well using ofono scripts, UCM support, some integration remains with Sphone, sound is good. Works in 2G, 3G and 3.5G mode, low and stable latency.
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
6f00463c66a7dd69807e44c624d3e0dbc42c87aa
1591
1590
2023-12-03T11:30:18Z
Arno11
61
/* Status table */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes/WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster:
250-500-600-720-850MHz
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
('''Note:''' overclocking will be integrated in kernel 6.6 and be available using boost mode in cpufreq out of the box)
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
WARNING: at the moment there is no way to see if Leste has been loaded entirely or not. It means that once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness).
('''Note:''' it is recommended to dist-upgrade to -devel to enable more features)
=== Deactivating apt-worker ===
Run:
<pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre>
=== Removing 125MHz CPU frequency (no overclock) ===
Install cpufrequtils.
Replace 125000 by 250000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre>
=== More SWAP / SWAP activation ===
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot)
(Note: eMMC swap is '''highly recommended''' and faster than SD card swap)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Running Xorg at 16bpp ===
It is at the moment just a workaround but running Xorg using 16bpp make N900 faster and smoother.
As root:
<code>nano /usr/share/X11/xorg.conf.d/99-omap.conf.leste</code>
Add this line in Section "Screen":
<code>DefaultDepth 16</code>
Then reboot.
('''Note:''' OpenMediaPlayer is not working using 16bpp but MPlayer/SMPlayer works fine)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Voice Calls / SIP Calls ===
- Dist-upgrade to -devel (not working without)
Now SIP calls and messages are working out of the box using Twinkle.
To make voice calls work:
-run:
<code>/usr/bin/cmt_pulse</code>
This command starts cmtspeech and voice calls are ready to use.
If sound is distorted, run:
<code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code>
('''Note:''' Swap activation, removing 125MHz freq and transitions tweaks are recommended)
This is a temporary process for testers.
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.48 / 6.1.9 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 850MHz (stable), Turbo mode works
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono scripts and Sphone
|-
| Phone calls || Yes || Works well using ofono scripts, UCM support, some integration remains with Sphone (too slow ATM), sound is good. Works in 2G, 3G and 3.5G mode, low and stable latency. After entering your PIN code, run /usr/bin/cmt_pulse
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
a14fc094840ed0e221308e73c157ed3ddbed0b23
1592
1591
2023-12-14T07:32:36Z
Arno11
61
/* Overclocking */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes/WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
'''Overclocking is now available in -devel using cpufreq boost.'''
It uses 250-500-600-720-805-850MHz frequencies
To enable it, edit:
<code>/sys/devices/system/cpu/cpufreq/boost</code>
And replace 0 by 1.
It is possible to customise max/min/available frequencies editing files in:
<code>/sys/devices/system/cpu/cpu0/cpufreq/</code>
'''No other steps are needed and updates/upgrades work with boost mode.'''
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Overclocking - Old method for testing purpose ==
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table for example:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
WARNING: at the moment there is no way to see if Leste has been loaded entirely or not. It means that once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness).
('''Note:''' it is recommended to dist-upgrade to -devel to enable more features)
=== Deactivating apt-worker ===
Run:
<pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre>
=== Removing 125MHz CPU frequency (no overclock) ===
Install cpufrequtils.
Replace 125000 by 250000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre>
=== More SWAP / SWAP activation ===
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot)
(Note: eMMC swap is '''highly recommended''' and faster than SD card swap)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Running Xorg at 16bpp ===
It is at the moment just a workaround but running Xorg using 16bpp make N900 faster and smoother.
As root:
<code>nano /usr/share/X11/xorg.conf.d/99-omap.conf.leste</code>
Add this line in Section "Screen":
<code>DefaultDepth 16</code>
Then reboot.
('''Note:''' OpenMediaPlayer is not working using 16bpp but MPlayer/SMPlayer works fine)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Voice Calls / SIP Calls ===
- Dist-upgrade to -devel (not working without)
Now SIP calls and messages are working out of the box using Twinkle.
To make voice calls work:
-run:
<code>/usr/bin/cmt_pulse</code>
This command starts cmtspeech and voice calls are ready to use.
If sound is distorted, run:
<code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code>
('''Note:''' Swap activation, removing 125MHz freq and transitions tweaks are recommended)
This is a temporary process for testers.
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.48 / 6.1.9 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 850MHz (stable), Turbo mode works
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono scripts and Sphone
|-
| Phone calls || Yes || Works well using ofono scripts, UCM support, some integration remains with Sphone (too slow ATM), sound is good. Works in 2G, 3G and 3.5G mode, low and stable latency. After entering your PIN code, run /usr/bin/cmt_pulse
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
d4af9e8a9362e64dbf03101201eea29e00864638
1593
1592
2023-12-14T07:36:09Z
Arno11
61
/* SD Card and first boot */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes/WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
'''Overclocking is now available in -devel using cpufreq boost.'''
It uses 250-500-600-720-805-850MHz frequencies
To enable it, edit:
<code>/sys/devices/system/cpu/cpufreq/boost</code>
And replace 0 by 1.
It is possible to customise max/min/available frequencies editing files in:
<code>/sys/devices/system/cpu/cpu0/cpufreq/</code>
'''No other steps are needed and updates/upgrades work with boost mode.'''
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Overclocking - Old method for testing purpose ==
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table for example:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
WARNING: Once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness).
('''Note:''' it is recommended to dist-upgrade to -devel to enable more features)
=== Deactivating apt-worker ===
Run:
<pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre>
=== Removing 125MHz CPU frequency (no overclock) ===
Install cpufrequtils.
Replace 125000 by 250000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre>
=== More SWAP / SWAP activation ===
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot)
(Note: eMMC swap is '''highly recommended''' and faster than SD card swap)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Running Xorg at 16bpp ===
It is at the moment just a workaround but running Xorg using 16bpp make N900 faster and smoother.
As root:
<code>nano /usr/share/X11/xorg.conf.d/99-omap.conf.leste</code>
Add this line in Section "Screen":
<code>DefaultDepth 16</code>
Then reboot.
('''Note:''' OpenMediaPlayer is not working using 16bpp but MPlayer/SMPlayer works fine)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Voice Calls / SIP Calls ===
- Dist-upgrade to -devel (not working without)
Now SIP calls and messages are working out of the box using Twinkle.
To make voice calls work:
-run:
<code>/usr/bin/cmt_pulse</code>
This command starts cmtspeech and voice calls are ready to use.
If sound is distorted, run:
<code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code>
('''Note:''' Swap activation, removing 125MHz freq and transitions tweaks are recommended)
This is a temporary process for testers.
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.48 / 6.1.9 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 850MHz (stable), Turbo mode works
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono scripts and Sphone
|-
| Phone calls || Yes || Works well using ofono scripts, UCM support, some integration remains with Sphone (too slow ATM), sound is good. Works in 2G, 3G and 3.5G mode, low and stable latency. After entering your PIN code, run /usr/bin/cmt_pulse
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
ef5316c4c55b1a5be2e498344f282eb2bdb9a87b
1594
1593
2023-12-14T07:38:14Z
Arno11
61
/* Removing 125MHz CPU frequency (no overclock) */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes/WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
'''Overclocking is now available in -devel using cpufreq boost.'''
It uses 250-500-600-720-805-850MHz frequencies
To enable it, edit:
<code>/sys/devices/system/cpu/cpufreq/boost</code>
And replace 0 by 1.
It is possible to customise max/min/available frequencies editing files in:
<code>/sys/devices/system/cpu/cpu0/cpufreq/</code>
'''No other steps are needed and updates/upgrades work with boost mode.'''
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Overclocking - Old method for testing purpose ==
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table for example:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
WARNING: Once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness).
('''Note:''' it is recommended to dist-upgrade to -devel to enable more features)
=== Deactivating apt-worker ===
Run:
<pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre>
=== Removing 250MHz CPU frequency ===
Install cpufrequtils.
Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre>
=== More SWAP / SWAP activation ===
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot)
(Note: eMMC swap is '''highly recommended''' and faster than SD card swap)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Running Xorg at 16bpp ===
It is at the moment just a workaround but running Xorg using 16bpp make N900 faster and smoother.
As root:
<code>nano /usr/share/X11/xorg.conf.d/99-omap.conf.leste</code>
Add this line in Section "Screen":
<code>DefaultDepth 16</code>
Then reboot.
('''Note:''' OpenMediaPlayer is not working using 16bpp but MPlayer/SMPlayer works fine)
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Voice Calls / SIP Calls ===
- Dist-upgrade to -devel (not working without)
Now SIP calls and messages are working out of the box using Twinkle.
To make voice calls work:
-run:
<code>/usr/bin/cmt_pulse</code>
This command starts cmtspeech and voice calls are ready to use.
If sound is distorted, run:
<code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code>
('''Note:''' Swap activation, removing 125MHz freq and transitions tweaks are recommended)
This is a temporary process for testers.
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.48 / 6.1.9 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 850MHz (stable), Turbo mode works
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono scripts and Sphone
|-
| Phone calls || Yes || Works well using ofono scripts, UCM support, some integration remains with Sphone (too slow ATM), sound is good. Works in 2G, 3G and 3.5G mode, low and stable latency. After entering your PIN code, run /usr/bin/cmt_pulse
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
bcc76627adaac50b462a77264f4b74ff6ff660be
1595
1594
2023-12-14T07:39:16Z
Arno11
61
/* Running Xorg at 16bpp */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes/WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
'''Overclocking is now available in -devel using cpufreq boost.'''
It uses 250-500-600-720-805-850MHz frequencies
To enable it, edit:
<code>/sys/devices/system/cpu/cpufreq/boost</code>
And replace 0 by 1.
It is possible to customise max/min/available frequencies editing files in:
<code>/sys/devices/system/cpu/cpu0/cpufreq/</code>
'''No other steps are needed and updates/upgrades work with boost mode.'''
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Overclocking - Old method for testing purpose ==
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table for example:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
WARNING: Once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness).
('''Note:''' it is recommended to dist-upgrade to -devel to enable more features)
=== Deactivating apt-worker ===
Run:
<pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre>
=== Removing 250MHz CPU frequency ===
Install cpufrequtils.
Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre>
=== More SWAP / SWAP activation ===
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot)
(Note: eMMC swap is '''highly recommended''' and faster than SD card swap)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Running Xorg at 16bpp ===
It is at the moment just a workaround but running Xorg using 16bpp make N900 faster and smoother.
As root:
<code>nano /usr/share/X11/xorg.conf.d/99-omap.conf.leste</code>
Add this line in Section "Screen":
<code>DefaultDepth 16</code>
Then reboot.
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Voice Calls / SIP Calls ===
- Dist-upgrade to -devel (not working without)
Now SIP calls and messages are working out of the box using Twinkle.
To make voice calls work:
-run:
<code>/usr/bin/cmt_pulse</code>
This command starts cmtspeech and voice calls are ready to use.
If sound is distorted, run:
<code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code>
('''Note:''' Swap activation, removing 125MHz freq and transitions tweaks are recommended)
This is a temporary process for testers.
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.48 / 6.1.9 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 850MHz (stable), Turbo mode works
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono scripts and Sphone
|-
| Phone calls || Yes || Works well using ofono scripts, UCM support, some integration remains with Sphone (too slow ATM), sound is good. Works in 2G, 3G and 3.5G mode, low and stable latency. After entering your PIN code, run /usr/bin/cmt_pulse
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
32ff1e5eeb8898313e7ab6c5934f943c0e52182f
Virtual Machine
0
60
1549
1418
2023-07-20T18:54:00Z
Sicelo
5
/* VirtualBox */
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Generic
|codename=
|dimensions=
|release_date=
|soc=
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
Generic virtual machine target. This is particularly useful when doing development and testing.
== Installation ==
https://maedevu.maemo.org/images/virtual-machines/
There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration.
Converting the qcow2 image to raw allows it to be used on real hardware.
=== VirtualBox ===
Download latest .vdi.xz image, unpack it with "xz -d" command.
Create new Virtual Machine, select "Debian (64-bit)" and 1024MB RAM. Use the downloaded file as virtual hard disk.
You are done!
==== Mouse ====
Since the UI is meant for touchscreens, it does not show the mouse by default. If it does not appear in the VM, you can change the Pointing Device to "USB Tablet" under "System > Motherboard" settings. Additionally, you may have to disable Virtualbox mouse integration
=== QEMU ===
In general something like:
qemu-system-x86_64 -hda maemo-leste-1.0-amd64.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024
should work. But there seem to be issues with some QEMU versions, for more details see [https://github.com/maemo-leste/bugtracker/issues/198 issue#198].
To set up a port forward for SSH, add:
-nic user,hostfwd=tcp:127.0.0.1:7722-:22
And then log in like this (password: <code>toor</code>):
ssh root@localhost -p 7722
If the mouse pointer is grabbed and no cursor shows, you can add:
-usb -device usb-tablet
to the command line. Alternatively if that dose not work you can instead add:
-usb -device usb-mouse -machine vmport=off
If you have a USB modem you can also use that in QEMU. You can either use sudo to elevate your privileges to be able to use it:
sudo qemu-system-x86_64 -hda maemo-leste-1.0-amd64-virtual-20200324.qcow2 -enable-kvm -cpu host -smp cores=2 -m 1024 \
-nic user,hostfwd=tcp:127.0.0.1:7722-:22 \
-usb -device usb-ehci,id=ehci \
-device usb-host,bus=ehci.0,vendorid=0x0bdb,productid=0x193e
Or you can make a udev rule for your device. For example, with a Lenovo Ericsson N5321 gw you can create "/etc/udev/rules.d/45-n5321.rules" with this in it:
# Lenovo Ericsson N5321 gw simple udev rule
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="193e", \
MODE:="0666"
And then activate it by running these two commands as root:
# udevadm control --reload-rules
# udevadm trigger
Now you can run QEMU without the need for sudo!
=== virt-manager ===
Virt-manager can use multiple virtualisation backends via libvirt and its default is QEMU/KVM, allowing easy importing of the QEMU image.
The following tweaks need to be done when importing (before starting the instance) to ensure the qemu image works correctly.
* Change the disk driver from VirtIO to sata; there is an [https://github.com/maemo-leste/bugtracker/issues/291 outstanding bug] with how drives are mounted.
* In some situations changing from QVA to VGA may be required (see [https://github.com/maemo-leste/bugtracker/issues/291 the previously linked] issue.
* Make sure you have a USB (not ps/2) mouse configured
When the screensaver kicks in, press the virt-manager power button to unlock.
== Initial configuration ==
On the first run you may want to generate ssh host keys and set the timezone. To do so open the "X Terminal" application and run:
sudo -i
dpkg-reconfigure openssh-server
dpkg-reconfigure tzdata
Make the system up-to-date:
apt update
apt upgrade
apt install linux-image-amd64
reboot
To get networking to work (at least in virtualbox), launch a shell and do
sudo ifconfig eth0 up
sudo dhclient eth0
A fresh Maemo VM image will also lock the device screen by default. In Qemu this means the only way to gain access to the VM again is either via SSH or by sending the power button command. This happens after 30 seconds of no activity on the device. We recommend disabling this behaviour by going to the settings and then open the "display" applet - uncheck "Lock screen automatically".
== Connectivity ==
If you have a modem exposed to QEMU, you still need to do some steps manually to get connectivity.
First off you need to add the development APT repository to your APT sources:
# echo 'deb https://maedevu.maemo.org/leste beowulf-devel main contrib non-free' >> /etc/apt/sources.list
Now update and upgrade:
# apt update && apt upgrade
Then you can install these things:
# apt install ofono libicd-network-ofono connui-iapsettings-gprs connui-statusbar-cellular connui-home-cellular connui-cellular-settings connui-conndlgs-cellular
We need mdbus2 to manipulate oFono:
# wget http://ftp.nl.debian.org/debian/pool/main/m/mdbus/mdbus2_2.3.3-2_amd64.deb
# dpkg -i mdbus2_2.3.3-2_amd64.deb
Then we can check if oFono finds our modem:
# mdbus2 -s org.ofono
/
/bluetooth
/bluetooth/profile
/bluetooth/profile/dun_gw
/bluetooth/profile/hfp_ag
/bluetooth/profile/hfp_hf
/mbm_0
Then can check our mbm_0 modem:
# mdbus2 -s org.ofono /mbm_0
[METHOD] org.freedesktop.DBus.Introspectable.Introspect() -> (s:xml)
[METHOD] org.ofono.Modem.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.Modem.SetProperty(s:property, v:value) -> ()
[SIGNAL] org.ofono.Modem.PropertyChanged(s:name, v:value)
# mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.GetProperties
({'Online': <false>, 'Powered': <false>, 'Lockdown': <false>, 'Emergency': <false>, 'SystemPath': <'/sys/devices/pci0000:00/0000:00:04.0/usb1/1-1'>, 'Interfaces': <@as []>, 'Features': <@as []>, 'Type': <'hardware'>},)
Power on the modem:
# mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.SetProperty Powered true
()
# mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.GetProperties
({'Online': <false>, 'Powered': <true>, 'Lockdown': <false>, 'Emergency': <false>, 'Manufacturer': <'Lenovo'>, 'Model': <'N5321 gw'>, 'Revision': <'R3C11'>, 'Serial': <'xxxxxxxxxxxx'>, 'SystemPath': <'/sys/devices/pci0000:00/0000:00:04.0/usb1/1-1'>, 'Interfaces': <['org.ofono.SimManager']>, 'Features': <['sim']>, 'Type': <'hardware'>},)
Check if we need to enter a pin:
# mdbus2 -s org.ofono /mbm_0 org.ofono.SimManager.GetProperties
({'Present': <true>, 'CardIdentifier': <'xxxxxx'>, 'FixedDialing': <false>, 'BarredDialing': <false>, 'SubscriberNumbers': <@as []>, 'LockedPins': <['pin']>, 'PreferredLanguages': <['de', 'en', 'fr']>, 'PinRequired': <'pin'>, 'Retries': <{'pin': byte 0x03, 'pin2': 0x03, 'puk': 0x0a, 'puk2': 0x0a}>, 'CardSlotCount': <uint32 1>, 'ActiveCardSlot': <uint32 1>},)
If PinRequired is 'pin' we need to enter a pin to unlock the sim:
# mdbus2 -s org.ofono /mbm_0 org.ofono.SimManager.EnterPin pin 1234
()
Then we can bring the modem online:
# mdbus2 -s org.ofono /mbm_0 org.ofono.Modem.SetProperty Online true
()
If we now redo the first mdbus2 command on /mbm_0:
# mdbus2 -s org.ofono /mbm_0
[METHOD] org.freedesktop.DBus.Introspectable.Introspect() -> (s:xml)
[METHOD] org.ofono.Modem.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.Modem.SetProperty(s:property, v:value) -> ()
[SIGNAL] org.ofono.Modem.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.SimManager.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.SimManager.SetProperty(s:property, v:value) -> ()
[METHOD] org.ofono.SimManager.ChangePin(s:type, s:oldpin, s:newpin) -> ()
[METHOD] org.ofono.SimManager.EnterPin(s:type, s:pin) -> ()
[METHOD] org.ofono.SimManager.ResetPin(s:type, s:puk, s:newpin) -> ()
[METHOD] org.ofono.SimManager.LockPin(s:type, s:pin) -> ()
[METHOD] org.ofono.SimManager.UnlockPin(s:type, s:pin) -> ()
[METHOD] org.ofono.SimManager.GetIcon(y:id) -> (ay:icon)
[SIGNAL] org.ofono.SimManager.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.AllowedAccessPoints.GetAllowedAccessPoints() -> (as:apnlist)
[METHOD] org.ofono.SimAuthentication.GetApplications() -> (a{oa{sv}}:applications)
[METHOD] org.ofono.SimAuthentication.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.SimToolkit.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.SimToolkit.SelectItem(y:item, o:agent) -> ()
[METHOD] org.ofono.SimToolkit.RegisterAgent(o:path) -> ()
[METHOD] org.ofono.SimToolkit.UnregisterAgent(o:path) -> ()
[SIGNAL] org.ofono.SimToolkit.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.RadioSettings.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.RadioSettings.SetProperty(s:property, v:value) -> ()
[SIGNAL] org.ofono.RadioSettings.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.MessageManager.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.MessageManager.SetProperty(s:property, v:value) -> ()
[METHOD] org.ofono.MessageManager.SendMessage(s:to, s:text) -> (o:path)
[METHOD] org.ofono.MessageManager.GetMessages() -> (a(oa{sv}):messages)
[SIGNAL] org.ofono.MessageManager.PropertyChanged(s:name, v:value)
[SIGNAL] org.ofono.MessageManager.IncomingMessage(s:message, a{sv}:info)
[SIGNAL] org.ofono.MessageManager.ImmediateMessage(s:message, a{sv}:info)
[SIGNAL] org.ofono.MessageManager.MessageAdded(o:path, a{sv}:properties)
[SIGNAL] org.ofono.MessageManager.MessageRemoved(o:path)
[METHOD] org.ofono.PushNotification.RegisterAgent(o:path) -> ()
[METHOD] org.ofono.PushNotification.UnregisterAgent(o:path) -> ()
[METHOD] org.ofono.SmartMessaging.RegisterAgent(o:path) -> ()
[METHOD] org.ofono.SmartMessaging.UnregisterAgent(o:path) -> ()
[METHOD] org.ofono.SmartMessaging.SendBusinessCard(s:to, ay:card) -> (o:path)
[METHOD] org.ofono.SmartMessaging.SendAppointment(s:to, ay:appointment) -> (o:path)
[METHOD] org.ofono.LocationReporting.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.LocationReporting.Request() -> (h:fd)
[METHOD] org.ofono.LocationReporting.Release() -> ()
[SIGNAL] org.ofono.LocationReporting.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.SupplementaryServices.Initiate(s:command) -> (s:result_name, v:value)
[METHOD] org.ofono.SupplementaryServices.Respond(s:reply) -> (s:result)
[METHOD] org.ofono.SupplementaryServices.Cancel() -> ()
[METHOD] org.ofono.SupplementaryServices.GetProperties() -> (a{sv}:properties)
[SIGNAL] org.ofono.SupplementaryServices.NotificationReceived(s:message)
[SIGNAL] org.ofono.SupplementaryServices.RequestReceived(s:message)
[SIGNAL] org.ofono.SupplementaryServices.PropertyChanged(s:name, v:value)
[METHOD] org.ofono.CellBroadcast.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.CellBroadcast.SetProperty(s:property, v:value) -> ()
[SIGNAL] org.ofono.CellBroadcast.PropertyChanged(s:property, v:value)
[SIGNAL] org.ofono.CellBroadcast.IncomingBroadcast(s:message, q:channel)
[SIGNAL] org.ofono.CellBroadcast.EmergencyBroadcast(s:message, a{sv}:dict)
[METHOD] org.ofono.ConnectionManager.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.ConnectionManager.SetProperty(s:property, v:value) -> ()
[METHOD] org.ofono.ConnectionManager.AddContext(s:type) -> (o:path)
[METHOD] org.ofono.ConnectionManager.RemoveContext(o:path) -> ()
[METHOD] org.ofono.ConnectionManager.DeactivateAll() -> ()
[METHOD] org.ofono.ConnectionManager.GetContexts() -> (a(oa{sv}):contexts_with_properties)
[METHOD] org.ofono.ConnectionManager.ResetContexts() -> ()
[SIGNAL] org.ofono.ConnectionManager.PropertyChanged(s:name, v:value)
[SIGNAL] org.ofono.ConnectionManager.ContextAdded(o:path, a{sv}:properties)
[SIGNAL] org.ofono.ConnectionManager.ContextRemoved(o:path)
[METHOD] org.ofono.NetworkRegistration.GetProperties() -> (a{sv}:properties)
[METHOD] org.ofono.NetworkRegistration.Register() -> ()
[METHOD] org.ofono.NetworkRegistration.GetOperators() -> (a(oa{sv}):operators_with_properties)
[METHOD] org.ofono.NetworkRegistration.Scan() -> (a(oa{sv}):operators_with_properties)
[SIGNAL] org.ofono.NetworkRegistration.PropertyChanged(s:name, v:value)
[[Category:Device]]
86492143f7c26df2908bf69cee282c619ada4f50
Tweaking
0
104
1550
986
2023-07-20T18:55:19Z
Sicelo
5
/* Switch clock display to 24h - no longer needed. UI supports */
wikitext
text/x-wiki
Maemo Leste is very tweakable/hackable/versatile, this page lists some of the things you could change, hopefully grouped in a meaningful manner.
==== Prevent autoremoval of downloaded .deb files ====
The tool 'apt' as an alternative to apt-get uses different configuration.
To prevent apt from auto-deleting downloaded .deb packages do this:
<pre>echo 'Binary::apt::APT::Keep-Downloaded-Packages "true";' \ > /etc/apt/apt.conf.d/01keep-debs</pre>
===== GConf Settings =====
==== Show current gconf settings ====
<pre>gconftool-2 -R / |less</pre>
<pre>gconftool -S \* |less</pre>
==== Battery icon ====
You can change the animation of the charging icon to show the current charge capacity:
<pre>gconftool-2 -s /apps/osso/status-area-applet-battery/show_charge_charging -t bool true</pre> [edit] ''This doesn't do anything for me - clort''
==== Disable screen rotate ====
You can lock screen orientation to the current (disabling screen rotation) with
<pre>gconftool-2 -s /apps/osso/hildon-desktop/orientation_lock -t bool true</pre>
==== Prevent user rearranging of app menu ====
<pre>gconftool-2 -s /apps/osso/hildon-desktop/key-actions/disable_edit -t bool true</pre>
==== Hide toolbar at bottom of osso-xterm (to get more lines) ====
<pre>gconftool-2 -s /apps/osso/xterm/toolbar -t bool false</pre>
4459fcfd141642f484c1ef8dda32bb3fee29a2da
Main Page
0
1
1559
1353
2023-09-02T12:23:10Z
Wizzup
4
Beowulf->Chimaera
wikitext
text/x-wiki
== Description ==
Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, PinePhone, Allwinner Tablets and more.
You can find us on '''irc.libera.chat''', channel '''#maemo-leste''', you can [[IRC_channel|use Matrix]] to connect if you wish.
For an overview of the current status, you might want to check out: [[Status]]
Maemo Leste is based on Devuan Chimaera (Debian Chimaera) and all the "supported" devices ship with recent Linux (mainline-based) kernels.
The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers.
For some devices, we have development images available, such as the [[Nokia_N900]], the [[Motorola Droid 4]] and the [[PinePhone]]. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software.
If you have not used Maemo before, you might want to check out some of the tips on the [[HowTo]] page.
== Useful resources, lists and pages ==
* To get started with a new install, see [[Getting_Started|Getting Started]].
* Read our [[Leste_FAQ|Frequently Asked Questions]]
* List of [[:Category:Device]] with support to varying degrees
* Latest downloadable images: https://phoenix.maemo.org/view/Images/
* List of "extras" software packages that have a wiki page: https://leste.maemo.org/Category:Extras
* Read how to get started with [[Development]]
* You have an application you want to see in Leste? Please let us know [[Wishlist|here]].
* For a list of presentations/talks featuring Maemo Leste, see [[Talks]]
== Links ==
<div>
The central point of meeting and talking is '''IRC''' ('''irc.libera.chat''' in '''#maemo-leste''') and this thread: https://talk.maemo.org/showthread.php?t=100192.
* Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io]
* Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues]
* Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/]
* Our Github subdomain: [https://maemo-leste.github.io/ https://maemo-leste.github.io/]
* Our Extras Github: [https://github.com/maemo-leste-extras/ https://github.com/maemo-leste-extras/]
* Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] and https://phoenix.maemo.org/view/Images/
* Our Jenkins build server: [https://phoenix.maemo.org/ https://phoenix.maemo.org/]
* Our IRC chat history: [http://maedevu.maemo.org/irc.txt http://maedevu.maemo.org/irc.txt] and https://libera.irclog.whitequark.org/maemo-leste/ (previously: https://freenode.irclog.whitequark.org/maemo-leste/)
* Our YouTube channel: [https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w] (via [https://www.invidio.us/channel/UCgAWiHvWSuJAg5hjk7JYn1w Invidious] )
* Our Package index and info: [https://maedevu.maemo.org/pkgweb/ https://maedevu.maemo.org/pkgweb/] which runs [https://github.com/maemo-leste/mpi https://github.com/maemo-leste/mpi]
* Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
* Our Forum [https://talk.maemo.org/forumdisplay.php?f=66 https://talk.maemo.org/forumdisplay.php?f=66]
* RSS feed: [https://maemo-leste.github.io/feeds/all.atom.xml https://maemo-leste.github.io/feeds/all.atom.xml]
* Our Twitter: [https://twitter.com/maemoleste @maemoleste]
* Distrowatch: [https://distrowatch.com/dwres.php?resource=submit Maemo Leste] (give us an upvote)
</div>
3cf0a0b6c8d8c33f156eafecef24eb831a3bcbee
Category:Extras
14
138
1561
1021
2023-09-04T21:00:15Z
Halftux
7
Added extras repository link
wikitext
text/x-wiki
This page contains a list of packages in Maemo Leste Extras with wiki pages
To install packages from extras you need to add one of the following repositories according to the used release.
<code>
deb https://maedevu.maemo.org/extras beowulf main contrib non-free
deb https://maedevu.maemo.org/extras chimaera main contrib non-free
</code>
88243738e0c8075ceea6b11d1bc2061d470596a6
Motorola Droid 4
0
50
1566
1508
2023-10-20T11:04:00Z
Halftux
7
infobox device changes
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]
|manufacturer=Motorola
|codename=Maserati XT894
|dimensions=127x67.3x12.7mm
|release_date=2012-02-10
|soc=TI OMAP4430 <br>Cortex-A9 <br>Armv7‑A
|dram=1024MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=AK8975 compass, <br>LIS3DH accelerometer, <br>TMP105 temperature, <br>ISL29030 proximity and illuminance
|other=
|category=Supported
|sw_kernel=5.18.x
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Yes
|sw_usb_host=Yes
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=Yes
|sw_tv=
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=Yes
|sw_sms=Yes
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=Yes
|sw_4g=No
|sw_bluetooth=Yes, [[#Bluetooth|see notes]]
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=120mW
|sw_standbytime=
}}
== Installation ==
Hardware requirements:
* Droid4 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://maedevu.maemo.org/images/droid4/
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# flash-droid-4-fw.sh
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-mmcblk1p13.bin
# droid4-kexecboot.img
Check what kernel version your Android OS runs.
For this go to Settings -> About phone. Slide to the bottom, where you can see "Kernel version".
If you have at least 3.0.8, you may skip "Updating Android" step below.
Installation:
# Create a working directory with above mentioned files in it
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip
# Power off Droid4 and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
=== Updating Android ===
This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:
<pre>
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml
sudo bash ../flash-droid-4-fw.sh
popd
</pre>
=== Setting up kexecboot ===
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-mmcblk1p13.bin
sudo fastboot reboot
</pre>
If you did "Updating Android" the device should run the firstboot steps.
If you didn't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.
=== Install Maemo Leste to the sdcard ===
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab the latest image from https://phoenix.maemo.org/view/Images/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.
Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
The keyboard layout is extended to provide more standard keys.
[[File:Maemo-leste-droid4-kbd-2021-07.png|center|620px|thumb|maemo-leste droid4 keyboard]]
Key mapping can be tested with the 'xev' program.
It may be necessary to run the follow commands as root in order to get the OK key to function correctly (see [https://github.com/maemo-leste/bugtracker/issues/510#issuecomment-815618591 here]):
udevadm hwdb --update
udevadm trigger
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
While using the serial cable, if you lose the connection, the following may help:
<pre>
18:43 < tmlind> sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with
the console login propt later
18:45 < tmlind> try plugging in a pc usb cable then back to uart cable in case that might help
</pre>
== Bluetooth ==
Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded. So you should do:
<pre>
sudo apt install firmware-ti-connectivity
sudo modprobe hci_uart
sudo hciconfig hci0 up
sudo hcitool lescan
</pre>
== Stuff to try ==
==== Using a battery without temperature sensor ====
Modprobe the pmic driver as follows:
<pre>
cpcap-battery ignore_temperature_probe=1
</pre>
==== Flashing the boot logo ====
More info: https://github.com/xsetiadi/droid4-kexecboot/blob/master/LOGO
<pre>
15:04 < tmlind> Wizzup: i think the logo on droid4 can be flashed with fastboot flash logo logo.bin or something, can also be just written to logo partition from m-l
[snip]
09:24 < xsetiadi> https://github.com/xsetiadi/droid4-kexecboot/blob/master/logo.bin
09:25 < xsetiadi> becarefull, you can bootloop droid4 if you wrong flash partition
09:26 < xsetiadi> like i do last year
09:26 < xsetiadi> instead of flashing using command: fastboot flash logo.bin logo.bin i just flash it with command: fastboot flash logo logo.bin
</pre>
==== Blinkenlights ====
Adding this in rc.local above the ''exit 0'' gets you some blinkenlights to watschen und relaxen.
echo cpu > /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight
echo mmc0 > /sys/class/leds/shift-key-light/trigger # gets you a 'hdd led' of the SD card on the capslock light
==== USSD ====
<pre>
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1
22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8:
https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output
</pre>
==== HDMI ====
Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier.
<pre>
xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off
</pre>
Return to internal touchscreen display.
<pre>
xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off
</pre>
If one wants to mirror the screen on HDMI, this can be done like so, for landscape:
<pre>
xrandr --newmode "960x540_60.00" 40.75 960 992 1088 1216 540 543 548 562 -hsync +vsync
xrandr --addmode HDMI-1 "960x540_60.00"
xrandr --output HDMI-1 --mode "960x540_60.00" --same-as DSI-1
</pre>
For rotation, something like this might or might not work:
<pre>
xrandr --newmode "960x540_60.00ROT" 43.00 544 576 632 720 960 963 973 996 -hsync +vsync
xrandr --addmode HDMI-1 "960x540_60.00ROT"
xrandr --output HDMI-1 --mode "960x540_60.00" --same-as DSI-1 --rotate right
</pre>
==== Keyboard / Mouse sharing with PC ====
To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4.
<pre>
[https://github.com/debauchee/barrier Barrier software-KVM switch]
</pre>
Developers and testers may wish to disable the googley bits before compiling.
==== BT Audio headset ====
sudo apt install pulseaudio-module-bluetooth blueman bluez
sudo modprobe hci_uart
pactl load-module module-bluetooth-discover
blueman-manager
Pair & trust your device in blueman, connect audiosink. You can close blueman now. The quality seems a bit better in 'offline mode'.
==== Torch ====
The Droid 4 has a TI LM3559 flash torch controller. This provides flash functionality when taking pictures, usage as a torch, and provides privacy indication (in this mode, the LED flashes in a fast heartbeat pattern). A driver for it exists in mainline, but it requires some DTS work, since it is tied to a camera device.
If you want to use it in the meantime, direct i2c access can be used as follows (since this is direct access, be careful about each of the commands below):
<source>
##Install the prerequisites
$ sudo apt install i2c-tools
## Turn LED on in torch mode
$ sudo i2cset -y 2 0x53 0x10 0x1a
## Turn LED on in privacy indication mode
$ sudo i2cset -y 2 0x53 0x10 0x19
## Turn LED off (in any mode)
$ sudo i2cset -y 2 0x53 0x10 0x18
## Use LED for doing a hella bright flash for some time once and then turn off
$ sudo i2cset -y 2 0x53 0x10 0x1b
</source>
== Using a configured Leste sdcard in a different Droid4 ==
A configured Droid4 Leste installation is unique to the device that it was calibrated on. Particularly the wlan firmware calibration will be incorrect if an existing Leste installation is transferred to a different device.
The wifi calibration script requires a system set to stock settings to calibrate-from. It cannot just be re-run on an already calibrated system.
To recalibrate the wifi firmware on a different Droid4, you must reset the FEM parameters to stock settings on the new device, then recalibrate.
If you can get the device online (usb networking or moving close to the WLAN AP) this can be done with.
apt reinstall firmware-ti-connectivity
If not, you can download the firmware-ti-connectivity_[version]_all.deb on another Leste device
apt download firmware-ti-connectivity
Then copy the .deb to your new device and install that (as root) with
dpkg -i firmware-ti-connectivity_[version]_all.deb
Then (as root) re-calibrate the wifi chip by running
/usr/bin/maserati-calibrate
Then reboot.
== Gallery ==
<gallery>
Motorola-Droid4-20200125.jpeg
Droid4-neofetch.JPG
Droid4_htop.jpg
Droid4_leste_logo.jpg
Cant_have_2_much_leste.jpg
Leste-neverball.jpg
Statsfun.jpg
Leste-glmatrix.png
Droid4-leste-utox2.jpg
Droid4-leste-pcsx.jpg
Droid4-leste-surf_master.jpg
Droid4_Daimonin_Hdmi.jpg
</gallery>
== Old status overview ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]
|-
| Charging || Yes ||
|-
| Wireless || Yes ||
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || OTG and USB network
|-
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Implemented with Pulseaudio and UCM files
|-
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || No || Needs kernel work
|-
| SMS || Yes || Works with ofono. Needs Leste UI
|-
| Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI
|-
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded
|-
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers
|-
| FM Receiver || Not yet ||
|-
| Accelerometer || Yes || Available in /sys, and as input device via iio-uinput
|-
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)
|-
| Gyro || N/A ||
|-
| Proximity sensor || Yes ||
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || Yes || No UI integration
|-
| TV-out || N/A ||
|-
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]
|-
| Infrared || N/A || Missing in hardware
|-
| Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/
|-
| Idle power consumption || ~120mW || Needs sim inserted
|}
[[Category:Device]]
22eac0265be749283707a68a237a9a20b66c3370
Motorola Razr (2011)
0
209
1567
1435
2023-10-20T11:09:06Z
Halftux
7
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:XT910Lockscreen.jpg|250px]]
|manufacturer=Motorola
|codename=Spyder XT910, XT912
|dimensions=130x68.9x7.1mm
|release_date=11-11-11
|soc=TI OMAP4430 <br>Cortex-A9 <br>Armv7‑A
|dram=1024MB DDR2
|power=
|lcd=960x540 4.3"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=
|other=
|category=unsupported
|sw_kernel=6.1
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Yes
|sw_usb_host=Yes
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=Yes
|sw_tv=
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)
|sw_vibration=Unkown
|sw_audio=Unkown
|sw_calls=Unkown
|sw_sms=Unkown
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=Unkown
|sw_4g=No
|sw_bluetooth=Yes, [[#Bluetooth|see notes]]
|sw_fmtx=No
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=No
|sw_compass=No
|sw_gyro= No
|sw_proximity=Yes
|sw_als=No
|sw_gps=Unkown
|sw_agps=No
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=Unkown
|sw_standbytime=
}}
== Installation ==
Hardware requirements:
* A Razr or Droid Razr or Droid Razr MAXX with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux or Windows system
* Android Tools: fastboot
* get allow-mbmloader-flashing-mbm.bin for your device (xt910 or xt912) from an android update zip
* Flashing tools:
** XZ Utils and coreutils for Linux
** Etcher[https://github.com/balena-io/etcher] for Windows
Download from https://github.com/tmlind/droid4-kexecboot.git
# utags-xt910-16-mmcblk1p8-boots-mmcblk1p13-kexecboot.bin
# droid4-kexecboot.img
Installation:
# Create a working directory with above mentioned files in it
# Power off the Razr and connect it to the host machine with MicroUSB cable
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.
=== Setting up kexecboot ===
Now, assuming you are in the working directory, install kexecboot:
<pre>
sudo fastboot flash mbm allow-mbmloader-flashing-mbm.bin
sudo fastboot reboot-bootloader
sudo fastboot flash bpsw droid4-kexecboot.img
sudo fastboot flash utags utags-xt910-16-mmcblk1p8-boots-mmcblk1p13-kexecboot.bin
sudo fastboot reboot
</pre>
The device should reboot and show kexecboot menu for a few seconds before it boots to Android.
=== Install Maemo Leste to the sdcard ===
Now, flash the Maemo Leste image to your sdcard:
On Linux:
<pre>
xzcat maemo-leste-1.0-armhf-razr-$DATE.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
sync
</pre>
On Windows: Use Etcher
Wait for sync to complete and insert MicroSD card into the Razr. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
== Updating ==
Normally you can just apt update && apt dist-upgrade to update to the latest version. If for some reason this fails:
* Poweroff device, grab the SD card
* Backup any important files
* Grab the latest image from https://phoenix.maemo.org/view/Images/
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
== Notes ==
The battery in Razr is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Razr will then reboot.
== Serial Cable ==
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Razr, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
== Bluetooth ==
Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver (hci_uart) manually, AFTER wifi module loaded
Using a bluetooth headset:
sudo apt install pulseaudio-module-bluetooth blueman bluez
sudo modprobe hci_uart
pactl load-module module-bluetooth-discover
blueman-manager
Pair & trust your device in blueman, connect audiosink. You can close blueman now.
== Additional Tips ==
==== Using a battery without temperature sensor ====
Modprobe the pmic driver as follows:
<pre>
cpcap-battery ignore_temperature_probe=1
</pre>
==== Flashing the boot logo ====
More info: https://github.com/xsetiadi/droid4-kexecboot/blob/master/LOGO
logos can be flashed via fastboot flash logo.bin logo.bin
==== HDMI ====
Move output to external 1080p monitor. Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier.
<pre>
xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off
</pre>
Return to internal touchscreen display.
<pre>
xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off
</pre>
== Using a configured Leste sdcard in a different Razr ==
A configured Razr Leste installation will have a unique wlan firmware calibration. The wifi calibration script requires a system set to stock settings to calibrate-from. It cannot just be re-run on an already calibrated system.
To recalibrate the wifi firmware on a different Razr, you must reset the FEM parameters to stock settings on the new device, then recalibrate.
If you can get the device online (usb networking or moving close to the WLAN AP) this can be done with.
apt reinstall firmware-ti-connectivity
If not, you can download the firmware-ti-connectivity_[version]_all.deb on another Leste device
apt download firmware-ti-connectivity
Then copy the .deb to your new device and install that (as root) with
dpkg -i firmware-ti-connectivity_[version]_all.deb
Then (as root) re-calibrate the wifi chip by running
/usr/bin/maserati-calibrate
Then reboot.
[[Category:Device]]
9867c6b2f9c87829bd644fad33388ac4b41bad1d
Nokia N900
0
48
1596
1595
2023-12-14T07:42:27Z
Arno11
61
/* Voice Calls / SIP Calls */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes/WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
'''Overclocking is now available in -devel using cpufreq boost.'''
It uses 250-500-600-720-805-850MHz frequencies
To enable it, edit:
<code>/sys/devices/system/cpu/cpufreq/boost</code>
And replace 0 by 1.
It is possible to customise max/min/available frequencies editing files in:
<code>/sys/devices/system/cpu/cpu0/cpufreq/</code>
'''No other steps are needed and updates/upgrades work with boost mode.'''
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Overclocking - Old method for testing purpose ==
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table for example:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
WARNING: Once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness).
('''Note:''' it is recommended to dist-upgrade to -devel to enable more features)
=== Deactivating apt-worker ===
Run:
<pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre>
=== Removing 250MHz CPU frequency ===
Install cpufrequtils.
Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre>
=== More SWAP / SWAP activation ===
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot)
(Note: eMMC swap is '''highly recommended''' and faster than SD card swap)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Running Xorg at 16bpp ===
It is at the moment just a workaround but running Xorg using 16bpp make N900 faster and smoother.
As root:
<code>nano /usr/share/X11/xorg.conf.d/99-omap.conf.leste</code>
Add this line in Section "Screen":
<code>DefaultDepth 16</code>
Then reboot.
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Voice Calls / SIP Calls ===
- Dist-upgrade to -devel (not working without)
Now SIP calls and messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol)
To make voice calls work:
-run:
<code>/usr/bin/cmt_pulse</code>
This command starts cmtspeech and voice calls are ready to use.
If sound is distorted, run:
<code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code>
('''Note:''' Swap activation, removing 125MHz freq and transitions tweaks are recommended)
This is a temporary process for testers.
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.48 / 6.1.9 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 850MHz (stable), Turbo mode works
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono scripts and Sphone
|-
| Phone calls || Yes || Works well using ofono scripts, UCM support, some integration remains with Sphone (too slow ATM), sound is good. Works in 2G, 3G and 3.5G mode, low and stable latency. After entering your PIN code, run /usr/bin/cmt_pulse
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
ff620fa2d74cde385aaaa3bb9bc90a610a0595f3
1597
1596
2023-12-14T07:43:13Z
Arno11
61
/* Voice Calls / SIP Calls */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes/WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
'''Overclocking is now available in -devel using cpufreq boost.'''
It uses 250-500-600-720-805-850MHz frequencies
To enable it, edit:
<code>/sys/devices/system/cpu/cpufreq/boost</code>
And replace 0 by 1.
It is possible to customise max/min/available frequencies editing files in:
<code>/sys/devices/system/cpu/cpu0/cpufreq/</code>
'''No other steps are needed and updates/upgrades work with boost mode.'''
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Overclocking - Old method for testing purpose ==
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table for example:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
WARNING: Once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness).
('''Note:''' it is recommended to dist-upgrade to -devel to enable more features)
=== Deactivating apt-worker ===
Run:
<pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre>
=== Removing 250MHz CPU frequency ===
Install cpufrequtils.
Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre>
=== More SWAP / SWAP activation ===
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot)
(Note: eMMC swap is '''highly recommended''' and faster than SD card swap)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Running Xorg at 16bpp ===
It is at the moment just a workaround but running Xorg using 16bpp make N900 faster and smoother.
As root:
<code>nano /usr/share/X11/xorg.conf.d/99-omap.conf.leste</code>
Add this line in Section "Screen":
<code>DefaultDepth 16</code>
Then reboot.
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Voice Calls / SIP Calls ===
- Dist-upgrade to -devel (not working without)
Now SIP calls and messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol)
To make voice calls work:
-run:
<code>/usr/bin/cmt_pulse</code>
This command starts cmtspeech and voice calls are ready to use.
If sound is distorted, run:
<code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code>
('''Note:''' Swap activation and transitions tweaks are recommended)
This is a temporary process for testers.
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.48 / 6.1.9 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 850MHz (stable), Turbo mode works
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono scripts and Sphone
|-
| Phone calls || Yes || Works well using ofono scripts, UCM support, some integration remains with Sphone (too slow ATM), sound is good. Works in 2G, 3G and 3.5G mode, low and stable latency. After entering your PIN code, run /usr/bin/cmt_pulse
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
b16256d799ed528a032cb47278d4dfb42cc0f005
1598
1597
2023-12-14T07:43:47Z
Arno11
61
/* Status table */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes/WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
'''Overclocking is now available in -devel using cpufreq boost.'''
It uses 250-500-600-720-805-850MHz frequencies
To enable it, edit:
<code>/sys/devices/system/cpu/cpufreq/boost</code>
And replace 0 by 1.
It is possible to customise max/min/available frequencies editing files in:
<code>/sys/devices/system/cpu/cpu0/cpufreq/</code>
'''No other steps are needed and updates/upgrades work with boost mode.'''
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Overclocking - Old method for testing purpose ==
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table for example:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
WARNING: Once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness).
('''Note:''' it is recommended to dist-upgrade to -devel to enable more features)
=== Deactivating apt-worker ===
Run:
<pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre>
=== Removing 250MHz CPU frequency ===
Install cpufrequtils.
Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre>
=== More SWAP / SWAP activation ===
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot)
(Note: eMMC swap is '''highly recommended''' and faster than SD card swap)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Running Xorg at 16bpp ===
It is at the moment just a workaround but running Xorg using 16bpp make N900 faster and smoother.
As root:
<code>nano /usr/share/X11/xorg.conf.d/99-omap.conf.leste</code>
Add this line in Section "Screen":
<code>DefaultDepth 16</code>
Then reboot.
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Voice Calls / SIP Calls ===
- Dist-upgrade to -devel (not working without)
Now SIP calls and messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol)
To make voice calls work:
-run:
<code>/usr/bin/cmt_pulse</code>
This command starts cmtspeech and voice calls are ready to use.
If sound is distorted, run:
<code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code>
('''Note:''' Swap activation and transitions tweaks are recommended)
This is a temporary process for testers.
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.67 / 6.1.9 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 850MHz (stable), Turbo mode works
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono scripts and Sphone
|-
| Phone calls || Yes || Works well using ofono scripts, UCM support, some integration remains with Sphone (too slow ATM), sound is good. Works in 2G, 3G and 3.5G mode, low and stable latency. After entering your PIN code, run /usr/bin/cmt_pulse
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
5a9c3d47a4fbd77204b71f3030b0edf9f0360d9d
1599
1598
2023-12-16T11:42:15Z
Arno11
61
/* Voice Calls / SIP Calls */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes/WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
'''Overclocking is now available in -devel using cpufreq boost.'''
It uses 250-500-600-720-805-850MHz frequencies
To enable it, edit:
<code>/sys/devices/system/cpu/cpufreq/boost</code>
And replace 0 by 1.
It is possible to customise max/min/available frequencies editing files in:
<code>/sys/devices/system/cpu/cpu0/cpufreq/</code>
'''No other steps are needed and updates/upgrades work with boost mode.'''
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Overclocking - Old method for testing purpose ==
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table for example:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
WARNING: Once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness).
('''Note:''' it is recommended to dist-upgrade to -devel to enable more features)
=== Deactivating apt-worker ===
Run:
<pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre>
=== Removing 250MHz CPU frequency ===
Install cpufrequtils.
Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre>
=== More SWAP / SWAP activation ===
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot)
(Note: eMMC swap is '''highly recommended''' and faster than SD card swap)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Running Xorg at 16bpp ===
It is at the moment just a workaround but running Xorg using 16bpp make N900 faster and smoother.
As root:
<code>nano /usr/share/X11/xorg.conf.d/99-omap.conf.leste</code>
Add this line in Section "Screen":
<code>DefaultDepth 16</code>
Then reboot.
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Voice Calls / SIP Calls ===
- Dist-upgrade to -devel (not working without)
Now SIP calls and messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol)
To make voice calls work:
-run:
<code>/usr/bin/cmt_pulse</code>
This command starts cmtspeech and voice calls are ready to use.
If sound is distorted, run:
<code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code>
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.67 / 6.1.9 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 850MHz (stable), Turbo mode works
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono scripts and Sphone
|-
| Phone calls || Yes || Works well using ofono scripts, UCM support, some integration remains with Sphone (too slow ATM), sound is good. Works in 2G, 3G and 3.5G mode, low and stable latency. After entering your PIN code, run /usr/bin/cmt_pulse
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
beb2f26971cb5396c0d767dc0bcc1896b10131d2
1600
1599
2023-12-16T11:43:33Z
Arno11
61
/* Tips / Tweaks */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes/WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
'''Overclocking is now available in -devel using cpufreq boost.'''
It uses 250-500-600-720-805-850MHz frequencies
To enable it, edit:
<code>/sys/devices/system/cpu/cpufreq/boost</code>
And replace 0 by 1.
It is possible to customise max/min/available frequencies editing files in:
<code>/sys/devices/system/cpu/cpu0/cpufreq/</code>
'''No other steps are needed and updates/upgrades work with boost mode.'''
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Overclocking - Old method for testing purpose ==
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table for example:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
WARNING: Once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness).
('''Note:''' it is recommended to dist-upgrade to -devel to enable more features)
=== Deactivating apt-worker ===
Run:
<pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre>
=== Removing 250MHz CPU frequency ===
Install cpufrequtils.
Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre>
=== More SWAP / SWAP activation ===
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot)
(Note: eMMC swap is '''highly recommended''' and faster than SD card swap)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Voice Calls / SIP Calls ===
- Dist-upgrade to -devel (not working without)
Now SIP calls and messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol)
To make voice calls work:
-run:
<code>/usr/bin/cmt_pulse</code>
This command starts cmtspeech and voice calls are ready to use.
If sound is distorted, run:
<code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code>
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.67 / 6.1.9 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 850MHz (stable), Turbo mode works
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono scripts and Sphone
|-
| Phone calls || Yes || Works well using ofono scripts, UCM support, some integration remains with Sphone (too slow ATM), sound is good. Works in 2G, 3G and 3.5G mode, low and stable latency. After entering your PIN code, run /usr/bin/cmt_pulse
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
f3c74f91f786877eb1b5bbe0f05e92bb787618bc
1601
1600
2023-12-16T11:45:20Z
Arno11
61
/* Voice Calls / SIP Calls */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes/WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
'''Overclocking is now available in -devel using cpufreq boost.'''
It uses 250-500-600-720-805-850MHz frequencies
To enable it, edit:
<code>/sys/devices/system/cpu/cpufreq/boost</code>
And replace 0 by 1.
It is possible to customise max/min/available frequencies editing files in:
<code>/sys/devices/system/cpu/cpu0/cpufreq/</code>
'''No other steps are needed and updates/upgrades work with boost mode.'''
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Overclocking - Old method for testing purpose ==
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table for example:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
WARNING: Once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness).
('''Note:''' it is recommended to dist-upgrade to -devel to enable more features)
=== Deactivating apt-worker ===
Run:
<pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre>
=== Removing 250MHz CPU frequency ===
Install cpufrequtils.
Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre>
=== More SWAP / SWAP activation ===
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot)
(Note: eMMC swap is '''highly recommended''' and faster than SD card swap)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Voice Calls / SIP Calls ===
- Dist-upgrade to -devel (not working without)
Now SIP calls and messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol)
- To make voice calls work:
run:
<code>/usr/bin/cmt_pulse</code>
This command starts cmtspeech and voice calls are ready to use.
If sound is distorted, run:
<code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code>
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.67 / 6.1.9 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 850MHz (stable), Turbo mode works
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono scripts and Sphone
|-
| Phone calls || Yes || Works well using ofono scripts, UCM support, some integration remains with Sphone (too slow ATM), sound is good. Works in 2G, 3G and 3.5G mode, low and stable latency. After entering your PIN code, run /usr/bin/cmt_pulse
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
579f7581467964abf1e68ec3993485cb78f8a46e
1602
1601
2023-12-16T11:48:22Z
Arno11
61
/* Overclocking */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes/WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
'''Overclocking is now available in -devel using cpufreq boost.'''
It uses 250-500-550-600-720-805-850MHz frequencies
To enable it, edit:
<code>/sys/devices/system/cpu/cpufreq/boost</code>
And replace 0 by 1.
It is possible to customise max/min/available frequencies editing files in:
<code>/sys/devices/system/cpu/cpu0/cpufreq/</code>
'''No other steps are needed and updates/upgrades work with boost mode.'''
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Overclocking - Old method for testing purpose ==
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table for example:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
WARNING: Once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness).
('''Note:''' it is recommended to dist-upgrade to -devel to enable more features)
=== Deactivating apt-worker ===
Run:
<pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre>
=== Removing 250MHz CPU frequency ===
Install cpufrequtils.
Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre>
=== More SWAP / SWAP activation ===
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot)
(Note: eMMC swap is '''highly recommended''' and faster than SD card swap)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Voice Calls / SIP Calls ===
- Dist-upgrade to -devel (not working without)
Now SIP calls and messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol)
- To make voice calls work:
run:
<code>/usr/bin/cmt_pulse</code>
This command starts cmtspeech and voice calls are ready to use.
If sound is distorted, run:
<code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code>
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.67 / 6.1.9 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 850MHz (stable), Turbo mode works
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono scripts and Sphone
|-
| Phone calls || Yes || Works well using ofono scripts, UCM support, some integration remains with Sphone (too slow ATM), sound is good. Works in 2G, 3G and 3.5G mode, low and stable latency. After entering your PIN code, run /usr/bin/cmt_pulse
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
897af0ddcb7e71e8ca5a4e490351791e83dd73e2
1604
1602
2024-02-01T20:30:55Z
Arno11
61
/* Voice Calls / SIP Calls */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes/WIP
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
'''Overclocking is now available in -devel using cpufreq boost.'''
It uses 250-500-550-600-720-805-850MHz frequencies
To enable it, edit:
<code>/sys/devices/system/cpu/cpufreq/boost</code>
And replace 0 by 1.
It is possible to customise max/min/available frequencies editing files in:
<code>/sys/devices/system/cpu/cpu0/cpufreq/</code>
'''No other steps are needed and updates/upgrades work with boost mode.'''
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Overclocking - Old method for testing purpose ==
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table for example:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
WARNING: Once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness).
('''Note:''' it is recommended to dist-upgrade to -devel to enable more features)
=== Deactivating apt-worker ===
Run:
<pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre>
=== Removing 250MHz CPU frequency ===
Install cpufrequtils.
Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre>
=== More SWAP / SWAP activation ===
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot)
(Note: eMMC swap is '''highly recommended''' and faster than SD card swap)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Voice Calls / SIP Calls ===
- Dist-upgrade to -devel (not working without)
Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol)
Voice calls are now working out of the box as well.
If sound is distorted, run:
<code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code>
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.67 / 6.1.9 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 850MHz (stable), Turbo mode works
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono scripts and Sphone
|-
| Phone calls || Yes || Works well using ofono scripts, UCM support, some integration remains with Sphone (too slow ATM), sound is good. Works in 2G, 3G and 3.5G mode, low and stable latency. After entering your PIN code, run /usr/bin/cmt_pulse
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
a78982cefcef8e80c3c4ac970d8c21d0acb640d8
1605
1604
2024-02-01T20:32:25Z
Arno11
61
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
'''Overclocking is now available in -devel using cpufreq boost.'''
It uses 250-500-550-600-720-805-850MHz frequencies
To enable it, edit:
<code>/sys/devices/system/cpu/cpufreq/boost</code>
And replace 0 by 1.
It is possible to customise max/min/available frequencies editing files in:
<code>/sys/devices/system/cpu/cpu0/cpufreq/</code>
'''No other steps are needed and updates/upgrades work with boost mode.'''
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Overclocking - Old method for testing purpose ==
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table for example:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
WARNING: Once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness).
('''Note:''' it is recommended to dist-upgrade to -devel to enable more features)
=== Deactivating apt-worker ===
Run:
<pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre>
=== Removing 250MHz CPU frequency ===
Install cpufrequtils.
Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre>
=== More SWAP / SWAP activation ===
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot)
(Note: eMMC swap is '''highly recommended''' and faster than SD card swap)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Voice Calls / SIP Calls ===
- Dist-upgrade to -devel (not working without)
Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol)
Voice calls are now working out of the box as well.
If sound is distorted, run:
<code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code>
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.67 / 6.1.9 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 850MHz (stable), Turbo mode works
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with ofono scripts and Sphone
|-
| Phone calls || Yes || Works well using ofono scripts, UCM support, some integration remains with Sphone (too slow ATM), sound is good. Works in 2G, 3G and 3.5G mode, low and stable latency. After entering your PIN code, run /usr/bin/cmt_pulse
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
495ed0c731998b729ef8fc67e18cf231a7c43436
1606
1605
2024-02-01T21:15:15Z
Arno11
61
/* Status table */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
'''Overclocking is now available in -devel using cpufreq boost.'''
It uses 250-500-550-600-720-805-850MHz frequencies
To enable it, edit:
<code>/sys/devices/system/cpu/cpufreq/boost</code>
And replace 0 by 1.
It is possible to customise max/min/available frequencies editing files in:
<code>/sys/devices/system/cpu/cpu0/cpufreq/</code>
'''No other steps are needed and updates/upgrades work with boost mode.'''
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
== Overclocking - Old method for testing purpose ==
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table for example:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
WARNING: Once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness).
('''Note:''' it is recommended to dist-upgrade to -devel to enable more features)
=== Deactivating apt-worker ===
Run:
<pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre>
=== Removing 250MHz CPU frequency ===
Install cpufrequtils.
Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre>
=== More SWAP / SWAP activation ===
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot)
(Note: eMMC swap is '''highly recommended''' and faster than SD card swap)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Voice Calls / SIP Calls ===
- Dist-upgrade to -devel (not working without)
Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol)
Voice calls are now working out of the box as well.
If sound is distorted, run:
<code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code>
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.67 / 6.1.8 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 805MHz (stable), 850MHz is not working with all devices, Turbo mode works.
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer.
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with Sphone or ofono scripts. Conversations integration is WIP.
|-
| Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, low and stable latency. Works with Sphone.
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
a9e92d81314f1b3f2033a5a1ded23938e36f96cc
1607
1606
2024-02-02T18:55:46Z
Arno11
61
/* Overclocking */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
'''Overclocking is now available in -devel using cpufreq boost.'''
It uses 250-500-550-600-720-805-850MHz frequencies
To enable it, edit:
<code>/sys/devices/system/cpu/cpufreq/boost</code>
And replace 0 by 1.
It is possible to customise max/min/available frequencies editing files in:
<code>/sys/devices/system/cpu/cpu0/cpufreq/</code>
'''No other steps are needed and updates/upgrades work with boost mode.'''
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
'''WARNING: some devices can't run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor'''
== Overclocking - Old method for testing purpose ==
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table for example:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
WARNING: Once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness).
('''Note:''' it is recommended to dist-upgrade to -devel to enable more features)
=== Deactivating apt-worker ===
Run:
<pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre>
=== Removing 250MHz CPU frequency ===
Install cpufrequtils.
Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre>
=== More SWAP / SWAP activation ===
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot)
(Note: eMMC swap is '''highly recommended''' and faster than SD card swap)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Voice Calls / SIP Calls ===
- Dist-upgrade to -devel (not working without)
Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol)
Voice calls are now working out of the box as well.
If sound is distorted, run:
<code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code>
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.67 / 6.1.8 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 805MHz (stable), 850MHz is not working with all devices, Turbo mode works.
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer.
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with Sphone or ofono scripts. Conversations integration is WIP.
|-
| Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, low and stable latency. Works with Sphone.
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
af17de4d939dacbe7fa4afdc22218b22f237bf3c
1608
1607
2024-02-03T19:17:29Z
Arno11
61
/* Status table */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
'''Overclocking is now available in -devel using cpufreq boost.'''
It uses 250-500-550-600-720-805-850MHz frequencies
To enable it, edit:
<code>/sys/devices/system/cpu/cpufreq/boost</code>
And replace 0 by 1.
It is possible to customise max/min/available frequencies editing files in:
<code>/sys/devices/system/cpu/cpu0/cpufreq/</code>
'''No other steps are needed and updates/upgrades work with boost mode.'''
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
'''WARNING: some devices can't run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor'''
== Overclocking - Old method for testing purpose ==
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table for example:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible. In every cases it is very slow but normal. (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second/third boot (apt-worker starts automatically and N900 is unresponsive for 3 or 4 minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
WARNING: Once hildon-desktop is visible, please wait 1-2 minutes before using the device (and avoid slowness).
('''Note:''' it is recommended to dist-upgrade to -devel to enable more features)
=== Deactivating apt-worker ===
Run:
<pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre>
=== Removing 250MHz CPU frequency ===
Install cpufrequtils.
Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre>
=== More SWAP / SWAP activation ===
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot)
(Note: eMMC swap is '''highly recommended''' and faster than SD card swap)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Voice Calls / SIP Calls ===
- Dist-upgrade to -devel (not working without)
Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol)
Voice calls are now working out of the box as well.
If sound is distorted, run:
<code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code>
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.76 / 6.1.8 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 805MHz (stable), 850MHz is not working with all devices, Turbo mode works.
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer.
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with Sphone or ofono scripts. Conversations integration is WIP.
|-
| Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone.
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
8945212c85a44887b576a949dd27f4e264785f26
1610
1608
2024-02-15T02:29:49Z
Arno11
61
/* SD Card and first boot */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
'''Overclocking is now available in -devel using cpufreq boost.'''
It uses 250-500-550-600-720-805-850MHz frequencies
To enable it, edit:
<code>/sys/devices/system/cpu/cpufreq/boost</code>
And replace 0 by 1.
It is possible to customise max/min/available frequencies editing files in:
<code>/sys/devices/system/cpu/cpu0/cpufreq/</code>
'''No other steps are needed and updates/upgrades work with boost mode.'''
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
'''WARNING: some devices can't run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor'''
== Overclocking - Old method for testing purpose ==
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table for example:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
WARNING: Once hildon-desktop is (entirely) visible, please wait 1-2 minutes before using the device (and avoid slowness).
('''Note:''' it is recommended to dist-upgrade to -devel to enable more features)
=== Deactivating apt-worker ===
Run:
<pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre>
=== Removing 250MHz CPU frequency ===
Install cpufrequtils.
Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre>
=== More SWAP / SWAP activation ===
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot)
(Note: eMMC swap is '''highly recommended''' and faster than SD card swap)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Voice Calls / SIP Calls ===
- Dist-upgrade to -devel (not working without)
Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol)
Voice calls are now working out of the box as well.
If sound is distorted, run:
<code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code>
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.76 / 6.1.8 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 805MHz (stable), 850MHz is not working with all devices, Turbo mode works.
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer.
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with Sphone or ofono scripts. Conversations integration is WIP.
|-
| Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone.
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
414d9e20d4a5ef72eb05a94cc6afd4e0397f7e2f
1611
1610
2024-02-16T08:17:11Z
Arno11
61
/* SD Card and first boot */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
'''Overclocking is now available in -devel using cpufreq boost.'''
It uses 250-500-550-600-720-805-850MHz frequencies
To enable it, edit:
<code>/sys/devices/system/cpu/cpufreq/boost</code>
And replace 0 by 1.
It is possible to customise max/min/available frequencies editing files in:
<code>/sys/devices/system/cpu/cpu0/cpufreq/</code>
'''No other steps are needed and updates/upgrades work with boost mode.'''
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
'''WARNING: some devices can't run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor'''
== Overclocking - Old method for testing purpose ==
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table for example:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
('''Note:''' it is recommended to dist-upgrade to -devel to enable more features)
=== Deactivating apt-worker ===
Run:
<pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre>
=== Removing 250MHz CPU frequency ===
Install cpufrequtils.
Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre>
=== More SWAP / SWAP activation ===
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot)
(Note: eMMC swap is '''highly recommended''' and faster than SD card swap)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Voice Calls / SIP Calls ===
- Dist-upgrade to -devel (not working without)
Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol)
Voice calls are now working out of the box as well.
If sound is distorted, run:
<code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code>
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.76 / 6.1.8 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 805MHz (stable), 850MHz is not working with all devices, Turbo mode works.
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer.
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with Sphone or ofono scripts. Conversations integration is WIP.
|-
| Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone.
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
1df0ab68131b2adc20e7c0586d00e50598b9b63d
1612
1611
2024-02-19T18:42:45Z
Arno11
61
/* SD Card and first boot */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @850MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
'''Overclocking is now available in -devel using cpufreq boost.'''
It uses 250-500-550-600-720-805-850MHz frequencies
To enable it, edit:
<code>/sys/devices/system/cpu/cpufreq/boost</code>
And replace 0 by 1.
It is possible to customise max/min/available frequencies editing files in:
<code>/sys/devices/system/cpu/cpu0/cpufreq/</code>
'''No other steps are needed and updates/upgrades work with boost mode.'''
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
'''WARNING: some devices can't run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor'''
== Overclocking - Old method for testing purpose ==
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table for example:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately.
'''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
('''Note:''' it is recommended to dist-upgrade to -devel to enable more features)
=== Deactivating apt-worker ===
Run:
<pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre>
=== Removing 250MHz CPU frequency ===
Install cpufrequtils.
Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre>
=== More SWAP / SWAP activation ===
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot)
(Note: eMMC swap is '''highly recommended''' and faster than SD card swap)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Voice Calls / SIP Calls ===
- Dist-upgrade to -devel (not working without)
Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol)
Voice calls are now working out of the box as well.
If sound is distorted, run:
<code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code>
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.76 / 6.1.8 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 805MHz (stable), 850MHz is not working with all devices, Turbo mode works.
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer.
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with Sphone or ofono scripts. Conversations integration is WIP.
|-
| Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone.
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
87fb0cdbeb86ba3485a78e587b8254257fe854f8
1613
1612
2024-02-25T09:22:00Z
Arno11
61
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
'''Overclocking is now available in -devel using cpufreq boost.'''
It uses 250-500-550-600-720-805-850MHz frequencies
To enable it, edit:
<code>/sys/devices/system/cpu/cpufreq/boost</code>
And replace 0 by 1.
It is possible to customise max/min/available frequencies editing files in:
<code>/sys/devices/system/cpu/cpu0/cpufreq/</code>
'''No other steps are needed and updates/upgrades work with boost mode.'''
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
'''WARNING: some devices can't run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor'''
== Overclocking - Old method for testing purpose ==
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table for example:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately.
'''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
('''Note:''' it is recommended to dist-upgrade to -devel to enable more features)
=== Deactivating apt-worker ===
Run:
<pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre>
=== Removing 250MHz CPU frequency ===
Install cpufrequtils.
Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre>
=== More SWAP / SWAP activation ===
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot)
(Note: eMMC swap is '''highly recommended''' and faster than SD card swap)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Voice Calls / SIP Calls ===
- Dist-upgrade to -devel (not working without)
Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol)
Voice calls are now working out of the box as well.
If sound is distorted, run:
<code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code>
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.76 / 6.1.8 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 805MHz (stable), 850MHz is not working with all devices, Turbo mode works.
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer.
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with Sphone or ofono scripts. Conversations integration is WIP.
|-
| Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone.
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
21b83deaa7f955410a996629c7e5e6eb2662adc7
1614
1613
2024-02-25T09:23:56Z
Arno11
61
/* Removing 250MHz CPU frequency */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
'''Overclocking is now available in -devel using cpufreq boost.'''
It uses 250-500-550-600-720-805-850MHz frequencies
To enable it, edit:
<code>/sys/devices/system/cpu/cpufreq/boost</code>
And replace 0 by 1.
It is possible to customise max/min/available frequencies editing files in:
<code>/sys/devices/system/cpu/cpu0/cpufreq/</code>
'''No other steps are needed and updates/upgrades work with boost mode.'''
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
'''WARNING: some devices can't run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor'''
== Overclocking - Old method for testing purpose ==
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table for example:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately.
'''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
('''Note:''' it is recommended to dist-upgrade to -devel to enable more features)
=== Deactivating apt-worker ===
Run:
<pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre>
=== Removing 250MHz CPU frequency (example) ===
Install cpufrequtils.
Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre>
=== More SWAP / SWAP activation ===
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot)
(Note: eMMC swap is '''highly recommended''' and faster than SD card swap)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: No
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Voice Calls / SIP Calls ===
- Dist-upgrade to -devel (not working without)
Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol)
Voice calls are now working out of the box as well.
If sound is distorted, run:
<code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code>
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.76 / 6.1.8 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 805MHz (stable), 850MHz is not working with all devices, Turbo mode works.
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer.
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with Sphone or ofono scripts. Conversations integration is WIP.
|-
| Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone.
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
01cb98290796118c091d4acc024448dc22a5041f
1615
1614
2024-02-25T09:30:10Z
Arno11
61
/* Video playing */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
'''Overclocking is now available in -devel using cpufreq boost.'''
It uses 250-500-550-600-720-805-850MHz frequencies
To enable it, edit:
<code>/sys/devices/system/cpu/cpufreq/boost</code>
And replace 0 by 1.
It is possible to customise max/min/available frequencies editing files in:
<code>/sys/devices/system/cpu/cpu0/cpufreq/</code>
'''No other steps are needed and updates/upgrades work with boost mode.'''
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
'''WARNING: some devices can't run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor'''
== Overclocking - Old method for testing purpose ==
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table for example:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately.
'''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
('''Note:''' it is recommended to dist-upgrade to -devel to enable more features)
=== Deactivating apt-worker ===
Run:
<pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre>
=== Removing 250MHz CPU frequency (example) ===
Install cpufrequtils.
Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre>
=== More SWAP / SWAP activation ===
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot)
(Note: eMMC swap is '''highly recommended''' and faster than SD card swap)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv (0 - OMAP Textured Video)
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse (or User defined)
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: Auto
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Voice Calls / SIP Calls ===
- Dist-upgrade to -devel (not working without)
Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol)
Voice calls are now working out of the box as well.
If sound is distorted, run:
<code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code>
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.76 / 6.1.8 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 805MHz (stable), 850MHz is not working with all devices, Turbo mode works.
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer.
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with Sphone or ofono scripts. Conversations integration is WIP.
|-
| Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone.
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
4e5f7b4416adab104323a21a7c7519752239faea
1623
1615
2024-05-31T12:46:31Z
Amunizp
69
/* Quick */ reminder of chmod
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
'''Overclocking is now available in -devel using cpufreq boost.'''
It uses 250-500-550-600-720-805-850MHz frequencies
To enable it, edit:
<code>/sys/devices/system/cpu/cpufreq/boost</code>
And replace 0 by 1.
It is possible to customise max/min/available frequencies editing files in:
<code>/sys/devices/system/cpu/cpu0/cpufreq/</code>
'''No other steps are needed and updates/upgrades work with boost mode.'''
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
'''WARNING: some devices can't run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor'''
== Overclocking - Old method for testing purpose ==
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table for example:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately.
'''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
('''Note:''' it is recommended to dist-upgrade to -devel to enable more features)
=== Deactivating apt-worker ===
Run:
<pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre>
=== Removing 250MHz CPU frequency (example) ===
Install cpufrequtils.
Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre>
=== More SWAP / SWAP activation ===
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot)
(Note: eMMC swap is '''highly recommended''' and faster than SD card swap)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv (0 - OMAP Textured Video)
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse (or User defined)
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: Auto
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Voice Calls / SIP Calls ===
- Dist-upgrade to -devel (not working without)
Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol)
Voice calls are now working out of the box as well.
If sound is distorted, run:
<code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code>
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.76 / 6.1.8 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 805MHz (stable), 850MHz is not working with all devices, Turbo mode works.
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer.
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with Sphone or ofono scripts. Conversations integration is WIP.
|-
| Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone.
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
21bb4d30fe46c95b3656caa3ff8e81f09c0af5fd
1624
1623
2024-05-31T12:48:27Z
Amunizp
69
/* Quick */ changed order step 3
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> and the connect Nokia N900 to the PC.
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
'''Overclocking is now available in -devel using cpufreq boost.'''
It uses 250-500-550-600-720-805-850MHz frequencies
To enable it, edit:
<code>/sys/devices/system/cpu/cpufreq/boost</code>
And replace 0 by 1.
It is possible to customise max/min/available frequencies editing files in:
<code>/sys/devices/system/cpu/cpu0/cpufreq/</code>
'''No other steps are needed and updates/upgrades work with boost mode.'''
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
'''WARNING: some devices can't run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor'''
== Overclocking - Old method for testing purpose ==
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table for example:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately.
'''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
('''Note:''' it is recommended to dist-upgrade to -devel to enable more features)
=== Deactivating apt-worker ===
Run:
<pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre>
=== Removing 250MHz CPU frequency (example) ===
Install cpufrequtils.
Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre>
=== More SWAP / SWAP activation ===
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot)
(Note: eMMC swap is '''highly recommended''' and faster than SD card swap)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv (0 - OMAP Textured Video)
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse (or User defined)
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: Auto
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Voice Calls / SIP Calls ===
- Dist-upgrade to -devel (not working without)
Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol)
Voice calls are now working out of the box as well.
If sound is distorted, run:
<code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code>
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.76 / 6.1.8 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 805MHz (stable), 850MHz is not working with all devices, Turbo mode works.
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer.
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with Sphone or ofono scripts. Conversations integration is WIP.
|-
| Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone.
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
3c66c69dd81d1b818b57db4d332b575dd028d8be
1625
1624
2024-05-31T13:10:05Z
Amunizp
69
/* Quick */ added output from terminal as a reference.
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> you will get a message similar to the following:
<code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher
Not a local device
Waiting for USB device... </code>
and the connect Nokia N900 to the PC. you will then get a message like so:
<code>Found USB device: RX-51/RM-680/RM-696 (0x421:0x106) in Cold flashing mode
USB device product string: Nokia USB ROM
USB device serial number string: (not detected)
Detected USB device: (not detected)
Waiting for ASIC ID...
Detected OMAP3430 chip (revision 87)
Device: (not detected)
HW revision: (not detected)
NOLO version: (not detected)
Kernel version: (not detected)
Initfs version: (not detected)
Software release version: (not detected)
Content eMMC version: (not detected)
Root device: (not detected)
USB host mode: (not detected)
R&D mode: (not detected)
Switching to NOLO mode...
Sending OMAP memory boot message...
Waiting for USB device...
Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode
USB device product string: Nokia N900 (Update mode)
USB device serial number string: MUN233033
Detected USB device: RX-51
Initializing NOLO...
Device: RX-51
HW revision: 2204
NOLO version: 1.4.14
Kernel version: 2.6.28-20101501+0m5
Initfs version: (not detected)
Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203
Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND
Root device: flash
USB host mode: disabled
R&D mode: disabled
Load image:
File: test/u-boot-2013.04-2.bin
Image type: kernel
Image size: 212864 bytes
Sending image header...
Sending image...
100% [#################################################################]
Done
</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
'''Overclocking is now available in -devel using cpufreq boost.'''
It uses 250-500-550-600-720-805-850MHz frequencies
To enable it, edit:
<code>/sys/devices/system/cpu/cpufreq/boost</code>
And replace 0 by 1.
It is possible to customise max/min/available frequencies editing files in:
<code>/sys/devices/system/cpu/cpu0/cpufreq/</code>
'''No other steps are needed and updates/upgrades work with boost mode.'''
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
'''WARNING: some devices can't run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor'''
== Overclocking - Old method for testing purpose ==
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table for example:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately.
'''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
('''Note:''' it is recommended to dist-upgrade to -devel to enable more features)
=== Deactivating apt-worker ===
Run:
<pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre>
=== Removing 250MHz CPU frequency (example) ===
Install cpufrequtils.
Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre>
=== More SWAP / SWAP activation ===
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot)
(Note: eMMC swap is '''highly recommended''' and faster than SD card swap)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv (0 - OMAP Textured Video)
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse (or User defined)
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: Auto
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Voice Calls / SIP Calls ===
- Dist-upgrade to -devel (not working without)
Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol)
Voice calls are now working out of the box as well.
If sound is distorted, run:
<code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code>
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.76 / 6.1.8 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 805MHz (stable), 850MHz is not working with all devices, Turbo mode works.
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer.
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with Sphone or ofono scripts. Conversations integration is WIP.
|-
| Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone.
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
4def301ec8e508cbdbd9b0613cffda8992818f37
1626
1625
2024-05-31T13:25:32Z
Amunizp
69
/* Quick */ add more terminal output.
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly (dual boot mode):
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> you will get a message similar to the following:
<code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher
Not a local device
Waiting for USB device... </code>
and the connect Nokia N900 to the PC. you will then get a message like so:
<code>Found USB device: RX-51/RM-680/RM-696 (0x421:0x106) in Cold flashing mode
USB device product string: Nokia USB ROM
USB device serial number string: (not detected)
Detected USB device: (not detected)
Waiting for ASIC ID...
Detected OMAP3430 chip (revision 87)
Device: (not detected)
HW revision: (not detected)
NOLO version: (not detected)
Kernel version: (not detected)
Initfs version: (not detected)
Software release version: (not detected)
Content eMMC version: (not detected)
Root device: (not detected)
USB host mode: (not detected)
R&D mode: (not detected)
Switching to NOLO mode...
Sending OMAP memory boot message...
Waiting for USB device...
Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode
USB device product string: Nokia N900 (Update mode)
USB device serial number string: MUN233033
Detected USB device: RX-51
Initializing NOLO...
Device: RX-51
HW revision: 2204
NOLO version: 1.4.14
Kernel version: 2.6.28-20101501+0m5
Initfs version: (not detected)
Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203
Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND
Root device: flash
USB host mode: disabled
R&D mode: disabled
Load image:
File: test/u-boot-2013.04-2.bin
Image type: kernel
Image size: 212864 bytes
Sending image header...
Sending image...
100% [#################################################################]
Done
</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
<code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher
Not a local device
Waiting for USB device...
Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode
USB device product string: Nokia N900 (Update mode)
USB device serial number string: MUN233033
Detected USB device: RX-51
Initializing NOLO...
Device: RX-51
HW revision: 2204
NOLO version: 1.4.14
Kernel version: 2.6.28-20101501+0m5
Initfs version: (not detected)
Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203
Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND
Root device: flash
USB host mode: disabled
R&D mode: disabled
Booting kernel with default cmdline...
</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. The screen might be very dim and look off. So it might be difficult to see. Boot up the first time will take a long time full 2 min on test. Some text will show and will then go back to black screen but eventually you will see the splash screen and later the icons will show.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
'''Overclocking is now available in -devel using cpufreq boost.'''
It uses 250-500-550-600-720-805-850MHz frequencies
To enable it, edit:
<code>/sys/devices/system/cpu/cpufreq/boost</code>
And replace 0 by 1.
It is possible to customise max/min/available frequencies editing files in:
<code>/sys/devices/system/cpu/cpu0/cpufreq/</code>
'''No other steps are needed and updates/upgrades work with boost mode.'''
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
'''WARNING: some devices can't run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor'''
== Overclocking - Old method for testing purpose ==
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table for example:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately.
'''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
('''Note:''' it is recommended to dist-upgrade to -devel to enable more features)
=== Deactivating apt-worker ===
Run:
<pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre>
=== Removing 250MHz CPU frequency (example) ===
Install cpufrequtils.
Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre>
=== More SWAP / SWAP activation ===
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot)
(Note: eMMC swap is '''highly recommended''' and faster than SD card swap)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv (0 - OMAP Textured Video)
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse (or User defined)
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: Auto
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Voice Calls / SIP Calls ===
- Dist-upgrade to -devel (not working without)
Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol)
Voice calls are now working out of the box as well.
If sound is distorted, run:
<code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code>
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.76 / 6.1.8 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 805MHz (stable), 850MHz is not working with all devices, Turbo mode works.
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer.
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with Sphone or ofono scripts. Conversations integration is WIP.
|-
| Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone.
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
c3dcd76877a89b0359784a83b3e39ffbd2f88acb
1627
1626
2024-05-31T13:26:16Z
Amunizp
69
/* Quick */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly (dual boot mode):
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> you will get a message similar to the following:
<code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher
Not a local device
Waiting for USB device... </code>
and the connect Nokia N900 to the PC. you will then get a message like so:
<code>Found USB device: RX-51/RM-680/RM-696 (0x421:0x106) in Cold flashing mode
USB device product string: Nokia USB ROM
USB device serial number string: (not detected)
Detected USB device: (not detected)
Waiting for ASIC ID...
Detected OMAP3430 chip (revision 87)
Device: (not detected)
HW revision: (not detected)
NOLO version: (not detected)
Kernel version: (not detected)
Initfs version: (not detected)
Software release version: (not detected)
Content eMMC version: (not detected)
Root device: (not detected)
USB host mode: (not detected)
R&D mode: (not detected)
Switching to NOLO mode...
Sending OMAP memory boot message...
Waiting for USB device...
Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode
USB device product string: Nokia N900 (Update mode)
USB device serial number string: MUN233033
Detected USB device: RX-51
Initializing NOLO...
Device: RX-51
HW revision: 2204
NOLO version: 1.4.14
Kernel version: 2.6.28-20101501+0m5
Initfs version: (not detected)
Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203
Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND
Root device: flash
USB host mode: disabled
R&D mode: disabled
Load image:
File: test/u-boot-2013.04-2.bin
Image type: kernel
Image size: 212864 bytes
Sending image header...
Sending image...
100% [#################################################################]
Done
</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code>
<code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher
Not a local device
Waiting for USB device...
Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode
USB device product string: Nokia N900 (Update mode)
USB device serial number string: MUN233033
Detected USB device: RX-51
Initializing NOLO...
Device: RX-51
HW revision: 2204
NOLO version: 1.4.14
Kernel version: 2.6.28-20101501+0m5
Initfs version: (not detected)
Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203
Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND
Root device: flash
USB host mode: disabled
R&D mode: disabled
Booting kernel with default cmdline...
</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. The screen might be very dim and look off. So it might be difficult to see. Boot up the first time will take a long time full 2 min on test. Some text will show and will then go back to black screen but eventually you will see the splash screen and later the icons will show.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
'''Overclocking is now available in -devel using cpufreq boost.'''
It uses 250-500-550-600-720-805-850MHz frequencies
To enable it, edit:
<code>/sys/devices/system/cpu/cpufreq/boost</code>
And replace 0 by 1.
It is possible to customise max/min/available frequencies editing files in:
<code>/sys/devices/system/cpu/cpu0/cpufreq/</code>
'''No other steps are needed and updates/upgrades work with boost mode.'''
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
'''WARNING: some devices can't run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor'''
== Overclocking - Old method for testing purpose ==
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table for example:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately.
'''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
('''Note:''' it is recommended to dist-upgrade to -devel to enable more features)
=== Deactivating apt-worker ===
Run:
<pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre>
=== Removing 250MHz CPU frequency (example) ===
Install cpufrequtils.
Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre>
=== More SWAP / SWAP activation ===
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot)
(Note: eMMC swap is '''highly recommended''' and faster than SD card swap)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv (0 - OMAP Textured Video)
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse (or User defined)
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: Auto
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Voice Calls / SIP Calls ===
- Dist-upgrade to -devel (not working without)
Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol)
Voice calls are now working out of the box as well.
If sound is distorted, run:
<code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code>
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.76 / 6.1.8 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 805MHz (stable), 850MHz is not working with all devices, Turbo mode works.
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer.
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with Sphone or ofono scripts. Conversations integration is WIP.
|-
| Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone.
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
e929e86d3439b184208f9dfb72944264d82a699f
1628
1627
2024-05-31T13:27:08Z
Amunizp
69
/* Bootloader (U-Boot) setup */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly (dual boot mode):
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> you will get a message similar to the following:
<code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher
Not a local device
Waiting for USB device... </code>
and the connect Nokia N900 to the PC. you will then get a message like so:
<code>Found USB device: RX-51/RM-680/RM-696 (0x421:0x106) in Cold flashing mode
USB device product string: Nokia USB ROM
USB device serial number string: (not detected)
Detected USB device: (not detected)
Waiting for ASIC ID...
Detected OMAP3430 chip (revision 87)
Device: (not detected)
HW revision: (not detected)
NOLO version: (not detected)
Kernel version: (not detected)
Initfs version: (not detected)
Software release version: (not detected)
Content eMMC version: (not detected)
Root device: (not detected)
USB host mode: (not detected)
R&D mode: (not detected)
Switching to NOLO mode...
Sending OMAP memory boot message...
Waiting for USB device...
Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode
USB device product string: Nokia N900 (Update mode)
USB device serial number string: MUN233033
Detected USB device: RX-51
Initializing NOLO...
Device: RX-51
HW revision: 2204
NOLO version: 1.4.14
Kernel version: 2.6.28-20101501+0m5
Initfs version: (not detected)
Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203
Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND
Root device: flash
USB host mode: disabled
R&D mode: disabled
Load image:
File: test/u-boot-2013.04-2.bin
Image type: kernel
Image size: 212864 bytes
Sending image header...
Sending image...
100% [#################################################################]
Done
</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> you will get an output such as:
<code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher
Not a local device
Waiting for USB device...
Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode
USB device product string: Nokia N900 (Update mode)
USB device serial number string: MUN233033
Detected USB device: RX-51
Initializing NOLO...
Device: RX-51
HW revision: 2204
NOLO version: 1.4.14
Kernel version: 2.6.28-20101501+0m5
Initfs version: (not detected)
Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203
Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND
Root device: flash
USB host mode: disabled
R&D mode: disabled
Booting kernel with default cmdline...
</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. The screen might be very dim and look off. So it might be difficult to see. Boot up the first time will take a long time full 2 min on test. Some text will show and will then go back to black screen but eventually you will see the splash screen and later the icons will show.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
'''Overclocking is now available in -devel using cpufreq boost.'''
It uses 250-500-550-600-720-805-850MHz frequencies
To enable it, edit:
<code>/sys/devices/system/cpu/cpufreq/boost</code>
And replace 0 by 1.
It is possible to customise max/min/available frequencies editing files in:
<code>/sys/devices/system/cpu/cpu0/cpufreq/</code>
'''No other steps are needed and updates/upgrades work with boost mode.'''
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
'''WARNING: some devices can't run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor'''
== Overclocking - Old method for testing purpose ==
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table for example:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately.
'''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
('''Note:''' it is recommended to dist-upgrade to -devel to enable more features)
=== Deactivating apt-worker ===
Run:
<pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre>
=== Removing 250MHz CPU frequency (example) ===
Install cpufrequtils.
Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre>
=== More SWAP / SWAP activation ===
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot)
(Note: eMMC swap is '''highly recommended''' and faster than SD card swap)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv (0 - OMAP Textured Video)
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse (or User defined)
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: Auto
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Voice Calls / SIP Calls ===
- Dist-upgrade to -devel (not working without)
Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol)
Voice calls are now working out of the box as well.
If sound is distorted, run:
<code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code>
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.76 / 6.1.8 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 805MHz (stable), 850MHz is not working with all devices, Turbo mode works.
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer.
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with Sphone or ofono scripts. Conversations integration is WIP.
|-
| Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone.
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
79e8680cb831b6950630683aa2537918cb8bbf8b
1629
1628
2024-05-31T16:40:41Z
Arno11
61
/* Tips / Tweaks */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly (dual boot mode):
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> you will get a message similar to the following:
<code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher
Not a local device
Waiting for USB device... </code>
and the connect Nokia N900 to the PC. you will then get a message like so:
<code>Found USB device: RX-51/RM-680/RM-696 (0x421:0x106) in Cold flashing mode
USB device product string: Nokia USB ROM
USB device serial number string: (not detected)
Detected USB device: (not detected)
Waiting for ASIC ID...
Detected OMAP3430 chip (revision 87)
Device: (not detected)
HW revision: (not detected)
NOLO version: (not detected)
Kernel version: (not detected)
Initfs version: (not detected)
Software release version: (not detected)
Content eMMC version: (not detected)
Root device: (not detected)
USB host mode: (not detected)
R&D mode: (not detected)
Switching to NOLO mode...
Sending OMAP memory boot message...
Waiting for USB device...
Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode
USB device product string: Nokia N900 (Update mode)
USB device serial number string: MUN233033
Detected USB device: RX-51
Initializing NOLO...
Device: RX-51
HW revision: 2204
NOLO version: 1.4.14
Kernel version: 2.6.28-20101501+0m5
Initfs version: (not detected)
Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203
Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND
Root device: flash
USB host mode: disabled
R&D mode: disabled
Load image:
File: test/u-boot-2013.04-2.bin
Image type: kernel
Image size: 212864 bytes
Sending image header...
Sending image...
100% [#################################################################]
Done
</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> you will get an output such as:
<code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher
Not a local device
Waiting for USB device...
Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode
USB device product string: Nokia N900 (Update mode)
USB device serial number string: MUN233033
Detected USB device: RX-51
Initializing NOLO...
Device: RX-51
HW revision: 2204
NOLO version: 1.4.14
Kernel version: 2.6.28-20101501+0m5
Initfs version: (not detected)
Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203
Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND
Root device: flash
USB host mode: disabled
R&D mode: disabled
Booting kernel with default cmdline...
</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. The screen might be very dim and look off. So it might be difficult to see. Boot up the first time will take a long time full 2 min on test. Some text will show and will then go back to black screen but eventually you will see the splash screen and later the icons will show.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
'''Overclocking is now available in -devel using cpufreq boost.'''
It uses 250-500-550-600-720-805-850MHz frequencies
To enable it, edit:
<code>/sys/devices/system/cpu/cpufreq/boost</code>
And replace 0 by 1.
It is possible to customise max/min/available frequencies editing files in:
<code>/sys/devices/system/cpu/cpu0/cpufreq/</code>
'''No other steps are needed and updates/upgrades work with boost mode.'''
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
'''WARNING: some devices can't run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor'''
== Overclocking - Old method for testing purpose ==
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table for example:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, SDXC U3 microsd card is a must. Class10 U1 cards are too slow to run Leste on N900 unfortunately.
'''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
('''Note:''' it is recommended to dist-upgrade to -devel to enable more features)
=== Gnome-tracker in $HOME ===
By default trackers are indexing the entire $HOME folder, causing severe slowdown.
To avoid this issue, the solution (until a proper fix) is to add a .nomedia file in /home/user folder:
<pre>touch /home/user/.nomedia</pre>
=== Deactivating apt-worker ===
Run:
<pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre>
=== Removing 250MHz CPU frequency (example) ===
Install cpufrequtils.
Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre>
=== More SWAP / SWAP activation ===
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot)
(Note: eMMC swap is '''highly recommended''' and faster than SD card swap)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv (0 - OMAP Textured Video)
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse (or User defined)
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: Auto
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Voice Calls / SIP Calls ===
- Dist-upgrade to -devel (not working without)
Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol)
Voice calls are now working out of the box as well.
If sound is distorted, run:
<code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code>
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.76 / 6.1.8 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 805MHz (stable), 850MHz is not working with all devices, Turbo mode works.
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer.
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with Sphone or ofono scripts. Conversations integration is WIP.
|-
| Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone.
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
84f4dfc085ffdfab7988453fa653f6a5baa682e9
1630
1629
2024-05-31T16:46:39Z
Arno11
61
/* SD Card and first boot */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly (dual boot mode):
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> you will get a message similar to the following:
<code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher
Not a local device
Waiting for USB device... </code>
and the connect Nokia N900 to the PC. you will then get a message like so:
<code>Found USB device: RX-51/RM-680/RM-696 (0x421:0x106) in Cold flashing mode
USB device product string: Nokia USB ROM
USB device serial number string: (not detected)
Detected USB device: (not detected)
Waiting for ASIC ID...
Detected OMAP3430 chip (revision 87)
Device: (not detected)
HW revision: (not detected)
NOLO version: (not detected)
Kernel version: (not detected)
Initfs version: (not detected)
Software release version: (not detected)
Content eMMC version: (not detected)
Root device: (not detected)
USB host mode: (not detected)
R&D mode: (not detected)
Switching to NOLO mode...
Sending OMAP memory boot message...
Waiting for USB device...
Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode
USB device product string: Nokia N900 (Update mode)
USB device serial number string: MUN233033
Detected USB device: RX-51
Initializing NOLO...
Device: RX-51
HW revision: 2204
NOLO version: 1.4.14
Kernel version: 2.6.28-20101501+0m5
Initfs version: (not detected)
Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203
Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND
Root device: flash
USB host mode: disabled
R&D mode: disabled
Load image:
File: test/u-boot-2013.04-2.bin
Image type: kernel
Image size: 212864 bytes
Sending image header...
Sending image...
100% [#################################################################]
Done
</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> you will get an output such as:
<code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher
Not a local device
Waiting for USB device...
Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode
USB device product string: Nokia N900 (Update mode)
USB device serial number string: MUN233033
Detected USB device: RX-51
Initializing NOLO...
Device: RX-51
HW revision: 2204
NOLO version: 1.4.14
Kernel version: 2.6.28-20101501+0m5
Initfs version: (not detected)
Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203
Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND
Root device: flash
USB host mode: disabled
R&D mode: disabled
Booting kernel with default cmdline...
</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. The screen might be very dim and look off. So it might be difficult to see. Boot up the first time will take a long time full 2 min on test. Some text will show and will then go back to black screen but eventually you will see the splash screen and later the icons will show.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
'''Overclocking is now available in -devel using cpufreq boost.'''
It uses 250-500-550-600-720-805-850MHz frequencies
To enable it, edit:
<code>/sys/devices/system/cpu/cpufreq/boost</code>
And replace 0 by 1.
It is possible to customise max/min/available frequencies editing files in:
<code>/sys/devices/system/cpu/cpu0/cpufreq/</code>
'''No other steps are needed and updates/upgrades work with boost mode.'''
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
'''WARNING: some devices can't run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor'''
== Overclocking - Old method for testing purpose ==
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table for example:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, SDXC U3 microSD card is a must. Class10 U1 cards are usually too slow to run Leste on N900 unfortunately, most probably because of their lower build quality.
'''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
('''Note:''' it is recommended to dist-upgrade to -devel to enable more features)
=== Gnome-tracker in $HOME ===
By default trackers are indexing the entire $HOME folder, causing severe slowdown.
To avoid this issue, the solution (until a proper fix) is to add a .nomedia file in /home/user folder:
<pre>touch /home/user/.nomedia</pre>
=== Deactivating apt-worker ===
Run:
<pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre>
=== Removing 250MHz CPU frequency (example) ===
Install cpufrequtils.
Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre>
=== More SWAP / SWAP activation ===
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot)
(Note: eMMC swap is '''highly recommended''' and faster than SD card swap)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv (0 - OMAP Textured Video)
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse (or User defined)
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: Auto
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Voice Calls / SIP Calls ===
- Dist-upgrade to -devel (not working without)
Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol)
Voice calls are now working out of the box as well.
If sound is distorted, run:
<code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code>
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.76 / 6.1.8 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 805MHz (stable), 850MHz is not working with all devices, Turbo mode works.
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer.
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with Sphone or ofono scripts. Conversations integration is WIP.
|-
| Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone.
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
94c1b21fdd6018ac9ea33b9981beac5edaebf424
1631
1630
2024-05-31T16:50:19Z
Arno11
61
/* Status table */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly (dual boot mode):
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> you will get a message similar to the following:
<code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher
Not a local device
Waiting for USB device... </code>
and the connect Nokia N900 to the PC. you will then get a message like so:
<code>Found USB device: RX-51/RM-680/RM-696 (0x421:0x106) in Cold flashing mode
USB device product string: Nokia USB ROM
USB device serial number string: (not detected)
Detected USB device: (not detected)
Waiting for ASIC ID...
Detected OMAP3430 chip (revision 87)
Device: (not detected)
HW revision: (not detected)
NOLO version: (not detected)
Kernel version: (not detected)
Initfs version: (not detected)
Software release version: (not detected)
Content eMMC version: (not detected)
Root device: (not detected)
USB host mode: (not detected)
R&D mode: (not detected)
Switching to NOLO mode...
Sending OMAP memory boot message...
Waiting for USB device...
Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode
USB device product string: Nokia N900 (Update mode)
USB device serial number string: MUN233033
Detected USB device: RX-51
Initializing NOLO...
Device: RX-51
HW revision: 2204
NOLO version: 1.4.14
Kernel version: 2.6.28-20101501+0m5
Initfs version: (not detected)
Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203
Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND
Root device: flash
USB host mode: disabled
R&D mode: disabled
Load image:
File: test/u-boot-2013.04-2.bin
Image type: kernel
Image size: 212864 bytes
Sending image header...
Sending image...
100% [#################################################################]
Done
</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> you will get an output such as:
<code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher
Not a local device
Waiting for USB device...
Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode
USB device product string: Nokia N900 (Update mode)
USB device serial number string: MUN233033
Detected USB device: RX-51
Initializing NOLO...
Device: RX-51
HW revision: 2204
NOLO version: 1.4.14
Kernel version: 2.6.28-20101501+0m5
Initfs version: (not detected)
Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203
Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND
Root device: flash
USB host mode: disabled
R&D mode: disabled
Booting kernel with default cmdline...
</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. The screen might be very dim and look off. So it might be difficult to see. Boot up the first time will take a long time full 2 min on test. Some text will show and will then go back to black screen but eventually you will see the splash screen and later the icons will show.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
'''Overclocking is now available in -devel using cpufreq boost.'''
It uses 250-500-550-600-720-805-850MHz frequencies
To enable it, edit:
<code>/sys/devices/system/cpu/cpufreq/boost</code>
And replace 0 by 1.
It is possible to customise max/min/available frequencies editing files in:
<code>/sys/devices/system/cpu/cpu0/cpufreq/</code>
'''No other steps are needed and updates/upgrades work with boost mode.'''
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
'''WARNING: some devices can't run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor'''
== Overclocking - Old method for testing purpose ==
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table for example:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, SDXC U3 microSD card is a must. Class10 U1 cards are usually too slow to run Leste on N900 unfortunately, most probably because of their lower build quality.
'''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
('''Note:''' it is recommended to dist-upgrade to -devel to enable more features)
=== Gnome-tracker in $HOME ===
By default trackers are indexing the entire $HOME folder, causing severe slowdown.
To avoid this issue, the solution (until a proper fix) is to add a .nomedia file in /home/user folder:
<pre>touch /home/user/.nomedia</pre>
=== Deactivating apt-worker ===
Run:
<pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre>
=== Removing 250MHz CPU frequency (example) ===
Install cpufrequtils.
Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre>
=== More SWAP / SWAP activation ===
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot)
(Note: eMMC swap is '''highly recommended''' and faster than SD card swap)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv (0 - OMAP Textured Video)
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse (or User defined)
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: Auto
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Voice Calls / SIP Calls ===
- Dist-upgrade to -devel (not working without)
Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol)
Voice calls are now working out of the box as well.
If sound is distorted, run:
<code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code>
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.76 / 6.1.8 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 805MHz (stable), 850MHz is not working with all devices, Turbo mode works.
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer.
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with Sphone or ofono scripts. Works with Conversations in -devel.
|-
| Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone.
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
51384707a203a457f7b9c426f3d569e6d644ccae
1632
1631
2024-05-31T16:54:36Z
Arno11
61
/* Tweaking Transitions */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly (dual boot mode):
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> you will get a message similar to the following:
<code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher
Not a local device
Waiting for USB device... </code>
and the connect Nokia N900 to the PC. you will then get a message like so:
<code>Found USB device: RX-51/RM-680/RM-696 (0x421:0x106) in Cold flashing mode
USB device product string: Nokia USB ROM
USB device serial number string: (not detected)
Detected USB device: (not detected)
Waiting for ASIC ID...
Detected OMAP3430 chip (revision 87)
Device: (not detected)
HW revision: (not detected)
NOLO version: (not detected)
Kernel version: (not detected)
Initfs version: (not detected)
Software release version: (not detected)
Content eMMC version: (not detected)
Root device: (not detected)
USB host mode: (not detected)
R&D mode: (not detected)
Switching to NOLO mode...
Sending OMAP memory boot message...
Waiting for USB device...
Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode
USB device product string: Nokia N900 (Update mode)
USB device serial number string: MUN233033
Detected USB device: RX-51
Initializing NOLO...
Device: RX-51
HW revision: 2204
NOLO version: 1.4.14
Kernel version: 2.6.28-20101501+0m5
Initfs version: (not detected)
Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203
Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND
Root device: flash
USB host mode: disabled
R&D mode: disabled
Load image:
File: test/u-boot-2013.04-2.bin
Image type: kernel
Image size: 212864 bytes
Sending image header...
Sending image...
100% [#################################################################]
Done
</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> you will get an output such as:
<code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher
Not a local device
Waiting for USB device...
Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode
USB device product string: Nokia N900 (Update mode)
USB device serial number string: MUN233033
Detected USB device: RX-51
Initializing NOLO...
Device: RX-51
HW revision: 2204
NOLO version: 1.4.14
Kernel version: 2.6.28-20101501+0m5
Initfs version: (not detected)
Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203
Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND
Root device: flash
USB host mode: disabled
R&D mode: disabled
Booting kernel with default cmdline...
</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. The screen might be very dim and look off. So it might be difficult to see. Boot up the first time will take a long time full 2 min on test. Some text will show and will then go back to black screen but eventually you will see the splash screen and later the icons will show.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
'''Overclocking is now available in -devel using cpufreq boost.'''
It uses 250-500-550-600-720-805-850MHz frequencies
To enable it, edit:
<code>/sys/devices/system/cpu/cpufreq/boost</code>
And replace 0 by 1.
It is possible to customise max/min/available frequencies editing files in:
<code>/sys/devices/system/cpu/cpu0/cpufreq/</code>
'''No other steps are needed and updates/upgrades work with boost mode.'''
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
'''WARNING: some devices can't run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor'''
== Overclocking - Old method for testing purpose ==
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table for example:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, SDXC U3 microSD card is a must. Class10 U1 cards are usually too slow to run Leste on N900 unfortunately, most probably because of their lower build quality.
'''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
('''Note:''' it is recommended to dist-upgrade to -devel to enable more features)
=== Gnome-tracker in $HOME ===
By default trackers are indexing the entire $HOME folder, causing severe slowdown.
To avoid this issue, the solution (until a proper fix) is to add a .nomedia file in /home/user folder:
<pre>touch /home/user/.nomedia</pre>
=== Deactivating apt-worker ===
Run:
<pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre>
=== Removing 250MHz CPU frequency (example) ===
Install cpufrequtils.
Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre>
=== More SWAP / SWAP activation ===
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot)
(Note: eMMC swap is '''highly recommended''' and faster than SD card swap)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
Note: like Fremantle, blur effect can cause lags and slowness. It is possible to deactivate it through the transitions.ini file:
[HOME]
radius = 0
radius_more = 0
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv (0 - OMAP Textured Video)
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse (or User defined)
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: Auto
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Voice Calls / SIP Calls ===
- Dist-upgrade to -devel (not working without)
Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol)
Voice calls are now working out of the box as well.
If sound is distorted, run:
<code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code>
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.76 / 6.1.8 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 805MHz (stable), 850MHz is not working with all devices, Turbo mode works.
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer.
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with Sphone or ofono scripts. Works with Conversations in -devel.
|-
| Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone.
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
a30ce7b83cfb96879157c914f7815045e871489c
1633
1632
2024-05-31T16:55:57Z
Arno11
61
/* Tweaking Transitions */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly (dual boot mode):
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> you will get a message similar to the following:
<code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher
Not a local device
Waiting for USB device... </code>
and the connect Nokia N900 to the PC. you will then get a message like so:
<code>Found USB device: RX-51/RM-680/RM-696 (0x421:0x106) in Cold flashing mode
USB device product string: Nokia USB ROM
USB device serial number string: (not detected)
Detected USB device: (not detected)
Waiting for ASIC ID...
Detected OMAP3430 chip (revision 87)
Device: (not detected)
HW revision: (not detected)
NOLO version: (not detected)
Kernel version: (not detected)
Initfs version: (not detected)
Software release version: (not detected)
Content eMMC version: (not detected)
Root device: (not detected)
USB host mode: (not detected)
R&D mode: (not detected)
Switching to NOLO mode...
Sending OMAP memory boot message...
Waiting for USB device...
Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode
USB device product string: Nokia N900 (Update mode)
USB device serial number string: MUN233033
Detected USB device: RX-51
Initializing NOLO...
Device: RX-51
HW revision: 2204
NOLO version: 1.4.14
Kernel version: 2.6.28-20101501+0m5
Initfs version: (not detected)
Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203
Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND
Root device: flash
USB host mode: disabled
R&D mode: disabled
Load image:
File: test/u-boot-2013.04-2.bin
Image type: kernel
Image size: 212864 bytes
Sending image header...
Sending image...
100% [#################################################################]
Done
</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> you will get an output such as:
<code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher
Not a local device
Waiting for USB device...
Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode
USB device product string: Nokia N900 (Update mode)
USB device serial number string: MUN233033
Detected USB device: RX-51
Initializing NOLO...
Device: RX-51
HW revision: 2204
NOLO version: 1.4.14
Kernel version: 2.6.28-20101501+0m5
Initfs version: (not detected)
Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203
Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND
Root device: flash
USB host mode: disabled
R&D mode: disabled
Booting kernel with default cmdline...
</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. The screen might be very dim and look off. So it might be difficult to see. Boot up the first time will take a long time full 2 min on test. Some text will show and will then go back to black screen but eventually you will see the splash screen and later the icons will show.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
'''Overclocking is now available in -devel using cpufreq boost.'''
It uses 250-500-550-600-720-805-850MHz frequencies
To enable it, edit:
<code>/sys/devices/system/cpu/cpufreq/boost</code>
And replace 0 by 1.
It is possible to customise max/min/available frequencies editing files in:
<code>/sys/devices/system/cpu/cpu0/cpufreq/</code>
'''No other steps are needed and updates/upgrades work with boost mode.'''
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
'''WARNING: some devices can't run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor'''
== Overclocking - Old method for testing purpose ==
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table for example:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, SDXC U3 microSD card is a must. Class10 U1 cards are usually too slow to run Leste on N900 unfortunately, most probably because of their lower build quality.
'''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
('''Note:''' it is recommended to dist-upgrade to -devel to enable more features)
=== Gnome-tracker in $HOME ===
By default trackers are indexing the entire $HOME folder, causing severe slowdown.
To avoid this issue, the solution (until a proper fix) is to add a .nomedia file in /home/user folder:
<pre>touch /home/user/.nomedia</pre>
=== Deactivating apt-worker ===
Run:
<pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre>
=== Removing 250MHz CPU frequency (example) ===
Install cpufrequtils.
Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre>
=== More SWAP / SWAP activation ===
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot)
(Note: eMMC swap is '''highly recommended''' and faster than SD card swap)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
Note: like Fremantle, blur effect can cause lags and slowness. It is possible to deactivate it through the transitions.ini file:
<pre>[HOME]
radius = 0
radius_more = 0
</pre>
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv (0 - OMAP Textured Video)
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse (or User defined)
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: Auto
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Voice Calls / SIP Calls ===
- Dist-upgrade to -devel (not working without)
Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol)
Voice calls are now working out of the box as well.
If sound is distorted, run:
<code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code>
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.76 / 6.1.8 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 805MHz (stable), 850MHz is not working with all devices, Turbo mode works.
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer.
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with Sphone or ofono scripts. Works with Conversations in -devel.
|-
| Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone.
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
6e212552ac838001a7a2db8bd52764dbd67ae64d
1634
1633
2024-05-31T16:57:34Z
Arno11
61
/* Tweaking Transitions */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly (dual boot mode):
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> you will get a message similar to the following:
<code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher
Not a local device
Waiting for USB device... </code>
and the connect Nokia N900 to the PC. you will then get a message like so:
<code>Found USB device: RX-51/RM-680/RM-696 (0x421:0x106) in Cold flashing mode
USB device product string: Nokia USB ROM
USB device serial number string: (not detected)
Detected USB device: (not detected)
Waiting for ASIC ID...
Detected OMAP3430 chip (revision 87)
Device: (not detected)
HW revision: (not detected)
NOLO version: (not detected)
Kernel version: (not detected)
Initfs version: (not detected)
Software release version: (not detected)
Content eMMC version: (not detected)
Root device: (not detected)
USB host mode: (not detected)
R&D mode: (not detected)
Switching to NOLO mode...
Sending OMAP memory boot message...
Waiting for USB device...
Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode
USB device product string: Nokia N900 (Update mode)
USB device serial number string: MUN233033
Detected USB device: RX-51
Initializing NOLO...
Device: RX-51
HW revision: 2204
NOLO version: 1.4.14
Kernel version: 2.6.28-20101501+0m5
Initfs version: (not detected)
Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203
Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND
Root device: flash
USB host mode: disabled
R&D mode: disabled
Load image:
File: test/u-boot-2013.04-2.bin
Image type: kernel
Image size: 212864 bytes
Sending image header...
Sending image...
100% [#################################################################]
Done
</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> you will get an output such as:
<code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher
Not a local device
Waiting for USB device...
Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode
USB device product string: Nokia N900 (Update mode)
USB device serial number string: MUN233033
Detected USB device: RX-51
Initializing NOLO...
Device: RX-51
HW revision: 2204
NOLO version: 1.4.14
Kernel version: 2.6.28-20101501+0m5
Initfs version: (not detected)
Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203
Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND
Root device: flash
USB host mode: disabled
R&D mode: disabled
Booting kernel with default cmdline...
</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. The screen might be very dim and look off. So it might be difficult to see. Boot up the first time will take a long time full 2 min on test. Some text will show and will then go back to black screen but eventually you will see the splash screen and later the icons will show.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
'''Overclocking is now available in -devel using cpufreq boost.'''
It uses 250-500-550-600-720-805-850MHz frequencies
To enable it, edit:
<code>/sys/devices/system/cpu/cpufreq/boost</code>
And replace 0 by 1.
It is possible to customise max/min/available frequencies editing files in:
<code>/sys/devices/system/cpu/cpu0/cpufreq/</code>
'''No other steps are needed and updates/upgrades work with boost mode.'''
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
'''WARNING: some devices can't run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor'''
== Overclocking - Old method for testing purpose ==
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table for example:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, SDXC U3 microSD card is a must. Class10 U1 cards are usually too slow to run Leste on N900 unfortunately, most probably because of their lower build quality.
'''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
('''Note:''' it is recommended to dist-upgrade to -devel to enable more features)
=== Gnome-tracker in $HOME ===
By default trackers are indexing the entire $HOME folder, causing severe slowdown.
To avoid this issue, the solution (until a proper fix) is to add a .nomedia file in /home/user folder:
<pre>touch /home/user/.nomedia</pre>
=== Deactivating apt-worker ===
Run:
<pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre>
=== Removing 250MHz CPU frequency (example) ===
Install cpufrequtils.
Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre>
=== More SWAP / SWAP activation ===
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot)
(Note: eMMC swap is '''highly recommended''' and faster than SD card swap)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
'''Note: like Fremantle, blur effect can cause lags and slowness.''' It is possible to deactivate it through the transitions.ini file:
<pre>[HOME]
radius = 0
radius_more = 0
</pre>
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv (0 - OMAP Textured Video)
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse (or User defined)
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: Auto
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Voice Calls / SIP Calls ===
- Dist-upgrade to -devel (not working without)
Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol)
Voice calls are now working out of the box as well.
If sound is distorted, run:
<code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code>
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.76 / 6.1.8 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 805MHz (stable), 850MHz is not working with all devices, Turbo mode works.
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer.
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with Sphone or ofono scripts. Works with Conversations in -devel.
|-
| Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone.
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
b6c0e8696b54107f500196e4570632793d7dc6ce
1635
1634
2024-06-02T09:40:02Z
Amunizp
69
/* Quick */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly (dual boot mode):
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> you will get a message similar to the following:
<code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher
Not a local device
Waiting for USB device... </code>
and the connect Nokia N900 to the PC. you will then get a message like so:
<code>Found USB device: RX-51/RM-680/RM-696 (0x421:0x106) in Cold flashing mode
USB device product string: Nokia USB ROM
USB device serial number string: (not detected)
Detected USB device: (not detected)
Waiting for ASIC ID...
Detected OMAP3430 chip (revision 87)
Device: (not detected)
HW revision: (not detected)
NOLO version: (not detected)
Kernel version: (not detected)
Initfs version: (not detected)
Software release version: (not detected)
Content eMMC version: (not detected)
Root device: (not detected)
USB host mode: (not detected)
R&D mode: (not detected)
Switching to NOLO mode...
Sending OMAP memory boot message...
Waiting for USB device...
Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode
USB device product string: Nokia N900 (Update mode)
USB device serial number string: MUN233033
Detected USB device: RX-51
Initializing NOLO...
Device: RX-51
HW revision: 2204
NOLO version: 1.4.14
Kernel version: 2.6.28-20101501+0m5
Initfs version: (not detected)
Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203
Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND
Root device: flash
USB host mode: disabled
R&D mode: disabled
Load image:
File: test/u-boot-2013.04-2.bin
Image type: kernel
Image size: 212864 bytes
Sending image header...
Sending image...
100% [#################################################################]
Done
</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> you will get an output such as:
<code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher
Not a local device
Waiting for USB device...
Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode
USB device product string: Nokia N900 (Update mode)
USB device serial number string: MUN233033
Detected USB device: RX-51
Initializing NOLO...
Device: RX-51
HW revision: 2204
NOLO version: 1.4.14
Kernel version: 2.6.28-20101501+0m5
Initfs version: (not detected)
Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203
Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND
Root device: flash
USB host mode: disabled
R&D mode: disabled
Booting kernel with default cmdline...
</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. The screen might be very dim and look off. So it might be difficult to see. Boot up the first time will take a long time full 2 min on test. Some text will show and will then go back to black screen but eventually you will see the splash screen and later the icons will show.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
'''Overclocking is now available in -devel using cpufreq boost.'''
It uses 250-500-550-600-720-805-850MHz frequencies
To enable it, edit:
<code>/sys/devices/system/cpu/cpufreq/boost</code>
And replace 0 by 1.
It is possible to customise max/min/available frequencies editing files in:
<code>/sys/devices/system/cpu/cpu0/cpufreq/</code>
'''No other steps are needed and updates/upgrades work with boost mode.'''
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
'''WARNING: some devices can't run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor'''
== Overclocking - Old method for testing purpose ==
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table for example:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, SDXC U3 microSD card is a must. Class10 U1 cards are usually too slow to run Leste on N900 unfortunately, most probably because of their lower build quality.
'''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
('''Note:''' it is recommended to dist-upgrade to -devel to enable more features)
=== Gnome-tracker in $HOME ===
By default trackers are indexing the entire $HOME folder, causing severe slowdown.
To avoid this issue, the solution (until a proper fix) is to add a .nomedia file in /home/user folder:
<pre>touch /home/user/.nomedia</pre>
=== Deactivating apt-worker ===
Run:
<pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre>
=== Removing 250MHz CPU frequency (example) ===
Install cpufrequtils.
Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre>
=== More SWAP / SWAP activation ===
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot)
(Note: eMMC swap is '''highly recommended''' and faster than SD card swap)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
'''Note: like Fremantle, blur effect can cause lags and slowness.''' It is possible to deactivate it through the transitions.ini file:
<pre>[HOME]
radius = 0
radius_more = 0
</pre>
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv (0 - OMAP Textured Video)
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse (or User defined)
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: Auto
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Voice Calls / SIP Calls ===
- Dist-upgrade to -devel (not working without)
Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol)
Voice calls are now working out of the box as well.
If sound is distorted, run:
<code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code>
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.76 / 6.1.8 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 805MHz (stable), 850MHz is not working with all devices, Turbo mode works.
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer.
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with Sphone or ofono scripts. Works with Conversations in -devel.
|-
| Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone.
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
06d03457bc955beb4274996d19bfa91af6b1b162
1636
1635
2024-06-02T09:40:41Z
Amunizp
69
/* Bootloader (U-Boot) setup */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly (dual boot mode):
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900, issue the following command on PC <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> you will get a message similar to the following:
<code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher
Not a local device
Waiting for USB device... </code>
and the connect Nokia N900 to the PC. you will then get a message like so:
<code>Found USB device: RX-51/RM-680/RM-696 (0x421:0x106) in Cold flashing mode
USB device product string: Nokia USB ROM
USB device serial number string: (not detected)
Detected USB device: (not detected)
Waiting for ASIC ID...
Detected OMAP3430 chip (revision 87)
Device: (not detected)
HW revision: (not detected)
NOLO version: (not detected)
Kernel version: (not detected)
Initfs version: (not detected)
Software release version: (not detected)
Content eMMC version: (not detected)
Root device: (not detected)
USB host mode: (not detected)
R&D mode: (not detected)
Switching to NOLO mode...
Sending OMAP memory boot message...
Waiting for USB device...
Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode
USB device product string: Nokia N900 (Update mode)
USB device serial number string: MUN233033
Detected USB device: RX-51
Initializing NOLO...
Device: RX-51
HW revision: 2204
NOLO version: 1.4.14
Kernel version: 2.6.28-20101501+0m5
Initfs version: (not detected)
Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203
Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND
Root device: flash
USB host mode: disabled
R&D mode: disabled
Load image:
File: test/u-boot-2013.04-2.bin
Image type: kernel
Image size: 212864 bytes
Sending image header...
Sending image...
100% [#################################################################]
Done
</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> you will get an output such as:
<code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher
Not a local device
Waiting for USB device...
Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode
USB device product string: Nokia N900 (Update mode)
USB device serial number string: MUN233033
Detected USB device: RX-51
Initializing NOLO...
Device: RX-51
HW revision: 2204
NOLO version: 1.4.14
Kernel version: 2.6.28-20101501+0m5
Initfs version: (not detected)
Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203
Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND
Root device: flash
USB host mode: disabled
R&D mode: disabled
Booting kernel with default cmdline...
</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. The screen might be very dim and look off. So it might be difficult to see. Boot up the first time will take a long time full 2 min on test. Some text will show and will then go back to black screen but eventually you will see the splash screen and later the icons will show.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
'''Overclocking is now available in -devel using cpufreq boost.'''
It uses 250-500-550-600-720-805-850MHz frequencies
To enable it, edit:
<code>/sys/devices/system/cpu/cpufreq/boost</code>
And replace 0 by 1.
It is possible to customise max/min/available frequencies editing files in:
<code>/sys/devices/system/cpu/cpu0/cpufreq/</code>
'''No other steps are needed and updates/upgrades work with boost mode.'''
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
'''WARNING: some devices can't run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor'''
== Overclocking - Old method for testing purpose ==
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table for example:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, SDXC U3 microSD card is a must. Class10 U1 cards are usually too slow to run Leste on N900 unfortunately, most probably because of their lower build quality.
'''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
('''Note:''' it is recommended to dist-upgrade to -devel to enable more features)
=== Gnome-tracker in $HOME ===
By default trackers are indexing the entire $HOME folder, causing severe slowdown.
To avoid this issue, the solution (until a proper fix) is to add a .nomedia file in /home/user folder:
<pre>touch /home/user/.nomedia</pre>
=== Deactivating apt-worker ===
Run:
<pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre>
=== Removing 250MHz CPU frequency (example) ===
Install cpufrequtils.
Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre>
=== More SWAP / SWAP activation ===
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot)
(Note: eMMC swap is '''highly recommended''' and faster than SD card swap)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
'''Note: like Fremantle, blur effect can cause lags and slowness.''' It is possible to deactivate it through the transitions.ini file:
<pre>[HOME]
radius = 0
radius_more = 0
</pre>
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv (0 - OMAP Textured Video)
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse (or User defined)
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: Auto
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Voice Calls / SIP Calls ===
- Dist-upgrade to -devel (not working without)
Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol)
Voice calls are now working out of the box as well.
If sound is distorted, run:
<code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code>
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.76 / 6.1.8 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 805MHz (stable), 850MHz is not working with all devices, Turbo mode works.
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer.
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with Sphone or ofono scripts. Works with Conversations in -devel.
|-
| Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone.
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
e27ec88c71e76ddb316d4c4e575c2ef6bfd2b85a
1637
1636
2024-06-02T18:17:24Z
Amunizp
69
/* Bootloader (U-Boot) setup */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly (dual boot mode):
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ save it in a subfolder called test.
3. Turn off Nokia N900, issue the following command on PC <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> you will get a message similar to the following:
<code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher
Not a local device
Waiting for USB device... </code>
and the connect Nokia N900 to the PC. you will then get a message like so:
<code>Found USB device: RX-51/RM-680/RM-696 (0x421:0x106) in Cold flashing mode
USB device product string: Nokia USB ROM
USB device serial number string: (not detected)
Detected USB device: (not detected)
Waiting for ASIC ID...
Detected OMAP3430 chip (revision 87)
Device: (not detected)
HW revision: (not detected)
NOLO version: (not detected)
Kernel version: (not detected)
Initfs version: (not detected)
Software release version: (not detected)
Content eMMC version: (not detected)
Root device: (not detected)
USB host mode: (not detected)
R&D mode: (not detected)
Switching to NOLO mode...
Sending OMAP memory boot message...
Waiting for USB device...
Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode
USB device product string: Nokia N900 (Update mode)
USB device serial number string: MUN233033
Detected USB device: RX-51
Initializing NOLO...
Device: RX-51
HW revision: 2204
NOLO version: 1.4.14
Kernel version: 2.6.28-20101501+0m5
Initfs version: (not detected)
Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203
Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND
Root device: flash
USB host mode: disabled
R&D mode: disabled
Load image:
File: test/u-boot-2013.04-2.bin
Image type: kernel
Image size: 212864 bytes
Sending image header...
Sending image...
100% [#################################################################]
Done
</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> you will get an output such as:
<code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher
Not a local device
Waiting for USB device...
Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode
USB device product string: Nokia N900 (Update mode)
USB device serial number string: MUN233033
Detected USB device: RX-51
Initializing NOLO...
Device: RX-51
HW revision: 2204
NOLO version: 1.4.14
Kernel version: 2.6.28-20101501+0m5
Initfs version: (not detected)
Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203
Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND
Root device: flash
USB host mode: disabled
R&D mode: disabled
Booting kernel with default cmdline...
</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. The screen might be very dim and look off. So it might be difficult to see. Boot up the first time will take a long time full 2 min on test. Some text will show and will then go back to black screen but eventually you will see the splash screen and later the icons will show.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
'''Overclocking is now available in -devel using cpufreq boost.'''
It uses 250-500-550-600-720-805-850MHz frequencies
To enable it, edit:
<code>/sys/devices/system/cpu/cpufreq/boost</code>
And replace 0 by 1.
It is possible to customise max/min/available frequencies editing files in:
<code>/sys/devices/system/cpu/cpu0/cpufreq/</code>
'''No other steps are needed and updates/upgrades work with boost mode.'''
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
'''WARNING: some devices can't run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor'''
== Overclocking - Old method for testing purpose ==
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table for example:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, SDXC U3 microSD card is a must. Class10 U1 cards are usually too slow to run Leste on N900 unfortunately, most probably because of their lower build quality.
'''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
('''Note:''' it is recommended to dist-upgrade to -devel to enable more features)
=== Gnome-tracker in $HOME ===
By default trackers are indexing the entire $HOME folder, causing severe slowdown.
To avoid this issue, the solution (until a proper fix) is to add a .nomedia file in /home/user folder:
<pre>touch /home/user/.nomedia</pre>
=== Deactivating apt-worker ===
Run:
<pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre>
=== Removing 250MHz CPU frequency (example) ===
Install cpufrequtils.
Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre>
=== More SWAP / SWAP activation ===
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot)
(Note: eMMC swap is '''highly recommended''' and faster than SD card swap)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
'''Note: like Fremantle, blur effect can cause lags and slowness.''' It is possible to deactivate it through the transitions.ini file:
<pre>[HOME]
radius = 0
radius_more = 0
</pre>
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv (0 - OMAP Textured Video)
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse (or User defined)
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: Auto
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Voice Calls / SIP Calls ===
- Dist-upgrade to -devel (not working without)
Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol)
Voice calls are now working out of the box as well.
If sound is distorted, run:
<code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code>
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.76 / 6.1.8 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 805MHz (stable), 850MHz is not working with all devices, Turbo mode works.
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer.
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with Sphone or ofono scripts. Works with Conversations in -devel.
|-
| Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone.
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
9bc935ec504e94dab3548bfb94dbf9612e288d60
1639
1637
2024-06-03T09:51:57Z
Amunizp
69
/* Quick */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly (dual boot mode):
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ save it in a subfolder called test.
3. Turn off Nokia N900, issue the following command on PC <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> you will get a message similar to the following:
<code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher
Not a local device
Waiting for USB device... </code>
and the connect Nokia N900 to the PC. you will then get a message like so:
<code>Found USB device: RX-51/RM-680/RM-696 (0x421:0x106) in Cold flashing mode
USB device product string: Nokia USB ROM
USB device serial number string: (not detected)
Detected USB device: (not detected)
Waiting for ASIC ID...
Detected OMAP3430 chip (revision 87)
Device: (not detected)
HW revision: (not detected)
NOLO version: (not detected)
Kernel version: (not detected)
Initfs version: (not detected)
Software release version: (not detected)
Content eMMC version: (not detected)
Root device: (not detected)
USB host mode: (not detected)
R&D mode: (not detected)
Switching to NOLO mode...
Sending OMAP memory boot message...
Waiting for USB device...
Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode
USB device product string: Nokia N900 (Update mode)
USB device serial number string: MUN233033
Detected USB device: RX-51
Initializing NOLO...
Device: RX-51
HW revision: 2204
NOLO version: 1.4.14
Kernel version: 2.6.28-20101501+0m5
Initfs version: (not detected)
Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203
Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND
Root device: flash
USB host mode: disabled
R&D mode: disabled
Load image:
File: test/u-boot-2013.04-2.bin
Image type: kernel
Image size: 212864 bytes
Sending image header...
Sending image...
100% [#################################################################]
Done
</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> you will get an output such as:
<code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher
Not a local device
Waiting for USB device...
Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode
USB device product string: Nokia N900 (Update mode)
USB device serial number string: MUN233033
Detected USB device: RX-51
Initializing NOLO...
Device: RX-51
HW revision: 2204
NOLO version: 1.4.14
Kernel version: 2.6.28-20101501+0m5
Initfs version: (not detected)
Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203
Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND
Root device: flash
USB host mode: disabled
R&D mode: disabled
Booting kernel with default cmdline...
</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. The screen might not be backlit so it will be difficult to read. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. The screen might be very dim and look off. So it might be difficult to see. Boot up the first time will take a long time full 2 min on test. Some text will show and will then go back to black screen but eventually you will see the splash screen and later the icons will show.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
'''Overclocking is now available in -devel using cpufreq boost.'''
It uses 250-500-550-600-720-805-850MHz frequencies
To enable it, edit:
<code>/sys/devices/system/cpu/cpufreq/boost</code>
And replace 0 by 1.
It is possible to customise max/min/available frequencies editing files in:
<code>/sys/devices/system/cpu/cpu0/cpufreq/</code>
'''No other steps are needed and updates/upgrades work with boost mode.'''
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
'''WARNING: some devices can't run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor'''
== Overclocking - Old method for testing purpose ==
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table for example:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, SDXC U3 microSD card is a must. Class10 U1 cards are usually too slow to run Leste on N900 unfortunately, most probably because of their lower build quality.
'''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
('''Note:''' it is recommended to dist-upgrade to -devel to enable more features)
=== Gnome-tracker in $HOME ===
By default trackers are indexing the entire $HOME folder, causing severe slowdown.
To avoid this issue, the solution (until a proper fix) is to add a .nomedia file in /home/user folder:
<pre>touch /home/user/.nomedia</pre>
=== Deactivating apt-worker ===
Run:
<pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre>
=== Removing 250MHz CPU frequency (example) ===
Install cpufrequtils.
Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre>
=== More SWAP / SWAP activation ===
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot)
(Note: eMMC swap is '''highly recommended''' and faster than SD card swap)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
'''Note: like Fremantle, blur effect can cause lags and slowness.''' It is possible to deactivate it through the transitions.ini file:
<pre>[HOME]
radius = 0
radius_more = 0
</pre>
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv (0 - OMAP Textured Video)
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse (or User defined)
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: Auto
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Voice Calls / SIP Calls ===
- Dist-upgrade to -devel (not working without)
Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol)
Voice calls are now working out of the box as well.
If sound is distorted, run:
<code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code>
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.76 / 6.1.8 || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 805MHz (stable), 850MHz is not working with all devices, Turbo mode works.
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer.
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with Sphone or ofono scripts. Works with Conversations in -devel.
|-
| Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone.
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
8b0d76f766ff1cb4e0d5d2f6bce95afaad35a1ac
PinePhone
0
93
1603
1526
2024-01-27T19:53:36Z
GaryM0101
68
Added steps to enable outgoing calls over VoLTE
wikitext
text/x-wiki
{{Stub}}
{{Infobox Device
|image=
|manufacturer=Pine64
|codename=
|dimensions=
|release_date=
|soc=Allwinner A64
|dram=
|power=
|lcd=
|video=
|audio=
|network=
|storage=
|usb=
|camera=
|sensors=
|other=
}}
This is for all PinePhones starting with the first Pinephone (Braveheart) phone, but not for the PinePhone Pro.
== Notes ==
Go here for '''[https://maedevu.maemo.org/images/pinephone/ latest images to test.] ''' Please [[Main_Page#Links|get in touch with us]] to report any issues or learn how to help out with the project.
== Status ==
Currently, most things work, for example you can:
* Run any applications in Debian and Devuan on your phone
* Connect to wifi
* Use the terminal
* Connect to 2G/3G/4G data connections
* Make and receive phone calls and SMS
* PinePhone keyboard is supported
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 5.15 || Mainline + some patches: https://github.com/maemo-leste/pine64-kernel
|-
| Serial || Yes || Via headphone jack (disable headphone switch)
|-
| Charging || Yes ||
|-
| Wireless || Yes || Involves installing out of tree driver
|-
| Ethernet || N/A || ps: USB Ethernet adapter tested and works
|-
| Bluetooth || YES || No UI integration yet
|-
| Infrared || N/A || TX only (hardware limitation).
|-
| USB C || Yes || Peripheral/slave, exposes network gadget by default. Host Untested
|-
| Keyboard || Yes || When a PP keyboard is connected, it works out-of-the-box
|-
| Screen || Yes || Modesetting driver
|-
| 3D Acceleration || Yes || mesa-lima
|-
| Touchscreen || Yes || Capacitive
|-
| Audio || Yes || Pulseaudio and UCM units
|-
| 2G/3G/4G data || YES || Works with ofono;
|-
| SMS || YES || Works with ofono, will using telepathy-ring. Sphone and Conversations are currently available
|-
| Phone calls || YES || Works with ofono; Calls work with sphone as UI
|-
| VoLTE || YES || Quectel EG25 has VoLTE support, no userland required, but setting VoLTE profile might be needed
|-
| Accelerometer || Yes ||
|-
| Proximity sensor || Yes ||
|-
| RGB LED || WIP || Works, but mce can't deal with LEDs without controllers yet.
|-
| Vibration Motor || ? ||
|-
| GPS || WIP || Works with WIP Leste GPS stack
|-
| Cameras || WIP || Driver present for rear (OV5640) and front (GC2145) cameras. User space support in progress with libcamera.
|}
=== More Information ===
* Virtual keyboard should work in all gtk2 applications (not yet in gtk3 and qt, but this is coming).
* Default virtual keyboard is set to on. You can check by tapping the top left corner->"Settings"->"Text input"-> ensure the "Use virtual keyboard" option is checked. You may also want to change the keyboard layout by changing the dictionary settings.
* WiFi and terminal work.
* Some rendering bugs in portrait mode remain, so the default desktop orientation is landscape for now (<code>xrandr -o right</code>). Please note that if orientation is changed (e.g. with <code>xrandr -o normal</code>) the ui will still be reading original key positions.
* Screen brightness adjustments in UI do not work on the Pinephone yet. There is also a user reported when "brightness" UI setting is set to minimum (no visual change normally), the screen will stay black after reboot with WiFi set to ON with kill switch. However screen is normal after reboot if WiFi set to OFF with kill switch even minimum "brightness" UI setting. You may still change the screen brightness with terminal commands: <code>xrandr --output DSI-1 --brightness 0.5</code>
* Performance is not bad, but will get better, with hildon-desktop optimisations and as lima improves.
* Many "games" packages in the Application Manager don't work well yet.
* '''VoLTE should work out-of-the-box.''' If not, please set the VoLTE profile via AT commands. For example, for T-Mobile in US, do:
$ echo 'AT+QMBNCFG="select","Commercial-TMO_VoLTE"' | atinout - /dev/EG25.AT -
In order to list all specific VoLTE profiles, use:
$ echo 'AT+QMBNCFG="list"' | atinout - /dev/EG25.AT -
To enable calling out over VoLTE, use:
$ echo 'AT+QCFG="ims",1' | atinout - /dev/EG25.AT -
Reboot the modem by rebooting the phone.
== Installation ==
Unlike most phones, it's pretty simple.
=== SD Card Installation ===
==== Prepare the SD card ====
Create a new msdos partition table using fdisk
$ sudo fdisk /dev/''SDCARD''
# press 'p' to view current table
# press 'o' to erase and make a new table
# press 'w' to write changes and quit
==== Write the image to an SD-Card. ====
Download the latest image and the associated checksum file from [https://maedevu.maemo.org/images/pinephone/ here].
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''IMAGE FILE''
$ wget https://maedevu.maemo.org/images/pinephone/''DATE''/''CHECKSUM FILE''
$ sha256sum maemo-leste-*-arm64-pinephone-*.img.xz
$ cat maemo-leste-*-arm64-pinephone-*.img.xz.sha56
Compare the output. If they do not match, stop and ask someone in the project for help. If the checksums match, extract the image:
$ unxz maemo-leste-*-arm64-pinephone-*.img.xz
Write the image to microSD. '''''Be very careful with this step''''' to select the correct device.
$ dd if=maemo-leste-*-arm64-pinephone-*.img /path/to/sd-card bs=4M status=progress conv=fsync
Block size set to 4M will work most of the time. If not, try 1M, although this will take considerably longer. Do not use partition numbers, or it won't boot. For example: sdd, not sdds1 or sddp1; mmcblk0, not mmcblk0p1. In most cases with SD cards, your computer might read the SD card as mmcblk0 or something similar.
<small>Make absolutely sure you replace the input file <code>if=</code> argument with the path to your file, and the <code>/dev/sdX</code> in the output file <code>of=</code> argument with the correct device name. This is very important, as you will lose all the data on the device you selected, make sure it is the correct one. You can use Gnome Disks, gparted, [https://etcher.io/ Etcher], etc...your choice. Again, as with all of these tools, be careful to select the microSD card not your computer hard drive.</small>
=== eMMC Installation ===
'''Some notes have been adapted from the [https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Installation_to_the_eMMC Pine64 Wiki]'''.
==== Preparing the .img file for eMMC boot ====
Download the .img.xz version of the image and extract it:
$ unxz -k maemo-leste-*-arm64-pinephone-*.img.xz
The image, by default, points to <code>/dev/mmcblk0</code> for SD cards, which must be modified to point to <code>/dev/mmcblk2</code> for the eMMC. To start, mount the image to a loop device.
$ sudo losetup -P /dev/loop0 maemo-leste-*-arm64-pinephone-*.img
Mount the second partition to /mnt and the first partition to /mnt/boot and enter /mnt:
$ sudo mount /dev/loop0p2 /mnt
$ sudo mount /dev/loop0p1 /mnt/boot
$ cd /mnt
Use the editor of your choice to edit <code>/mnt/etc/fstab</code>, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code>.
Now we need to edit <code>boot.scr</code>. For that you will need to download <code>boot.txt</code> from Maemo Leste github:
$ cd /mnt/boot
$ sudo wget https://raw.githubusercontent.com/maemo-leste/pine64-uboot/master/boot.txt
Now we do the same step as we did for the fstab, replacing <code>/dev/mmcblk0</code> with <code>/dev/mmcblk2</code> in <code>boot.txt</code>.
To regenerate <code>boot.scr</code> you need to install <code>u-boot-tools</code> first to be able to use mkimage.
Regenerate <code>boot.scr</code>:
$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
Leave /mnt and unmount the partitions:
$ cd ~
$ sudo umount -R /mnt
We can now save the image we just modified using dd:
$ sudo dd if=/dev/loop0 of=maemo-leste-1.0-arm64-pinephone-EMMC.img
The image is now ready to be installed to the eMMC.
We can now remove the loop device we created earlier:
$ sudo losetup -d /dev/loop0
==== Install Using Tow-Boot ====
If you [https://tow-boot.org/devices/pine64-pinephoneA64.html flashed tow-boot to the PinePhone] the eMMC can be flashed by holding vol+ on startup to boot into USB Mass Storage mode.
The process of flashing Maemo Leste to the eMMC is identical to that of any other storage medium - e.g. a microSD card. You can use the <i>dd</i> command or a utility such as Etcher or Gnome Disks, etc.
==== Install Using JumpDrive ====
You can flash Maemo Leste to eMMC using JumpDrive. This utility boots from microSD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.
The process of flashing Maemo Leste to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a microSD card.
[https://wiki.pine64.org/wiki/PinePhone_Installation_Instructions#Using_JumpDrive JumpDrive instructions are on the Pine64 wiki.]
==== Install from the booted microSD ====
# Flash Maemo Leste to the microSD card
# Insert microSD card and boot the phone
# Download the latest Maemo Leste image on the booted OS; if you get errors during download, you'll have to expand the partition; and don't forget to re-check the checksums when you download.
# Extract the image file so that it only ends in ".img"
# Flash the image file to eMMC using <code>dd if='''IMAGE.img''' of=/dev/'''mmcblkX''' bs=1M status=progress conv=fsync</code> where X is the number label of the eMMC (of the disk, not the partition!). Use the command <code>lsblk</code> to check your devices: typically with the current kernel the microSD card is ''/dev/mmcblk0'' and the eMMC is ''/dev/mmcblk2'' but as always with ''dd'' be extremely cautious to get the devices correct.
# Turn off phone, remove microSD card and then turn on the phone.
== Post-Installation ==
=== How to take a picture ===
Maemo userland to take pictures or make videos is ready yet. The default camera app is pinhole: https://github.com/piggz/harbour-pinhole/
Both cameras (rear and front) are supported. Work in ongoing to improve the camera app.
To open the (pinhole) camera from the terminal:
$ harbour-pinhole
Or open it from Maemo desktop "Camera" icon.
In order to trigger auto-focus:
$ v4l2-ctl -d /dev/v4l-subdev1 -c focus_automatic_continuous=1
Or trigger autofocus using the commands to start and stop manually:
$ v4l2-ctl -d /dev/v4l-subdev1 -c auto_focus_start=1
then wait till it gets the focus where you want, then
$ v4l2-ctl -d /dev/v4l-subdev1 -c auto_focus_stop=1
You can use this script as reference to take a picture:
https://github.com/OpenMandrivaAssociation/pinephone-tools/blob/master/camera-setup
Or use libcamera tools (libcamera-tools package). To list the cameras:
$ cam -l
Example to capture 10 pictures with the rear camera:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/some_dir --capture=10
Example to capture 10 pictures with the front camera:
$ cam --camera "/base/i2c-csi/front-camera@3c" --file=/home/user/some_dir --capture=10
And then, conver the raw ".bin" files to some useful format with ffmpeg or any other image conversion tool. Example:
$ ffmpeg -f image2 -vcodec rawvideo -s 1600x1200 -pix_fmt bayer_bggr8 -i picture.bin converted_picture.jpeg
Other option is to use "cam" to capture to DNG. Example:
$ cam --camera "/base/i2c-csi/rear-camera@4c" --file=/home/user/frame-#.dng --capture=10
And then convert to .ppm (for .tiff use "-T" cmd line parameter). Eg:
$ dcraw frame-cam0-stream0-000001.dng
Also the graphical tool "qcam" is working! Run it with:
$ qcam -r gles -spixelformat=NV21,width=1280,height=720 -platform xcb -style=fusion
=== Enabling Flash Light / Torch ===
Enable:
$ echo 1 > /sys/class/leds/white:flash/brightness
Disable:
$ echo 0 > /sys/class/leds/white:flash/brightness
Trigger flash strobe:
$ echo 1 > /sys/class/leds/white:flash/flash_strobe
=== PinePhone Keyboard ===
First of all, make sure you have the latest firmware loaded in the keyboard (firmware is here: https://github.com/maemo-leste-upstream-forks/pinephone-keyboard/tree/master/firmware/build and userland here: https://github.com/maemo-leste-upstream-forks/pinephone-keyboard ):
$ ppkb-i2c-flasher -e i2c -i fw-user.bin write reset
Load the xkb layout ( available here: https://codeberg.org/phalio/ppkb-layouts/src/branch/main/xkb )
$ setxkbmap pp altgr
=== Suspend ===
Suspend can be triggered with:
$ echo mem > /sys/power/state
A temporary workaround for calling suspend from UI is here: https://github.com/rafael2k/maemo-suspend/
=== Volume Applet ===
Volume applet ( https://github.com/maemo-leste/maemo-statusmenu-volume ) needs a change in "sink_name" at "/usr/share/maemo-statusmenu-volume/sinks.ini". Edit the sinks.ini in order the sink_name is:
sink_name=alsa_output.0.HiFi__hw_PinePhone_0__sink
=== Installing apps ===
* Apps can be installed just as on any Devuan system with:
$ sudo apt install ''package-name''
* There is also the app store.
=== Launching apps ===
This works for any app. Say for instance, you want to run Iceweasel/Firefox:
* Launch apps from the desktop
* Launch apps from your console:
$ iceweasel &
* Install a universal app launcher that you can run from desktop:
$ sudo apt install desktop-cmd-exec
=== Make apps show up on desktop ===
Apps installed via apt, or otherwise not installed from the app store, don't come with desktop icons pre-configured and so won't show up on the desktop. If you want desktop icons for your apps, you have to edit .desktop files for the apps you want to show up on the desktop, see ([https://wiki.archlinux.org/title/Desktop_entries examples])
To view a list of currently installed apps, do:
$ sudo apt list --installed | less
This should help you figure out for which apps to configure .desktop icons. A benefit with all this is that you can decide which apps you want to show or hide.
=== Unhide the keyboard ===
The virtual keyboard can be summoned by hitting the volume-up key while the cursor is in a text field (such as the URL bar in a web browser like Firefox). This will be fixed in a future release (image tested: 20220731).
=== Note about Calculator ===
The default GUI calculator works (08/15/2022) but you won't see the numbers appear on screen until after you touch the next key. It should be used in landscape mode for best results, as there are additional display issues in portrait mode.
=== Time zone / World Clock ===
Currently (06/15/2022) the interface to the default GUI clock has a few bugs but the workaround is to:
* Go to Settings > Date and Time > and adjust time zone and date and time there. This also has some bugs, but only in portrait mode.
* Or just use the console:
$ sudo date -s HH:MM
$ sudo date -s YYYYMMDD
$ sudo ln -s /usr/share/zoneinfo/YOURREGION/YOURCITY /etc/localtime
=== More Tips & Tricks ===
Visit [https://leste.maemo.org/Tricks '''this page'''] for more general advice on customizing Maemo on your PinePhone.
[[Category:Device]]
620d45e3fc11866f9e28aebcc9cd0ab7c69fd4c1
Image Builder
0
100
1609
965
2024-02-12T19:40:29Z
Sicelo
5
/* Maemo 7 Leste */
wikitext
text/x-wiki
= How to build your own images =
== Maemo 7 Leste ==
'''[https://github.com/maemo-leste/image-builder Github]'''
1.) Install the following packages: <pre>debootstrap curl git wget qemu-user-static build-essential rsync gcc-arm-none-eabi gcc-multilib lib32z1 u-boot-tools device-tree-compiler lzop dosfstools vboot-utils vboot-kernel-utils libftdi-dev libfdt-dev swig libpython-dev bc bison flex libssl-dev zsh git</pre>
1.1) If you're using a distribution that is not Devuan, you will have to add a beowulf target to its scripts until the patch is merged upstream
<pre>
# wget -O /usr/share/debootstrap/scripts/ceres https://salsa.debian.org/installer-team/debootstrap/-/raw/e835c655006881af69de5476455ac0e7c824bcc4/scripts/ceres
# ln -s /usr/share/debootstrap/scripts/ceres /usr/share/debootstrap/scripts/chimaera
</pre>
2.) In your terminal, run the following commands:
$ git clone --recurse-submodules https://github.com/maemo-leste/image-builder.git
$ cd image-builder/arm-sdk
$ zsh -f
$ source sdk
$ load devuan DEVICE_NAME maemo
$ build_arm_dist
Note: replace <code>DEVICE_NAME</code> with your board name:
* n900
* n950
* n9
* droid4
* odroidxu
* odroidxu4
* ouya
* raspi1
* raspi2
* raspi3
* raspi4
* rock64
* pinephone-dontbeevil
* pinephone
* pinetab
* sunxi
* turbox-twister
46c594f7f3b775d7651f623a2ae3a8913285c574
Purism Librem5
0
225
1616
2024-03-15T22:02:32Z
Sicelo
5
New device - Librem5
wikitext
text/x-wiki
{{Infobox Device
|manufacturer=Purism
|codename=Librem5
|dimensions=74×152×15 mm
|release_date=
|soc=NXP i.MX 8M Quad core Cortex-A53, 64bit ARM (auxiliary 266MHz Cortex-M4F)
|dram=3GB LPDDR4-3200
|power=
|lcd=1440x720 IPS TFT 5.7″
|video=Vivante GC7000Lite
|audio=
|network=
|storage=32GB
|usb=
|camera=
|sensors=
|other=
|category=Supported
}}
== Installation ==
[[Category:Device]]
0b1a02e163c90f1345b2c183eeb712d20f7c1630
Sync
0
201
1617
1411
2024-04-22T22:57:11Z
Wizzup
4
Update tls chain validation issues to mention it's ok now on chimaera
wikitext
text/x-wiki
This page explains and suggests various ways of synchronizing contacts, calendars and files.
= Calendar, Notes, Tasks and Contacts =
Synchronizing calendar, notes and tasks (using CalDav) and contacts (using CardDav) can be done using syncevolution (other [https://syncevolution.org/documentation/backends/ backends are available], but not currently documented here). A frontend to running synchronization tasks is available in the repository (Syncevolution Frontend).
== GUI ==
The "Syncevolution Frontend" application is a graphical interface to syncevolution. While the interface can technically help you set up the synchronisation configuration through the graphical interface, we haven't tried it and do not have instructions for it at the moment. We only use it for scheduling and running synchronisations - the configuration still has to be done using the console, currently.
(Contributions welcome)
<gallery widths=320px heights=173px>
File:syncevolution.png|main syncevolution screen
File:syncevolution-2.png|syncevolution for a specific sync target
</gallery>
== Synchronizing with syncevolution CalDav + CardDav ==
First, install syncevolution using '''sudo apt-get install syncevolution'''.
If you get stuck in an odd state setting this up, you could consider running the following to get to a clean state, at least with regards to syncevolution configuration:
<pre>
rm -rf /home/user/.config/syncevolution
</pre>
=== NextCloud synchronizing ===
We will be synchronizing the calendar and such using local '''maemo-events''', '''maemo-notes''' and '''maemo-tasks''' backends using the '''caldav''' backend.
For contacts, we will synchronize '''evolution-contacts''' using '''carddav'''.
A few URLs are required, first, the '''main Nextcloud DAV url''', this will appear like:
<pre>https://my.nextcloud.org/remote.php/dav</pre>
then there is the '''url for a specific calendar''', this is called the "Private Link" and you can get it by clicking "Copy Private Link" for a given calendar in Nextcloud, this might look like so:
<pre>
https://my.nextcloud.org/remote.php/dav/calendars/userhere/calendarnamehere/
</pre>
Finally, for your address book (contacts) synchronization, the '''contacts URL''' is needed (in Nextcloud, go to contacts, settings, "Copy Link" for your contacts):
<pre>
https://my.nextcloud.org/remote.php/dav/addressbooks/users/userhere/contacts/
</pre>
Given the above, a setup to synchronize calendar, tasks, notes and contacts could look like this:
<pre>
syncevolution --configure \
--template webdav \
username=NEXTCLOUD-USER-HERE \
password=NEXTCLOUD-PASS-HERE \
syncURL=MAIN-DAV-URL-HERE \
target-config@nextcloud
syncevolution --configure \
--template webdav \
database=CALENDAR-URL-HERE \
backend=caldavtodo \
target-config@nextcloud nextcloudtodo
syncevolution --configure \
--template webdav \
database=CALENDAR-URL-HERE \
backend=caldavjournal \
target-config@nextcloud nextcloudjournal
syncevolution --configure \
--template webdav \
database=CALENDAR-URL-HERE \
backend=caldav \
target-config@nextcloud nextcloudcal
syncevolution --configure \
--template webdav \
database=CONTACTS-URL-HERE \
backend=carddav \
target-config@nextcloud contacts
syncevolution --configure \
--template SyncEvolution_Client \
sync=none \
syncURL=local://@nextcloud \
username= \
password= \
nextcloud
syncevolution --configure \
sync=two-way \
backend=maemo-tasks \
database= \
nextcloud nextcloudtodo
syncevolution --configure \
sync=two-way \
backend=maemo-notes\
database= \
nextcloud nextcloudjournal
syncevolution --configure \
sync=two-way \
backend=maemo-events \
database= \
nextcloud nextcloudcal
syncevolution --configure \
sync=two-way \
backend=evolution-contacts \
nextcloud contacts
</pre>
All of the above is configuration that only needs to be done once.
Depending on your exact situation, your initial synchronisation could only use only values from your phone, from your nextcloud, or both. If you want to merge both, my understanding is that the '''slow''' method achieves this:
<pre>
syncevolution --sync slow nextcloud nextcloudjournal
syncevolution --sync slow nextcloud nextcloudtodo
syncevolution --sync slow nextcloud nextcloudcal
syncevolution --sync slow nextcloud contacts
</pre>
Use the '''two-way''' synchronization method for '''normal synchronization''' (daily, hourly, etc synchronizations), like so:
<pre>
syncevolution --sync two-way nextcloud nextcloudjournal
syncevolution --sync two-way nextcloud nextcloudtodo
syncevolution --sync two-way nextcloud nextcloudcal
syncevolution --sync two-way nextcloud contacts
</pre>
==== Warning: TLS Chain validation issues ====
If you run into problems with TLS Chain validation, first try to figure out if the problem is on your end.
Syncevolution did have a problem for me validation the chain of my next cloud instance, so for testing purposes I set '''SSLVerifyServer = 0''' in '''/home/user/.config/syncevolution/nextcloud/peers/target-config/config.ini'''
On Chimaera this problem should no longer exist - it was only a problem for Beowulf.
== Radicale synchronising ==
Radicale is a simple CardDAV and CalDAV server, and is set up similarly to nextcloud. Just browse to the Radicale web URL, and use the following URLs:
# The main DAV url is simple the URL to your radicale server (without the .web part)
# The calendar URL is simply the http(s) URL to the calendar that you want to synchronize
# The contacts URL is simple the http(s) URL of the addressbook that you want to synchronize
The username (and optional password) are the radicale credentials.
=== Radicale Testing Server ===
For testing purposes, here is how to quickly run a radicale server, this assumed it's installed.
<pre>
mkdir -p ~/radicale
cd ~/radicale
python3 -m radicale --config "" --storage-filesystem-folder `pwd` -H localhost:5223 --logging-level info
</pre>
Now browse to http://localhost:5223, create an account (password is optional), and you should be able to synchronize, assuming the devices can reach your radicale server (don't have it listen on localhost only, perhaps use 0.0.0.0:5223 for LAN testing)
= Files synchronization =
This section ought to discuss software that can be used for this purpose, e.g. syncthing, nextcloud, ...
Parazyd started on a GUI for nextcloud file synchronisation, here: https://github.com/maemo-leste-extras/nextcloud-sync
= Known Issues =
* Synchronizing calendar to radicale gives errors if there are unnamed calendar events.
* Synchronizing contacts to radicale gives errors if there are contacts without Firstname or Lastname.
= Further reading =
The "old" Maemo page on synchronisation might prove fruitful for those wanting to port over more: https://wiki.maemo.org/Sync
c01048a80c2c10842234097e6a4a83975898b21a
1618
1617
2024-04-27T09:06:22Z
Wizzup
4
Add instructions on how to sync to additional calendars
wikitext
text/x-wiki
This page explains and suggests various ways of synchronizing contacts, calendars and files.
= Calendar, Notes, Tasks and Contacts =
Synchronizing calendar, notes and tasks (using CalDav) and contacts (using CardDav) can be done using syncevolution (other [https://syncevolution.org/documentation/backends/ backends are available], but not currently documented here). A frontend to running synchronization tasks is available in the repository (Syncevolution Frontend).
== GUI ==
The "Syncevolution Frontend" application is a graphical interface to syncevolution. While the interface can technically help you set up the synchronisation configuration through the graphical interface, we haven't tried it and do not have instructions for it at the moment. We only use it for scheduling and running synchronisations - the configuration still has to be done using the console, currently.
(Contributions welcome)
<gallery widths=320px heights=173px>
File:syncevolution.png|main syncevolution screen
File:syncevolution-2.png|syncevolution for a specific sync target
</gallery>
== Synchronizing with syncevolution CalDav + CardDav ==
First, install syncevolution using '''sudo apt-get install syncevolution'''.
If you get stuck in an odd state setting this up, you could consider running the following to get to a clean state, at least with regards to syncevolution configuration:
<pre>
rm -rf /home/user/.config/syncevolution
</pre>
=== NextCloud synchronizing ===
We will be synchronizing the calendar and such using local '''maemo-events''', '''maemo-notes''' and '''maemo-tasks''' backends using the '''caldav''' backend.
For contacts, we will synchronize '''evolution-contacts''' using '''carddav'''.
A few URLs are required, first, the '''main Nextcloud DAV url''', this will appear like:
<pre>https://my.nextcloud.org/remote.php/dav</pre>
then there is the '''url for a specific calendar''', this is called the "Private Link" and you can get it by clicking "Copy Private Link" for a given calendar in Nextcloud, this might look like so:
<pre>
https://my.nextcloud.org/remote.php/dav/calendars/userhere/calendarnamehere/
</pre>
Finally, for your address book (contacts) synchronization, the '''contacts URL''' is needed (in Nextcloud, go to contacts, settings, "Copy Link" for your contacts):
<pre>
https://my.nextcloud.org/remote.php/dav/addressbooks/users/userhere/contacts/
</pre>
Given the above, a setup to synchronize calendar, tasks, notes and contacts could look like this:
<pre>
syncevolution --configure \
--template webdav \
username=NEXTCLOUD-USER-HERE \
password=NEXTCLOUD-PASS-HERE \
syncURL=MAIN-DAV-URL-HERE \
target-config@nextcloud
syncevolution --configure \
--template webdav \
database=CALENDAR-URL-HERE \
backend=caldavtodo \
target-config@nextcloud nextcloudtodo
syncevolution --configure \
--template webdav \
database=CALENDAR-URL-HERE \
backend=caldavjournal \
target-config@nextcloud nextcloudjournal
syncevolution --configure \
--template webdav \
database=CALENDAR-URL-HERE \
backend=caldav \
target-config@nextcloud nextcloudcal
syncevolution --configure \
--template webdav \
database=CONTACTS-URL-HERE \
backend=carddav \
target-config@nextcloud contacts
syncevolution --configure \
--template SyncEvolution_Client \
sync=none \
syncURL=local://@nextcloud \
username= \
password= \
nextcloud
syncevolution --configure \
sync=two-way \
backend=maemo-tasks \
database= \
nextcloud nextcloudtodo
syncevolution --configure \
sync=two-way \
backend=maemo-notes\
database= \
nextcloud nextcloudjournal
syncevolution --configure \
sync=two-way \
backend=maemo-events \
database= \
nextcloud nextcloudcal
syncevolution --configure \
sync=two-way \
backend=evolution-contacts \
nextcloud contacts
</pre>
All of the above is configuration that only needs to be done once.
Depending on your exact situation, your initial synchronisation could only use only values from your phone, from your nextcloud, or both. If you want to merge both, my understanding is that the '''slow''' method achieves this:
<pre>
syncevolution --sync slow nextcloud nextcloudjournal
syncevolution --sync slow nextcloud nextcloudtodo
syncevolution --sync slow nextcloud nextcloudcal
syncevolution --sync slow nextcloud contacts
</pre>
Use the '''two-way''' synchronization method for '''normal synchronization''' (daily, hourly, etc synchronizations), like so:
<pre>
syncevolution --sync two-way nextcloud nextcloudjournal
syncevolution --sync two-way nextcloud nextcloudtodo
syncevolution --sync two-way nextcloud nextcloudcal
syncevolution --sync two-way nextcloud contacts
</pre>
=== Managing and synchronising additional calendars ===
The default maemo-events / maemo-tasks / maemo-notes database is called "N900" (in the Calendar application, go to Settings, and then click on "Edit claendars") - marked as "DEFAULT_SYNC".
This means that is no specific database is provided above, the synchronisation will be done against this calendar. If you have a need to have multiple remote calendars and sync them against other Maemo calendars, create a new calendar using the Calendar application (Settings -> Edit calendars -> New). For the sake of the example, call it MoreTasks.
Then, assuming you used the above nextcloud synchronisation example, run something like this (this example only syncs tasks/todo):
<pre>
syncevolution --configure \
--template webdav \
database=TASKS_URL \
backend=caldavtodo \
target-config@nextcloud moretaskstodo
syncevolution --configure \
sync=two-way \
backend=maemo-tasks \
database=MoreTasks \
nextcloud moretaskstodo
syncevolution --sync slow nextcloud nextcloudtodo
syncevolution --sync two-way nextcloud moretaskstodo
</pre>
The trick being that you specify the database name for the "database=" argument to the second syncevolution call.
=== Warning: TLS Chain validation issues ===
If you run into problems with TLS Chain validation, first try to figure out if the problem is on your end.
Syncevolution did have a problem for me validation the chain of my next cloud instance, so for testing purposes I set '''SSLVerifyServer = 0''' in '''/home/user/.config/syncevolution/nextcloud/peers/target-config/config.ini'''
On Chimaera this problem should no longer exist - it was only a problem for Beowulf.
== Radicale synchronising ==
Radicale is a simple CardDAV and CalDAV server, and is set up similarly to nextcloud. Just browse to the Radicale web URL, and use the following URLs:
# The main DAV url is simple the URL to your radicale server (without the .web part)
# The calendar URL is simply the http(s) URL to the calendar that you want to synchronize
# The contacts URL is simple the http(s) URL of the addressbook that you want to synchronize
The username (and optional password) are the radicale credentials.
=== Radicale Testing Server ===
For testing purposes, here is how to quickly run a radicale server, this assumed it's installed.
<pre>
mkdir -p ~/radicale
cd ~/radicale
python3 -m radicale --config "" --storage-filesystem-folder `pwd` -H localhost:5223 --logging-level info
</pre>
Now browse to http://localhost:5223, create an account (password is optional), and you should be able to synchronize, assuming the devices can reach your radicale server (don't have it listen on localhost only, perhaps use 0.0.0.0:5223 for LAN testing)
= Files synchronization =
This section ought to discuss software that can be used for this purpose, e.g. syncthing, nextcloud, ...
Parazyd started on a GUI for nextcloud file synchronisation, here: https://github.com/maemo-leste-extras/nextcloud-sync
= Known Issues =
* Synchronizing calendar to radicale gives errors if there are unnamed calendar events.
* Synchronizing contacts to radicale gives errors if there are contacts without Firstname or Lastname.
= Further reading =
The "old" Maemo page on synchronisation might prove fruitful for those wanting to port over more: https://wiki.maemo.org/Sync
dc6265628c57ec56ba21c2847833690008f1a48c
1619
1618
2024-04-27T10:09:25Z
Wizzup
4
/* Radicale Testing Server */
wikitext
text/x-wiki
This page explains and suggests various ways of synchronizing contacts, calendars and files.
= Calendar, Notes, Tasks and Contacts =
Synchronizing calendar, notes and tasks (using CalDav) and contacts (using CardDav) can be done using syncevolution (other [https://syncevolution.org/documentation/backends/ backends are available], but not currently documented here). A frontend to running synchronization tasks is available in the repository (Syncevolution Frontend).
== GUI ==
The "Syncevolution Frontend" application is a graphical interface to syncevolution. While the interface can technically help you set up the synchronisation configuration through the graphical interface, we haven't tried it and do not have instructions for it at the moment. We only use it for scheduling and running synchronisations - the configuration still has to be done using the console, currently.
(Contributions welcome)
<gallery widths=320px heights=173px>
File:syncevolution.png|main syncevolution screen
File:syncevolution-2.png|syncevolution for a specific sync target
</gallery>
== Synchronizing with syncevolution CalDav + CardDav ==
First, install syncevolution using '''sudo apt-get install syncevolution'''.
If you get stuck in an odd state setting this up, you could consider running the following to get to a clean state, at least with regards to syncevolution configuration:
<pre>
rm -rf /home/user/.config/syncevolution
</pre>
=== NextCloud synchronizing ===
We will be synchronizing the calendar and such using local '''maemo-events''', '''maemo-notes''' and '''maemo-tasks''' backends using the '''caldav''' backend.
For contacts, we will synchronize '''evolution-contacts''' using '''carddav'''.
A few URLs are required, first, the '''main Nextcloud DAV url''', this will appear like:
<pre>https://my.nextcloud.org/remote.php/dav</pre>
then there is the '''url for a specific calendar''', this is called the "Private Link" and you can get it by clicking "Copy Private Link" for a given calendar in Nextcloud, this might look like so:
<pre>
https://my.nextcloud.org/remote.php/dav/calendars/userhere/calendarnamehere/
</pre>
Finally, for your address book (contacts) synchronization, the '''contacts URL''' is needed (in Nextcloud, go to contacts, settings, "Copy Link" for your contacts):
<pre>
https://my.nextcloud.org/remote.php/dav/addressbooks/users/userhere/contacts/
</pre>
Given the above, a setup to synchronize calendar, tasks, notes and contacts could look like this:
<pre>
syncevolution --configure \
--template webdav \
username=NEXTCLOUD-USER-HERE \
password=NEXTCLOUD-PASS-HERE \
syncURL=MAIN-DAV-URL-HERE \
target-config@nextcloud
syncevolution --configure \
--template webdav \
database=CALENDAR-URL-HERE \
backend=caldavtodo \
target-config@nextcloud nextcloudtodo
syncevolution --configure \
--template webdav \
database=CALENDAR-URL-HERE \
backend=caldavjournal \
target-config@nextcloud nextcloudjournal
syncevolution --configure \
--template webdav \
database=CALENDAR-URL-HERE \
backend=caldav \
target-config@nextcloud nextcloudcal
syncevolution --configure \
--template webdav \
database=CONTACTS-URL-HERE \
backend=carddav \
target-config@nextcloud contacts
syncevolution --configure \
--template SyncEvolution_Client \
sync=none \
syncURL=local://@nextcloud \
username= \
password= \
nextcloud
syncevolution --configure \
sync=two-way \
backend=maemo-tasks \
database= \
nextcloud nextcloudtodo
syncevolution --configure \
sync=two-way \
backend=maemo-notes\
database= \
nextcloud nextcloudjournal
syncevolution --configure \
sync=two-way \
backend=maemo-events \
database= \
nextcloud nextcloudcal
syncevolution --configure \
sync=two-way \
backend=evolution-contacts \
nextcloud contacts
</pre>
All of the above is configuration that only needs to be done once.
Depending on your exact situation, your initial synchronisation could only use only values from your phone, from your nextcloud, or both. If you want to merge both, my understanding is that the '''slow''' method achieves this:
<pre>
syncevolution --sync slow nextcloud nextcloudjournal
syncevolution --sync slow nextcloud nextcloudtodo
syncevolution --sync slow nextcloud nextcloudcal
syncevolution --sync slow nextcloud contacts
</pre>
Use the '''two-way''' synchronization method for '''normal synchronization''' (daily, hourly, etc synchronizations), like so:
<pre>
syncevolution --sync two-way nextcloud nextcloudjournal
syncevolution --sync two-way nextcloud nextcloudtodo
syncevolution --sync two-way nextcloud nextcloudcal
syncevolution --sync two-way nextcloud contacts
</pre>
=== Managing and synchronising additional calendars ===
The default maemo-events / maemo-tasks / maemo-notes database is called "N900" (in the Calendar application, go to Settings, and then click on "Edit claendars") - marked as "DEFAULT_SYNC".
This means that is no specific database is provided above, the synchronisation will be done against this calendar. If you have a need to have multiple remote calendars and sync them against other Maemo calendars, create a new calendar using the Calendar application (Settings -> Edit calendars -> New). For the sake of the example, call it MoreTasks.
Then, assuming you used the above nextcloud synchronisation example, run something like this (this example only syncs tasks/todo):
<pre>
syncevolution --configure \
--template webdav \
database=TASKS_URL \
backend=caldavtodo \
target-config@nextcloud moretaskstodo
syncevolution --configure \
sync=two-way \
backend=maemo-tasks \
database=MoreTasks \
nextcloud moretaskstodo
syncevolution --sync slow nextcloud nextcloudtodo
syncevolution --sync two-way nextcloud moretaskstodo
</pre>
The trick being that you specify the database name for the "database=" argument to the second syncevolution call.
=== Warning: TLS Chain validation issues ===
If you run into problems with TLS Chain validation, first try to figure out if the problem is on your end.
Syncevolution did have a problem for me validation the chain of my next cloud instance, so for testing purposes I set '''SSLVerifyServer = 0''' in '''/home/user/.config/syncevolution/nextcloud/peers/target-config/config.ini'''
On Chimaera this problem should no longer exist - it was only a problem for Beowulf.
== Radicale synchronising ==
Radicale is a simple CardDAV and CalDAV server, and is set up similarly to nextcloud. Just browse to the Radicale web URL, and use the following URLs:
# The main DAV url is simple the URL to your radicale server (without the .web part)
# The calendar URL is simply the http(s) URL to the calendar that you want to synchronize
# The contacts URL is simple the http(s) URL of the addressbook that you want to synchronize
The username (and optional password) are the radicale credentials.
=== Radicale Testing Server ===
For testing purposes, here is how to quickly run a radicale server, this assumes that radicale is installed.
<pre>
mkdir -p ~/radicale
cd ~/radicale
python3 -m radicale --config "" --storage-filesystem-folder `pwd` -H localhost:5223 --logging-level info
</pre>
Now browse to http://localhost:5223, create an account (password is optional), and you should be able to synchronize, assuming the devices can reach your radicale server (don't have it listen on localhost only, perhaps use 0.0.0.0:5223 for LAN testing)
= Files synchronization =
This section ought to discuss software that can be used for this purpose, e.g. syncthing, nextcloud, ...
Parazyd started on a GUI for nextcloud file synchronisation, here: https://github.com/maemo-leste-extras/nextcloud-sync
= Known Issues =
* Synchronizing calendar to radicale gives errors if there are unnamed calendar events.
* Synchronizing contacts to radicale gives errors if there are contacts without Firstname or Lastname.
= Further reading =
The "old" Maemo page on synchronisation might prove fruitful for those wanting to port over more: https://wiki.maemo.org/Sync
64edb5a9ef0c3cbb40a2c3e8bb448c09ea3347bd
Development
0
61
1620
1285
2024-05-29T10:29:45Z
Wizzup
4
wikitext
text/x-wiki
Maemo Leste development is split up in a few different places.
== Communication and organising ==
* Our https://maemo-leste.github.io website is where we post (news) updates, as well as on talk.maemo.org (see this subforum https://talk.maemo.org/forumdisplay.php?f=66 and this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192)
* There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker
* The day-to-day development and user chatter mostly takes place in the [[IRC channel]]
* We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
* This wiki: for documenting the status of various long-running projects, status per device, etc.
== Task Summary ==
For current (semi) impactful tasks, see
[[Development/Tasks]]
== Codename ==
* Maemo Leste is currently based on Devuan Chimaera, which is based on Debian Bullseye.
== Guides ==
* [[Development/Porting Packages]]
* [[Development/Building Packages]]
* [[Development/Modified Software]]
* [[Development/Device Bringup]]
* https://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide
== Technical ==
All our git repositories can be found here: https://github.com/maemo-leste
=== Jenkins ===
To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/
=== Developing on a device ===
All development software and tests end up in 'chimaera-devel' apt source. For enabling this edit '/etc/apt/sources.list' and add this line:
deb https://maedevu.maemo.org/leste chimaera-devel main contrib non-free droid4
The exact line might depend on your device; just copy the maemo chimaera line and change chimaera to chimaera-devel - for example, if you're not on a mapphone (droid) device, you probably don't want the droid4 component in the line.
Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM)
The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]].
=== Building a Maemo Leste image ===
See https://leste.maemo.org/Image_Builder
=== List of Programs/Daemon specific to Maemo ===
https://leste.maemo.org/Development/Daemons
=== Crossbuilding ===
Multiarch is an ability present on modern Debian systems that allows you to build native packages for different architectures. This is nice because you can build packages for an ARM based phone using the full power of your x86 based PC/Mac/Notebook or a server.
Here we show how you can easily setup a multiarch environment and build a native package for Maemo Leste running on Nokia N900. We are going to make a container (chroot) for this job. It's because we don't want to pollute our main system.
# Make a container for our development system
DIR=/var/lib/container/stretch
sudo apt-get install qemu-user-static debootstrap systemd-container &&
sudo debootstrap --arch=armhf stretch $DIR http://deb.debian.org/debian &&
echo "strech_cross" | sudo tee $DIR/etc/debian_chroot &&
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR
# Setup build environment inside the container
cat >> ~/.bashrc << EOF &&
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
export CC=arm-linux-gnueabihf-gcc
export JOBS=$(grep processor /proc/cpuinfo | wc -l)
EOF
dpkg --add-architecture armhf &&
apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates &&
cat >> /etc/apt/sources.list << "EOF" &&
deb http://maedevu.maemo.org/leste ascii main contrib non-free n900
deb http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900
deb-src http://deb.debian.org/debian stretch main
deb-src http://maedevu.maemo.org/leste ascii main contrib non-free n900
deb-src http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900
EOF
wget --no-check-certificate https://maedevu.maemo.org/testing-key.asc &&
apt-key add testing-key.asc &&
rm -f testing-key.asc &&
rm -f /var/cache/apt/archives/*.deb &&
apt-get update &&
exec bash
# Build Xorg for Nokia N900
apt-get source xserver-xorg-core &&
cd xorg-server-1.19.2 &&
wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch &&
mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches &&
echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series &&
apt-get -y build-dep -a armhf . &&
time dpkg-buildpackage -aarmhf -j$JOBS -b &&
echo OK || echo FAIL
To login the container later:
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch
To remove the container:
sudo rm -fr /var/lib/container/stretch
=== Cross-distro solution for development inside an ARM/ARM64 chroot on a PC ===
It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices.
1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]:
$ sudo apt-get install qemu-user-static binfmt-support
The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''':
$ sudo update-binfmts --display qemu-arm
qemu-arm (enabled):
package = qemu-user-static
type = magic
offset = 0
magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00
mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff
interpreter = /usr/bin/qemu-arm-static
detector =
2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it:
$ mkdir leste-arm64
$ cd leste-arm64
$ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf -
3. From the same directory, configure the chroot with a few resources from your host system:
$ sudo mount -t proc proc proc
$ sudo mount -o bind /dev dev
$ sudo mount -o bind /dev/pts dev/pts
4. From the same directory, create a symlink for the mount table:
$ sudo ln -s /proc/mounts etc/mtab
5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user:
$ sudo LC_ALL=C chroot . /bin/su - user
You'll now be ready to use your Maemo Leste ARM64 development environment:
$ uname -m
aarch64
Once you have finished with it, you can exit and unmount the resources you previously mounted:
$ exit
$ sudo umount dev/pts dev proc
=== Localization ===
See [[Localization]]
=== TODO ===
* Discuss where people look to pick up issues (clear answer is the bugtracker, but still)
* How people can make changes and how to send them in
08d892b99e20f78a81477708a0245db48c7550ce
Talk:Nokia N900
1
226
1621
2024-05-31T09:52:29Z
Amunizp
69
Checking if I understood instructions correctly.
wikitext
text/x-wiki
##Checking that I Understood this correctly##
Bootloader (U-Boot) setup
Quick
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900,'''insert the SD Card with the image mentioned above,''' issue the following command on PC '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' and connect Nokia N900 to the PC
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: ./0xFFFF -b
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type run sdboot.
To flash u-boot permanently, you can issue the following command
(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition))
sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f
Existing Fremantle
If you have a functional Fremantle installation''', which means you can use your device normally and you can type the following commands on your n900 device,''' you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1" '''[Where do I get this how to I install it?]'''
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. '''[Where do I get this how to I install it?]'''
3. Add Maemo Leste menu item (run as root): '''[Does this mean open the terminal and type the following with SUDO?]'''
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
bc07ac1fb36c5d880e0632ade4fb561334d0115b
1622
1621
2024-05-31T09:58:10Z
Amunizp
69
title typesetting
wikitext
text/x-wiki
== Checking that I Understood this correctly ==
Bootloader (U-Boot) setup
Quick
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/
3. Turn off Nokia N900,'''insert the SD Card with the image mentioned above,''' issue the following command on PC '''sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l''' and connect Nokia N900 to the PC
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: ./0xFFFF -b
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type run sdboot.
To flash u-boot permanently, you can issue the following command
(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition))
sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f
Existing Fremantle
If you have a functional Fremantle installation''', which means you can use your device normally and you can type the following commands on your n900 device,''' you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1" '''[Where do I get this how to I install it?]'''
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended. '''[Where do I get this how to I install it?]'''
3. Add Maemo Leste menu item (run as root): '''[Does this mean open the terminal and type the following with SUDO?]'''
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
be30876fdcf7ba1308d6fef3ad48cef9a120a1f0
Getting Started
0
105
1638
1472
2024-06-02T21:54:06Z
GaryM0101
68
Even though you are logged in as root, you may need to execute "sudo" when expanding the root partition
wikitext
text/x-wiki
= Installation to SD Card =
After updating device firmware with included script (eg. flash-droid-4-fw.sh):
Download an image appropriate for your device from [http://maedevu.maemo.org/images/]
Insert a microsd card into your computer and find the device with '''cat /proc/partitions'''
Decompress and write the image to your microsd card device:
xzcat maemo-leste-VERSION.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
= Expand the root partition to fill SD card =
A helpful script is included to expand the root partition to fill the microSD card.
After booting and logging in to root, execute: sudo /etc/expandcard.sh
This will expand the root partition to fill the microSD card using resize2fs.
= (SSH) Login =
User credentials are: '''user:user'''
Root credentials are: '''root:toor'''
You should prefer logging in as user and then escalating to root with sudo as necessary.
In images newer than 17 January 2021, root SSH is disabled by default.
= Useful Bits =
== Lock Code (applies to N900 only) ==
* Default lockcode is "12345"
* Lockcode can only be changed/used on [[Nokia_N900|N900]], since the current implementation depends on a special "cal" partition. QEMU and all other Leste supported devices do not have it. (TODO: Confirm if N9 and N950 have it too)
= More RAM =
You can install '''zram-tools''' from the repo, and edit '''/etc/default/zramswap''' as necessary. It's probably convenient to set allocation to 1024.
hildon-base (and it's hildon-env-setup initscript) are aware if zramswap in installed and will activate zram.
If you have an image older than 17 January 2021, you should remove the existing zram initscript and install zram-tools to utilize this functionality.
Remove it with:
rc-update del zram
rm /etc/init.d/zram
= Tweaking =
See [[Tweaking]]
a86c7062f0ed403790ceee4079225301806cf645
Extras/picodrive
0
227
1640
2024-06-05T21:29:01Z
Arno11
61
Created page with "{{Infobox Package |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2024-05-27 |maemo_leste_repo=https://github.com/maemo-leste-extras/picodrive |cate..."
wikitext
text/x-wiki
{{Infobox Package
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]
|date_in_repo=2024-05-27
|maemo_leste_repo=https://github.com/maemo-leste-extras/picodrive
|category=Games
|packager=[[User:Arno11]]
}}
Picodrive is a Master System, Megadrive/Genesis, Mega CD/Sega CD and 32X emulator running on Maemo-Leste.
It is working only on Nokia N900 and Motorola Droid at the moment (thanks to their physical keyboards).
The emulator uses the generic GTK UI (this version of Picodrive is based on a well working raspberry version and not the old maemo one)
== Status ==
* Games are playable, with sound and input, running at 30 fps on N900 with frameskip=1.
Without frameskip and sound, games run at 60 fps with default CPU frequencies.
Default configuration works fine (with sound and 30 fps). Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N.
Keymapping can be modified directly in the config file.
WARNING: on N900 in the GUI, 'enter menu' key is associated to 'escape' key.
'back' is associated to 'e' (hardcoded).
=== Tested Megadrive/Genesis games ===
Aladdin, , Behind Oasis, Desert Strike, Crazy Pinball, Phantasy Star 4, Sonic 2, Sonic 3, Street Fighter II CE, Strider, James Pond, Landstalker, Monster World, Quack Shot, Road Rash, Street Of Rage 2.
=== Tested 32X games ===
After Burner Complete, Knuckles Chaotix, Mortal Kombat 2, NBA Jam, Star Wars Arcade, Virtua Racing Deluxe.
== TODO ==
* Implement sane default keys for the devices
* Try to implement Maemo 5 -touch- UI
* Find a way to get a proper fullscreen mode
[[Category:Extras]]
b465ac63e4050605f9e90c50677c3857b37cfa9c
1641
1640
2024-06-05T21:37:51Z
Arno11
61
wikitext
text/x-wiki
{{Infobox Package
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]
|date_in_repo=2024-05-27
|maemo_leste_repo=https://github.com/maemo-leste-extras/picodrive
|category=Games
|packager=[[User:Arno11]]
}}
Picodrive is a Master System, Megadrive/Genesis, Mega CD/Sega CD and 32X emulator running on Maemo-Leste.
It is working only on Nokia N900 and Motorola Droid at the moment (thanks to their physical keyboards).
The emulator uses the generic GTK UI (this version of Picodrive is based on a well working raspberry version and not the old maemo one)
== Status ==
* Games are playable, with sound and input, running at 30 fps on N900 with frameskip=1.
Without frameskip and sound, games run at 60 fps with default CPU frequencies.
Default configuration works fine (with sound and 30 fps). Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N.
Keymapping can be modified directly in the config file.
WARNING: on N900 in the GUI, 'enter menu' key is associated to 'escape' key.
'back' is associated to 'e' (hardcoded).
=== Tested Megadrive/Genesis games ===
Aladdin, , Behind Oasis, Desert Strike, Crazy Pinball, Phantasy Star 4, Sonic 2, Sonic 3, Street Fighter II CE, Strider, James Pond, Landstalker, Monster World, Quack Shot, Road Rash, Street Of Rage 2.
=== Tested 32X games ===
After Burner Complete, Knuckles Chaotix, Mortal Kombat 2, NBA Jam, Star Wars Arcade, Virtua Racing Deluxe.
== Tips ==
If (for some reason) the GUI is not working, it is possible to directly launch a game from command line:
/usr/games/picodrive/picodrive /game_dir/game.zip
Default keymap is visible in /home/user/.picodrive/config2.cfg
== TODO ==
* Implement sane default keys for the devices
* Try to implement Maemo 5 -touch- UI
* Find a way to get a proper fullscreen mode
[[Category:Extras]]
fc44ba1f60647bd78c87f1c95cdff5d7701b53d9
1642
1641
2024-06-05T21:40:43Z
Arno11
61
wikitext
text/x-wiki
{{Infobox Package
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]
|date_in_repo=2024-05-27
|maemo_leste_repo=https://github.com/maemo-leste-extras/picodrive
|category=Games
|packager=[[User:Arno11]]
}}
Picodrive is a Master System, Megadrive/Genesis, Mega CD/Sega CD and 32X emulator running on Maemo-Leste.
It works only on Nokia N900 and Motorola Droid at the moment (thanks to their physical keyboards).
The emulator uses the generic GTK UI (this version of Picodrive is based on a well working raspberry version and not the old maemo one)
== Status ==
* Games are playable, with sound and input, running at 30 fps on N900 with frameskip=1.
Without frameskip and sound, games run at 60 fps with default CPU frequencies.
Default configuration works fine (with sound and 30 fps). Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N.
Keymapping can be modified directly in the config file.
WARNING: on N900 in the GUI, 'enter menu' key is associated to 'escape' key.
'back' is associated to 'e' (hardcoded).
=== Tested Megadrive/Genesis games ===
Aladdin, , Behind Oasis, Desert Strike, Crazy Pinball, Phantasy Star 4, Sonic 2, Sonic 3, Street Fighter II CE, Strider, James Pond, Landstalker, Monster World, Quack Shot, Road Rash, Street Of Rage 2.
=== Tested 32X games ===
After Burner Complete, Knuckles Chaotix, Mortal Kombat 2, NBA Jam, Star Wars Arcade, Virtua Racing Deluxe.
== Tips ==
If (for some reason) the GUI is not working, it is possible to directly launch a game from command line:
/usr/games/picodrive/picodrive /game_dir/game.zip
Default keymap is visible in /home/user/.picodrive/config2.cfg
On N900, it is recommended to activate boost mode (720MHz or 805MHz) while playing 32X games.
== TODO ==
* Implement sane default keys for the devices
* Try to implement Maemo 5 -touch- UI
* Find a way to get a proper fullscreen mode
[[Category:Extras]]
8717fc2b427aaf219544e33bc3986ebf8066b606
1643
1642
2024-06-05T21:48:25Z
Arno11
61
wikitext
text/x-wiki
{{Infobox Package
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]
|date_in_repo=2024-05-27
|maemo_leste_repo=https://github.com/maemo-leste-extras/picodrive
|category=Games
|packager=[[User:Arno11]]
}}
Picodrive is a Master System, Megadrive/Genesis, Mega CD/Sega CD and 32X emulator running on Maemo-Leste.
It works only on Nokia N900 and Motorola Droid at the moment (thanks to their physical keyboards).
The emulator uses the generic GTK UI (this version of Picodrive is based on a well working raspberry version and not the old maemo one)
== Status ==
* Games are playable, with sound and input, running at 30 fps on N900 with frameskip=1.
Without frameskip and sound, games run at 60 fps with default CPU frequencies.
Default configuration works fine (with sound and 30 fps). Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N.
Keymapping and all other parameters can be modified directly in the user config file available in /home/user/.picodrive/config2.cfg
WARNING: on N900 in the GUI, 'enter menu' key is associated to 'escape' key.
'back' is associated to 'e' (hardcoded).
=== Tested Megadrive/Genesis games ===
Aladdin, , Behind Oasis, Desert Strike, Crazy Pinball, Phantasy Star 4, Sonic 2, Sonic 3, Street Fighter II CE, Strider, James Pond, Landstalker, Monster World, Quack Shot, Road Rash, Street Of Rage 2.
=== Tested 32X games ===
After Burner Complete, Knuckles Chaotix, Mortal Kombat 2, NBA Jam, Star Wars Arcade, Virtua Racing Deluxe.
== Tips ==
If (for some reason) the GUI is not working, it is possible to directly launch a game from command line:
/usr/games/picodrive/picodrive /game_dir/game.zip
Default keymap is visible in /home/user/.picodrive/config2.cfg
On N900, it is recommended to activate boost mode (720MHz or 805MHz) while playing 32X games.
== TODO ==
* Implement sane default keys for the devices
* Try to implement Maemo 5 -touch- UI
* Find a way to get a proper fullscreen mode
[[Category:Extras]]
71f3a7717dc61f20d51ed5860691437aad2e6055
1644
1643
2024-06-05T21:49:46Z
Arno11
61
/* Status */
wikitext
text/x-wiki
{{Infobox Package
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]
|date_in_repo=2024-05-27
|maemo_leste_repo=https://github.com/maemo-leste-extras/picodrive
|category=Games
|packager=[[User:Arno11]]
}}
Picodrive is a Master System, Megadrive/Genesis, Mega CD/Sega CD and 32X emulator running on Maemo-Leste.
It works only on Nokia N900 and Motorola Droid at the moment (thanks to their physical keyboards).
The emulator uses the generic GTK UI (this version of Picodrive is based on a well working raspberry version and not the old maemo one)
== Status ==
* Games are playable, with sound and input, running at 30 fps on N900 with frameskip=1.
Without frameskip and sound, games run at 60 fps with default CPU frequencies.
Default configuration works fine (with sound and 30 fps). Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N.
Keymapping and all other parameters can be modified directly in the user config file available in /home/user/.picodrive/config2.cfg
WARNING: on N900 in the GUI, 'enter menu' is associated to 'escape' key.
'back' is associated to 'e' key (hardcoded).
=== Tested Megadrive/Genesis games ===
Aladdin, , Behind Oasis, Desert Strike, Crazy Pinball, Phantasy Star 4, Sonic 2, Sonic 3, Street Fighter II CE, Strider, James Pond, Landstalker, Monster World, Quack Shot, Road Rash, Street Of Rage 2.
=== Tested 32X games ===
After Burner Complete, Knuckles Chaotix, Mortal Kombat 2, NBA Jam, Star Wars Arcade, Virtua Racing Deluxe.
== Tips ==
If (for some reason) the GUI is not working, it is possible to directly launch a game from command line:
/usr/games/picodrive/picodrive /game_dir/game.zip
Default keymap is visible in /home/user/.picodrive/config2.cfg
On N900, it is recommended to activate boost mode (720MHz or 805MHz) while playing 32X games.
== TODO ==
* Implement sane default keys for the devices
* Try to implement Maemo 5 -touch- UI
* Find a way to get a proper fullscreen mode
[[Category:Extras]]
85efa3b7c32a7ed084d7db67ca946648b3b0e655
File:2024-06-06-000341 800x480 scrot.png
6
228
1645
2024-06-05T22:28:27Z
Arno11
61
wikitext
text/x-wiki
Picodrive GUI
1d534283a3b826e09e9ae95c8588dcfe27fccadc
Extras/picodrive
0
227
1646
1644
2024-06-05T22:29:32Z
Arno11
61
/* Status */
wikitext
text/x-wiki
{{Infobox Package
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]
|date_in_repo=2024-05-27
|maemo_leste_repo=https://github.com/maemo-leste-extras/picodrive
|category=Games
|packager=[[User:Arno11]]
}}
Picodrive is a Master System, Megadrive/Genesis, Mega CD/Sega CD and 32X emulator running on Maemo-Leste.
It works only on Nokia N900 and Motorola Droid at the moment (thanks to their physical keyboards).
The emulator uses the generic GTK UI (this version of Picodrive is based on a well working raspberry version and not the old maemo one)
== Status ==
* Games are playable, with sound and input, running at 30 fps on N900 with frameskip=1.
Without frameskip and sound, games run at 60 fps with default CPU frequencies.
Default configuration works fine (with sound and 30 fps). Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N.
Keymapping and all other parameters can be modified directly in the user config file available in /home/user/.picodrive/config2.cfg
WARNING: on N900 in the GUI, 'enter menu' is associated to 'escape' key.
'back' is associated to 'e' key (hardcoded).
=== Tested Megadrive/Genesis games ===
Aladdin, , Behind Oasis, Desert Strike, Crazy Pinball, Phantasy Star 4, Sonic 2, Sonic 3, Street Fighter II CE, Strider, James Pond, Landstalker, Monster World, Quack Shot, Road Rash, Street Of Rage 2.
=== Tested 32X games ===
After Burner Complete, Knuckles Chaotix, Mortal Kombat 2, NBA Jam, Star Wars Arcade, Virtua Racing Deluxe.
== Tips ==
If (for some reason) the GUI is not working, it is possible to directly launch a game from command line:
/usr/games/picodrive/picodrive /game_dir/game.zip
Default keymap is visible in /home/user/.picodrive/config2.cfg
On N900, it is recommended to activate boost mode (720MHz or 805MHz) while playing 32X games.
== TODO ==
* Implement sane default keys for the devices
* Try to implement Maemo 5 -touch- UI
* Find a way to get a proper fullscreen mode
[[Category:Extras]]
3273a2a691e64e34e30b90b336b6eae9488a9572
1647
1646
2024-06-05T22:32:03Z
Arno11
61
/* Status */
wikitext
text/x-wiki
{{Infobox Package
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]
|date_in_repo=2024-05-27
|maemo_leste_repo=https://github.com/maemo-leste-extras/picodrive
|category=Games
|packager=[[User:Arno11]]
}}
Picodrive is a Master System, Megadrive/Genesis, Mega CD/Sega CD and 32X emulator running on Maemo-Leste.
It works only on Nokia N900 and Motorola Droid at the moment (thanks to their physical keyboards).
The emulator uses the generic GTK UI (this version of Picodrive is based on a well working raspberry version and not the old maemo one)
== Status ==
[[File:Picodrive GUI]]
* Games are playable, with sound and input, running at 30 fps on N900 with frameskip=1.
Without frameskip and sound, games run at 60 fps with default CPU frequencies.
Default configuration works fine (with sound and 30 fps). Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N.
Keymapping and all other parameters can be modified directly in the user config file available in /home/user/.picodrive/config2.cfg
WARNING: on N900 in the GUI, 'enter menu' is associated to 'escape' key.
'back' is associated to 'e' key (hardcoded).
=== Tested Megadrive/Genesis games ===
Aladdin, , Behind Oasis, Desert Strike, Crazy Pinball, Phantasy Star 4, Sonic 2, Sonic 3, Street Fighter II CE, Strider, James Pond, Landstalker, Monster World, Quack Shot, Road Rash, Street Of Rage 2.
=== Tested 32X games ===
After Burner Complete, Knuckles Chaotix, Mortal Kombat 2, NBA Jam, Star Wars Arcade, Virtua Racing Deluxe.
== Tips ==
If (for some reason) the GUI is not working, it is possible to directly launch a game from command line:
/usr/games/picodrive/picodrive /game_dir/game.zip
Default keymap is visible in /home/user/.picodrive/config2.cfg
On N900, it is recommended to activate boost mode (720MHz or 805MHz) while playing 32X games.
== TODO ==
* Implement sane default keys for the devices
* Try to implement Maemo 5 -touch- UI
* Find a way to get a proper fullscreen mode
[[Category:Extras]]
fcb64567e192261973d2d468f1610cff281e7a23
1649
1647
2024-06-05T22:42:35Z
Arno11
61
wikitext
text/x-wiki
{{Infobox Package
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]
|date_in_repo=2024-05-27
|maemo_leste_repo=https://github.com/maemo-leste-extras/picodrive
|category=Games
|packager=[[User:Arno11]]
}}
Picodrive is a Master System, Megadrive/Genesis, Mega CD/Sega CD and 32X emulator running on Maemo-Leste.
It works only on Nokia N900 and Motorola Droid at the moment (thanks to their physical keyboards).
The emulator uses the generic GTK UI (this version of Picodrive is based on a well working raspberry version and not the old maemo one)
== Status ==
* Games are playable, with sound and input, running at 30 fps on N900 with frameskip=1.
Without frameskip and sound, games run at 60 fps with default CPU frequencies.
Default configuration works fine (with sound and 30 fps). Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N.
Keymapping and all other parameters can be modified directly in the user config file available in /home/user/.picodrive/config2.cfg
WARNING: on N900 in the GUI, 'enter menu' is associated to 'escape' key.
'back' is associated to 'e' key (hardcoded).
=== Tested Megadrive/Genesis games ===
Aladdin, , Behind Oasis, Desert Strike, Crazy Pinball, Phantasy Star 4, Sonic 2, Sonic 3, Street Fighter II CE, Strider, James Pond, Landstalker, Monster World, Quack Shot, Road Rash, Street Of Rage 2.
=== Tested 32X games ===
After Burner Complete, Knuckles Chaotix, Mortal Kombat 2, NBA Jam, Star Wars Arcade, Virtua Racing Deluxe.
== Tips ==
If (for some reason) the GUI is not working, it is possible to directly launch a game from command line:
/usr/games/picodrive/picodrive /game_dir/game.zip
Default keymap is visible in /home/user/.picodrive/config2.cfg
On N900, it is recommended to activate boost mode (720MHz or 805MHz) while playing 32X games.
== TODO ==
* Implement sane default keys for the devices
* Try to implement Maemo 5 -touch- UI
* Find a way to get a proper fullscreen mode
[[Category:Extras]]
ef50152002b90dd033504ac496f0041b7d6f33ce
1650
1649
2024-06-05T23:09:30Z
Arno11
61
wikitext
text/x-wiki
{{Infobox Package
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]
|date_in_repo=2024-05-27
|maemo_leste_repo=https://github.com/maemo-leste-extras/picodrive
|category=Games
|packager=[[User:Arno11]]
}}
Picodrive is a Master System, Megadrive/Genesis, Mega CD/Sega CD and 32X emulator running on Maemo-Leste.
It works only on Nokia N900 and Motorola Droid at the moment (thanks to their physical keyboards).
The emulator uses the generic GTK UI (this version of Picodrive is based on a well working raspberry version and not the old maemo one)
== Status ==
* Games are playable, with sound and input, running at 30 fps on N900 with frameskip=1.
Without frameskip and sound, games run at 60 fps with default CPU frequencies.
Default configuration works fine (with sound and 30 fps). Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N.
Keymapping and all other parameters can be modified directly in the user config file available in /home/user/.picodrive/config2.cfg
WARNING: on N900 in the GUI, 'enter menu' is associated to 'escape' key.
'back' is associated to 'e' key (hardcoded).
=== Tested Megadrive/Genesis games ===
Aladdin, , Behind Oasis, Desert Strike, Psycho Pinball, Phantasy Star 4, Sonic 2, Sonic 3, Street Fighter II CE, Strider, James Pond, Landstalker, Monster World, Quack Shot, Road Rash, Street Of Rage 2.
=== Tested 32X games ===
After Burner Complete, Knuckles Chaotix, Mortal Kombat 2, NBA Jam, Star Wars Arcade, Virtua Racing Deluxe.
== Tips ==
If (for some reason) the GUI is not working, it is possible to directly launch a game from command line:
/usr/games/picodrive/picodrive /game_dir/game.zip
Default keymap is visible in /home/user/.picodrive/config2.cfg
On N900, it is recommended to activate boost mode (720MHz or 805MHz) while playing 32X games.
== TODO ==
* Implement sane default keys for the devices
* Try to implement Maemo 5 -touch- UI
* Find a way to get a proper fullscreen mode
[[Category:Extras]]
b69207e65a12c8f5a564e78486ec9d1d0b0d798e
1652
1650
2024-06-06T05:54:25Z
Arno11
61
/* Tested Megadrive/Genesis games */
wikitext
text/x-wiki
{{Infobox Package
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]
|date_in_repo=2024-05-27
|maemo_leste_repo=https://github.com/maemo-leste-extras/picodrive
|category=Games
|packager=[[User:Arno11]]
}}
Picodrive is a Master System, Megadrive/Genesis, Mega CD/Sega CD and 32X emulator running on Maemo-Leste.
It works only on Nokia N900 and Motorola Droid at the moment (thanks to their physical keyboards).
The emulator uses the generic GTK UI (this version of Picodrive is based on a well working raspberry version and not the old maemo one)
== Status ==
* Games are playable, with sound and input, running at 30 fps on N900 with frameskip=1.
Without frameskip and sound, games run at 60 fps with default CPU frequencies.
Default configuration works fine (with sound and 30 fps). Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N.
Keymapping and all other parameters can be modified directly in the user config file available in /home/user/.picodrive/config2.cfg
WARNING: on N900 in the GUI, 'enter menu' is associated to 'escape' key.
'back' is associated to 'e' key (hardcoded).
=== Tested Megadrive/Genesis games ===
Aladdin, , Behind Oasis, Desert Strike, Psycho Pinball, Phantasy Star 4, Sonic 2, Sonic 3, Street Fighter II CE, Strider, James Pond, Landstalker, Monster World, Quack Shot, Road Rash, Street Of Rage 2.
[[File:2024-06-06-000430 800x480 scrot.png|500px|center]]
=== Tested 32X games ===
After Burner Complete, Knuckles Chaotix, Mortal Kombat 2, NBA Jam, Star Wars Arcade, Virtua Racing Deluxe.
== Tips ==
If (for some reason) the GUI is not working, it is possible to directly launch a game from command line:
/usr/games/picodrive/picodrive /game_dir/game.zip
Default keymap is visible in /home/user/.picodrive/config2.cfg
On N900, it is recommended to activate boost mode (720MHz or 805MHz) while playing 32X games.
== TODO ==
* Implement sane default keys for the devices
* Try to implement Maemo 5 -touch- UI
* Find a way to get a proper fullscreen mode
[[Category:Extras]]
c78a924174783a316a03e217ccc9a9109dd95ccb
1654
1652
2024-06-06T05:57:15Z
Arno11
61
/* Tested 32X games */
wikitext
text/x-wiki
{{Infobox Package
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]
|date_in_repo=2024-05-27
|maemo_leste_repo=https://github.com/maemo-leste-extras/picodrive
|category=Games
|packager=[[User:Arno11]]
}}
Picodrive is a Master System, Megadrive/Genesis, Mega CD/Sega CD and 32X emulator running on Maemo-Leste.
It works only on Nokia N900 and Motorola Droid at the moment (thanks to their physical keyboards).
The emulator uses the generic GTK UI (this version of Picodrive is based on a well working raspberry version and not the old maemo one)
== Status ==
* Games are playable, with sound and input, running at 30 fps on N900 with frameskip=1.
Without frameskip and sound, games run at 60 fps with default CPU frequencies.
Default configuration works fine (with sound and 30 fps). Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N.
Keymapping and all other parameters can be modified directly in the user config file available in /home/user/.picodrive/config2.cfg
WARNING: on N900 in the GUI, 'enter menu' is associated to 'escape' key.
'back' is associated to 'e' key (hardcoded).
=== Tested Megadrive/Genesis games ===
Aladdin, , Behind Oasis, Desert Strike, Psycho Pinball, Phantasy Star 4, Sonic 2, Sonic 3, Street Fighter II CE, Strider, James Pond, Landstalker, Monster World, Quack Shot, Road Rash, Street Of Rage 2.
[[File:2024-06-06-000430 800x480 scrot.png|500px|center]]
=== Tested 32X games ===
After Burner Complete, Knuckles Chaotix, Mortal Kombat 2, NBA Jam, Star Wars Arcade, Virtua Racing Deluxe.
[[File:2024-06-06-001745 800x480 scrot.png|500px|center]]
== Tips ==
If (for some reason) the GUI is not working, it is possible to directly launch a game from command line:
/usr/games/picodrive/picodrive /game_dir/game.zip
Default keymap is visible in /home/user/.picodrive/config2.cfg
On N900, it is recommended to activate boost mode (720MHz or 805MHz) while playing 32X games.
== TODO ==
* Implement sane default keys for the devices
* Try to implement Maemo 5 -touch- UI
* Find a way to get a proper fullscreen mode
[[Category:Extras]]
4b2033871023fe0c5bfd30260b5937debd78e2f4
1655
1654
2024-06-06T06:04:35Z
Arno11
61
/* Status */
wikitext
text/x-wiki
{{Infobox Package
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]
|date_in_repo=2024-05-27
|maemo_leste_repo=https://github.com/maemo-leste-extras/picodrive
|category=Games
|packager=[[User:Arno11]]
}}
Picodrive is a Master System, Megadrive/Genesis, Mega CD/Sega CD and 32X emulator running on Maemo-Leste.
It works only on Nokia N900 and Motorola Droid at the moment (thanks to their physical keyboards).
The emulator uses the generic GTK UI (this version of Picodrive is based on a well working raspberry version and not the old maemo one)
== Status ==
[[File:2024-06-06-000341_800x480_scrot.png|500px|center]]
* Games are playable, with sound and input, running at 30 fps on N900 with frameskip=1.
Without frameskip and sound, games run at 60 fps with default CPU frequencies.
Default configuration works fine (with sound and 30 fps). Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N.
Keymapping and all other parameters can be modified directly in the user config file available in /home/user/.picodrive/config2.cfg
WARNING: on N900 in the GUI, 'enter menu' is associated to 'escape' key.
'back' is associated to 'e' key (hardcoded).
=== Tested Megadrive/Genesis games ===
Aladdin, , Behind Oasis, Desert Strike, Psycho Pinball, Phantasy Star 4, Sonic 2, Sonic 3, Street Fighter II CE, Strider, James Pond, Landstalker, Monster World, Quack Shot, Road Rash, Street Of Rage 2.
[[File:2024-06-06-000430 800x480 scrot.png|500px|center]]
=== Tested 32X games ===
After Burner Complete, Knuckles Chaotix, Mortal Kombat 2, NBA Jam, Star Wars Arcade, Virtua Racing Deluxe.
[[File:2024-06-06-001745 800x480 scrot.png|500px|center]]
== Tips ==
If (for some reason) the GUI is not working, it is possible to directly launch a game from command line:
/usr/games/picodrive/picodrive /game_dir/game.zip
Default keymap is visible in /home/user/.picodrive/config2.cfg
On N900, it is recommended to activate boost mode (720MHz or 805MHz) while playing 32X games.
== TODO ==
* Implement sane default keys for the devices
* Try to implement Maemo 5 -touch- UI
* Find a way to get a proper fullscreen mode
[[Category:Extras]]
f5ede58d65f7ce6f24c57baf18a76f8a3afd557d
1656
1655
2024-06-06T06:21:07Z
Arno11
61
/* Status */
wikitext
text/x-wiki
{{Infobox Package
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]
|date_in_repo=2024-05-27
|maemo_leste_repo=https://github.com/maemo-leste-extras/picodrive
|category=Games
|packager=[[User:Arno11]]
}}
Picodrive is a Master System, Megadrive/Genesis, Mega CD/Sega CD and 32X emulator running on Maemo-Leste.
It works only on Nokia N900 and Motorola Droid at the moment (thanks to their physical keyboards).
The emulator uses the generic GTK UI (this version of Picodrive is based on a well working raspberry version and not the old maemo one)
== Status ==
[[File:2024-06-06-000341_800x480_scrot.png|500px|center]]
* Megadrive games are playable, with sound and input, running at 30 fps on N900 with frameskip=1.
Without frameskip and sound, games run at 60 fps with default CPU frequencies.
* 32X games are only playable without sound on N900 and run at around 40-50 fps. Some games work better with frameskip=1.
Default configuration works fine (with sound and 30 fps). Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N.
Keymapping and all other parameters can be modified directly in the user config file available in /home/user/.picodrive/config2.cfg
WARNING: on N900 in the GUI, 'enter menu' is associated to 'escape' key.
'back' is associated to 'e' key (hardcoded).
=== Tested Megadrive/Genesis games ===
Aladdin, , Behind Oasis, Desert Strike, Psycho Pinball, Phantasy Star 4, Sonic 2, Sonic 3, Street Fighter II CE, Strider, James Pond, Landstalker, Monster World, Quack Shot, Road Rash, Street Of Rage 2.
[[File:2024-06-06-000430 800x480 scrot.png|500px|center]]
=== Tested 32X games ===
After Burner Complete, Knuckles Chaotix, Mortal Kombat 2, NBA Jam, Star Wars Arcade, Virtua Racing Deluxe.
[[File:2024-06-06-001745 800x480 scrot.png|500px|center]]
== Tips ==
If (for some reason) the GUI is not working, it is possible to directly launch a game from command line:
/usr/games/picodrive/picodrive /game_dir/game.zip
Default keymap is visible in /home/user/.picodrive/config2.cfg
On N900, it is recommended to activate boost mode (720MHz or 805MHz) while playing 32X games.
== TODO ==
* Implement sane default keys for the devices
* Try to implement Maemo 5 -touch- UI
* Find a way to get a proper fullscreen mode
[[Category:Extras]]
ff40199c056769063f2b7326de06b9a53880fdb0
1657
1656
2024-06-06T06:23:11Z
Arno11
61
/* Status */
wikitext
text/x-wiki
{{Infobox Package
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]
|date_in_repo=2024-05-27
|maemo_leste_repo=https://github.com/maemo-leste-extras/picodrive
|category=Games
|packager=[[User:Arno11]]
}}
Picodrive is a Master System, Megadrive/Genesis, Mega CD/Sega CD and 32X emulator running on Maemo-Leste.
It works only on Nokia N900 and Motorola Droid at the moment (thanks to their physical keyboards).
The emulator uses the generic GTK UI (this version of Picodrive is based on a well working raspberry version and not the old maemo one)
== Status ==
[[File:2024-06-06-000341_800x480_scrot.png|500px|center]]
* Megadrive games are playable, with sound and input, running at 30 fps on N900 with frameskip=1.
Without frameskip and sound, games run at 60 fps with default CPU frequencies.
* 32X games are only playable without sound on N900 and run at around 40-50 fps. Some games work better with frameskip=1.
Default configuration works fine for Megadrive/Genesis games (with sound and 30 fps). Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N.
Keymapping and all other parameters can be modified directly in the user config file available in /home/user/.picodrive/config2.cfg
WARNING: on N900 in the GUI, 'enter menu' is associated to 'escape' key.
'back' is associated to 'e' key (hardcoded).
=== Tested Megadrive/Genesis games ===
Aladdin, , Behind Oasis, Desert Strike, Psycho Pinball, Phantasy Star 4, Sonic 2, Sonic 3, Street Fighter II CE, Strider, James Pond, Landstalker, Monster World, Quack Shot, Road Rash, Street Of Rage 2.
[[File:2024-06-06-000430 800x480 scrot.png|500px|center]]
=== Tested 32X games ===
After Burner Complete, Knuckles Chaotix, Mortal Kombat 2, NBA Jam, Star Wars Arcade, Virtua Racing Deluxe.
[[File:2024-06-06-001745 800x480 scrot.png|500px|center]]
== Tips ==
If (for some reason) the GUI is not working, it is possible to directly launch a game from command line:
/usr/games/picodrive/picodrive /game_dir/game.zip
Default keymap is visible in /home/user/.picodrive/config2.cfg
On N900, it is recommended to activate boost mode (720MHz or 805MHz) while playing 32X games.
== TODO ==
* Implement sane default keys for the devices
* Try to implement Maemo 5 -touch- UI
* Find a way to get a proper fullscreen mode
[[Category:Extras]]
eb991bc207be359689643b56b2073bcc5a3fe268
1658
1657
2024-06-06T06:30:46Z
Arno11
61
/* Tips */
wikitext
text/x-wiki
{{Infobox Package
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]
|date_in_repo=2024-05-27
|maemo_leste_repo=https://github.com/maemo-leste-extras/picodrive
|category=Games
|packager=[[User:Arno11]]
}}
Picodrive is a Master System, Megadrive/Genesis, Mega CD/Sega CD and 32X emulator running on Maemo-Leste.
It works only on Nokia N900 and Motorola Droid at the moment (thanks to their physical keyboards).
The emulator uses the generic GTK UI (this version of Picodrive is based on a well working raspberry version and not the old maemo one)
== Status ==
[[File:2024-06-06-000341_800x480_scrot.png|500px|center]]
* Megadrive games are playable, with sound and input, running at 30 fps on N900 with frameskip=1.
Without frameskip and sound, games run at 60 fps with default CPU frequencies.
* 32X games are only playable without sound on N900 and run at around 40-50 fps. Some games work better with frameskip=1.
Default configuration works fine for Megadrive/Genesis games (with sound and 30 fps). Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N.
Keymapping and all other parameters can be modified directly in the user config file available in /home/user/.picodrive/config2.cfg
WARNING: on N900 in the GUI, 'enter menu' is associated to 'escape' key.
'back' is associated to 'e' key (hardcoded).
=== Tested Megadrive/Genesis games ===
Aladdin, , Behind Oasis, Desert Strike, Psycho Pinball, Phantasy Star 4, Sonic 2, Sonic 3, Street Fighter II CE, Strider, James Pond, Landstalker, Monster World, Quack Shot, Road Rash, Street Of Rage 2.
[[File:2024-06-06-000430 800x480 scrot.png|500px|center]]
=== Tested 32X games ===
After Burner Complete, Knuckles Chaotix, Mortal Kombat 2, NBA Jam, Star Wars Arcade, Virtua Racing Deluxe.
[[File:2024-06-06-001745 800x480 scrot.png|500px|center]]
== Tips ==
If (for some reason) the GUI is not working, it is possible to directly launch a game from command line:
/usr/games/picodrive/picodrive /game_dir/game.zip
Default keymap is visible in /home/user/.picodrive/config2.cfg
On N900, it is recommended to activate boost mode (720MHz or 805MHz) while playing 32X games.
As root:
echo 1 > /sys/devices/system/cpu/cpufreq/boost
echo 720 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
== TODO ==
* Implement sane default keys for the devices
* Try to implement Maemo 5 -touch- UI
* Find a way to get a proper fullscreen mode
[[Category:Extras]]
3b7bb31d37f1dc783bf4b526b5d02f789b7a69d7
1659
1658
2024-06-06T06:34:37Z
Arno11
61
wikitext
text/x-wiki
{{Infobox Package
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]
|date_in_repo=2024-05-27
|maemo_leste_repo=https://github.com/maemo-leste-extras/picodrive
|category=Games
|packager=[[User:Arno11]]
}}
Picodrive is a Master System, Megadrive/Genesis, Mega CD/Sega CD and 32X emulator running on Maemo-Leste.
It works only on Nokia N900 and Motorola Droid 4 at the moment (thanks to their physical keyboards).
The emulator uses the generic GTK UI (this version of Picodrive is based on a well working raspberry version and not the old maemo one)
== Status ==
[[File:2024-06-06-000341_800x480_scrot.png|500px|center]]
* Megadrive games are playable, with sound and input, running at 30 fps on N900 with frameskip=1.
Without frameskip and sound, games run at 60 fps with default CPU frequencies.
* 32X games are only playable without sound on N900 and run at around 40-50 fps. Some games work better with frameskip=1.
Default configuration works fine for Megadrive/Genesis games (with sound and 30 fps). Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N.
Keymapping and all other parameters can be modified directly in the user config file available in /home/user/.picodrive/config2.cfg
WARNING: on N900 in the GUI, 'enter menu' is associated to 'escape' key.
'back' is associated to 'e' key (hardcoded).
=== Tested Megadrive/Genesis games ===
Aladdin, , Behind Oasis, Desert Strike, Psycho Pinball, Phantasy Star 4, Sonic 2, Sonic 3, Street Fighter II CE, Strider, James Pond, Landstalker, Monster World, Quack Shot, Road Rash, Street Of Rage 2.
[[File:2024-06-06-000430 800x480 scrot.png|500px|center]]
=== Tested 32X games ===
After Burner Complete, Knuckles Chaotix, Mortal Kombat 2, NBA Jam, Star Wars Arcade, Virtua Racing Deluxe.
[[File:2024-06-06-001745 800x480 scrot.png|500px|center]]
== Tips ==
If (for some reason) the GUI is not working, it is possible to directly launch a game from command line:
/usr/games/picodrive/picodrive /game_dir/game.zip
Default keymap is visible in /home/user/.picodrive/config2.cfg
On N900, it is recommended to activate boost mode (720MHz or 805MHz) while playing 32X games.
As root:
echo 1 > /sys/devices/system/cpu/cpufreq/boost
echo 720 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
== TODO ==
* Implement sane default keys for the devices
* Try to implement Maemo 5 -touch- UI
* Find a way to get a proper fullscreen mode
[[Category:Extras]]
8fdbc7c9dd00be4821eb2300a1e1cb5a2b693fc4
1660
1659
2024-06-06T06:47:00Z
Arno11
61
/* Status */
wikitext
text/x-wiki
{{Infobox Package
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]
|date_in_repo=2024-05-27
|maemo_leste_repo=https://github.com/maemo-leste-extras/picodrive
|category=Games
|packager=[[User:Arno11]]
}}
Picodrive is a Master System, Megadrive/Genesis, Mega CD/Sega CD and 32X emulator running on Maemo-Leste.
It works only on Nokia N900 and Motorola Droid 4 at the moment (thanks to their physical keyboards).
The emulator uses the generic GTK UI (this version of Picodrive is based on a well working raspberry version and not the old maemo one)
== Status ==
[[File:2024-06-06-000341_800x480_scrot.png|500px|center]]
* Megadrive games are playable, with sound and input, running at 30 fps on N900 with frameskip=1.
Without frameskip and sound, games run at 60 fps with default CPU frequencies.
* 32X games are only playable without sound on N900 and run at around 40-50 fps. Some games work better with frameskip=1.
Default configuration is already optimised for Megadrive/Genesis games (with sound and 30 fps). Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N.
Keymapping and all other parameters can be modified directly in the user config file available in /home/user/.picodrive/config2.cfg
WARNING: on N900 in the GUI, 'enter menu' is associated to 'escape' key.
'back' is associated to 'e' key (hardcoded).
=== Tested Megadrive/Genesis games ===
Aladdin, , Behind Oasis, Desert Strike, Psycho Pinball, Phantasy Star 4, Sonic 2, Sonic 3, Street Fighter II CE, Strider, James Pond, Landstalker, Monster World, Quack Shot, Road Rash, Street Of Rage 2.
[[File:2024-06-06-000430 800x480 scrot.png|500px|center]]
=== Tested 32X games ===
After Burner Complete, Knuckles Chaotix, Mortal Kombat 2, NBA Jam, Star Wars Arcade, Virtua Racing Deluxe.
[[File:2024-06-06-001745 800x480 scrot.png|500px|center]]
== Tips ==
If (for some reason) the GUI is not working, it is possible to directly launch a game from command line:
/usr/games/picodrive/picodrive /game_dir/game.zip
Default keymap is visible in /home/user/.picodrive/config2.cfg
On N900, it is recommended to activate boost mode (720MHz or 805MHz) while playing 32X games.
As root:
echo 1 > /sys/devices/system/cpu/cpufreq/boost
echo 720 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
== TODO ==
* Implement sane default keys for the devices
* Try to implement Maemo 5 -touch- UI
* Find a way to get a proper fullscreen mode
[[Category:Extras]]
390f2786fe08812c0bc8eaf32893282a72829ce4
1661
1660
2024-06-06T06:49:49Z
Arno11
61
/* Status */
wikitext
text/x-wiki
{{Infobox Package
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]
|date_in_repo=2024-05-27
|maemo_leste_repo=https://github.com/maemo-leste-extras/picodrive
|category=Games
|packager=[[User:Arno11]]
}}
Picodrive is a Master System, Megadrive/Genesis, Mega CD/Sega CD and 32X emulator running on Maemo-Leste.
It works only on Nokia N900 and Motorola Droid 4 at the moment (thanks to their physical keyboards).
The emulator uses the generic GTK UI (this version of Picodrive is based on a well working raspberry version and not the old maemo one)
== Status ==
[[File:2024-06-06-000341_800x480_scrot.png|500px|center]]
* Megadrive games are playable, with sound and input, running at 30 fps on N900 with frameskip=1.
Without frameskip and sound, games run at 60 fps with default CPU frequencies.
* 32X games are only playable without sound on N900 and run at around 40-50 fps. Some games work better with frameskip=1.
Default configuration is already optimised for Megadrive/Genesis games (with sound and 30 fps). Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N.
Keymapping and all other parameters can be modified directly in the user config file available in /home/user/.picodrive/config2.cfg
WARNING: on N900 in the GUI, 'enter menu' is associated to 'escape' key.
'back' is associated to 'e' key (hardcoded).
(Almost all configuration parameters are available from the GUI)
=== Tested Megadrive/Genesis games ===
Aladdin, , Behind Oasis, Desert Strike, Psycho Pinball, Phantasy Star 4, Sonic 2, Sonic 3, Street Fighter II CE, Strider, James Pond, Landstalker, Monster World, Quack Shot, Road Rash, Street Of Rage 2.
[[File:2024-06-06-000430 800x480 scrot.png|500px|center]]
=== Tested 32X games ===
After Burner Complete, Knuckles Chaotix, Mortal Kombat 2, NBA Jam, Star Wars Arcade, Virtua Racing Deluxe.
[[File:2024-06-06-001745 800x480 scrot.png|500px|center]]
== Tips ==
If (for some reason) the GUI is not working, it is possible to directly launch a game from command line:
/usr/games/picodrive/picodrive /game_dir/game.zip
Default keymap is visible in /home/user/.picodrive/config2.cfg
On N900, it is recommended to activate boost mode (720MHz or 805MHz) while playing 32X games.
As root:
echo 1 > /sys/devices/system/cpu/cpufreq/boost
echo 720 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
== TODO ==
* Implement sane default keys for the devices
* Try to implement Maemo 5 -touch- UI
* Find a way to get a proper fullscreen mode
[[Category:Extras]]
8ef9953a615f0e3d02b01f3263f1078468476197
1662
1661
2024-06-06T06:50:35Z
Arno11
61
/* Status */
wikitext
text/x-wiki
{{Infobox Package
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]
|date_in_repo=2024-05-27
|maemo_leste_repo=https://github.com/maemo-leste-extras/picodrive
|category=Games
|packager=[[User:Arno11]]
}}
Picodrive is a Master System, Megadrive/Genesis, Mega CD/Sega CD and 32X emulator running on Maemo-Leste.
It works only on Nokia N900 and Motorola Droid 4 at the moment (thanks to their physical keyboards).
The emulator uses the generic GTK UI (this version of Picodrive is based on a well working raspberry version and not the old maemo one)
== Status ==
[[File:2024-06-06-000341_800x480_scrot.png|500px|center]]
* Megadrive games are playable, with sound and input, running at 30 fps on N900 with frameskip=1.
Without frameskip and sound, games run at 60 fps with default CPU frequencies.
* 32X games are only playable without sound on N900 and run at around 40-50 fps. Some games work better with frameskip=1.
Default configuration is already optimised for Megadrive/Genesis games (with sound and 30 fps). Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N.
Keymapping and all other parameters can be modified directly in the user config file available in /home/user/.picodrive/config2.cfg
WARNING: on N900 in the GUI, 'enter menu' is associated to 'escape' key.
'back' is associated to 'e' key (hardcoded).
Almost all configuration parameters are available from the GUI.
=== Tested Megadrive/Genesis games ===
Aladdin, , Behind Oasis, Desert Strike, Psycho Pinball, Phantasy Star 4, Sonic 2, Sonic 3, Street Fighter II CE, Strider, James Pond, Landstalker, Monster World, Quack Shot, Road Rash, Street Of Rage 2.
[[File:2024-06-06-000430 800x480 scrot.png|500px|center]]
=== Tested 32X games ===
After Burner Complete, Knuckles Chaotix, Mortal Kombat 2, NBA Jam, Star Wars Arcade, Virtua Racing Deluxe.
[[File:2024-06-06-001745 800x480 scrot.png|500px|center]]
== Tips ==
If (for some reason) the GUI is not working, it is possible to directly launch a game from command line:
/usr/games/picodrive/picodrive /game_dir/game.zip
Default keymap is visible in /home/user/.picodrive/config2.cfg
On N900, it is recommended to activate boost mode (720MHz or 805MHz) while playing 32X games.
As root:
echo 1 > /sys/devices/system/cpu/cpufreq/boost
echo 720 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
== TODO ==
* Implement sane default keys for the devices
* Try to implement Maemo 5 -touch- UI
* Find a way to get a proper fullscreen mode
[[Category:Extras]]
a40a54cd363addd56c58453bc4debd599f12d079
1663
1662
2024-06-06T06:53:55Z
Arno11
61
/* Tips */
wikitext
text/x-wiki
{{Infobox Package
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]
|date_in_repo=2024-05-27
|maemo_leste_repo=https://github.com/maemo-leste-extras/picodrive
|category=Games
|packager=[[User:Arno11]]
}}
Picodrive is a Master System, Megadrive/Genesis, Mega CD/Sega CD and 32X emulator running on Maemo-Leste.
It works only on Nokia N900 and Motorola Droid 4 at the moment (thanks to their physical keyboards).
The emulator uses the generic GTK UI (this version of Picodrive is based on a well working raspberry version and not the old maemo one)
== Status ==
[[File:2024-06-06-000341_800x480_scrot.png|500px|center]]
* Megadrive games are playable, with sound and input, running at 30 fps on N900 with frameskip=1.
Without frameskip and sound, games run at 60 fps with default CPU frequencies.
* 32X games are only playable without sound on N900 and run at around 40-50 fps. Some games work better with frameskip=1.
Default configuration is already optimised for Megadrive/Genesis games (with sound and 30 fps). Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N.
Keymapping and all other parameters can be modified directly in the user config file available in /home/user/.picodrive/config2.cfg
WARNING: on N900 in the GUI, 'enter menu' is associated to 'escape' key.
'back' is associated to 'e' key (hardcoded).
Almost all configuration parameters are available from the GUI.
=== Tested Megadrive/Genesis games ===
Aladdin, , Behind Oasis, Desert Strike, Psycho Pinball, Phantasy Star 4, Sonic 2, Sonic 3, Street Fighter II CE, Strider, James Pond, Landstalker, Monster World, Quack Shot, Road Rash, Street Of Rage 2.
[[File:2024-06-06-000430 800x480 scrot.png|500px|center]]
=== Tested 32X games ===
After Burner Complete, Knuckles Chaotix, Mortal Kombat 2, NBA Jam, Star Wars Arcade, Virtua Racing Deluxe.
[[File:2024-06-06-001745 800x480 scrot.png|500px|center]]
== Tips ==
If (for some reason) the GUI is not working, it is possible to directly launch a game from command line:
/usr/games/picodrive/picodrive /game_dir/your_game.zip
Default keymap is visible in /home/user/.picodrive/config2.cfg
On N900, it is recommended to activate boost mode (720MHz or 805MHz) while playing 32X games.
As root:
echo 1 > /sys/devices/system/cpu/cpufreq/boost
echo 720 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
== TODO ==
* Implement sane default keys for the devices
* Try to implement Maemo 5 -touch- UI
* Find a way to get a proper fullscreen mode
[[Category:Extras]]
4dc6eced4c953a180016f5d8f50ba312b78846e3
1664
1663
2024-06-06T07:02:24Z
Arno11
61
wikitext
text/x-wiki
{{Infobox Package
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]
|date_in_repo=2024-05-27
|maemo_leste_repo=https://github.com/maemo-leste-extras/picodrive
|category=Games
|packager=[[User:Arno11]]
}}
Picodrive is a Master System, Megadrive/Genesis, Mega CD/Sega CD and 32X emulator running on Maemo-Leste.
(Note: Maemo 5 Picodrive version didn't support 32X emulation)
It works only on Nokia N900 and Motorola Droid 4 at the moment (thanks to their physical keyboards).
The emulator uses the generic GTK UI (this version of Picodrive is based on a well working raspberry version and not the old maemo one)
== Status ==
[[File:2024-06-06-000341_800x480_scrot.png|500px|center]]
* Megadrive games are playable, with sound and input, running at 30 fps on N900 with frameskip=1.
Without frameskip and sound, games run at 60 fps with default CPU frequencies.
* 32X games are only playable without sound on N900 and run at around 40-50 fps. Some games work better with frameskip=1.
Default configuration is already optimised for Megadrive/Genesis games (with sound and 30 fps). Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N.
Keymapping and all other parameters can be modified directly in the user config file available in /home/user/.picodrive/config2.cfg
WARNING: on N900 in the GUI, 'enter menu' is associated to 'escape' key.
'back' is associated to 'e' key (hardcoded).
Almost all configuration parameters are available from the GUI.
=== Tested Megadrive/Genesis games ===
Aladdin, , Behind Oasis, Desert Strike, Psycho Pinball, Phantasy Star 4, Sonic 2, Sonic 3, Street Fighter II CE, Strider, James Pond, Landstalker, Monster World, Quack Shot, Road Rash, Street Of Rage 2.
[[File:2024-06-06-000430 800x480 scrot.png|500px|center]]
=== Tested 32X games ===
After Burner Complete, Knuckles Chaotix, Mortal Kombat 2, NBA Jam, Star Wars Arcade, Virtua Racing Deluxe.
[[File:2024-06-06-001745 800x480 scrot.png|500px|center]]
== Tips ==
If (for some reason) the GUI is not working, it is possible to directly launch a game from command line:
/usr/games/picodrive/picodrive /game_dir/your_game.zip
Default keymap is visible in /home/user/.picodrive/config2.cfg
On N900, it is recommended to activate boost mode (720MHz or 805MHz) while playing 32X games.
As root:
echo 1 > /sys/devices/system/cpu/cpufreq/boost
echo 720 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
== TODO ==
* Implement sane default keys for the devices
* Try to implement Maemo 5 -touch- UI
* Find a way to get a proper fullscreen mode
[[Category:Extras]]
dc2d4fff7a99b513dc62c9604f38a276675d3d00
1665
1664
2024-06-06T07:04:21Z
Arno11
61
wikitext
text/x-wiki
{{Infobox Package
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]
|date_in_repo=2024-05-27
|maemo_leste_repo=https://github.com/maemo-leste-extras/picodrive
|category=Games
|packager=[[User:Arno11]]
}}
Picodrive is a Master System, Megadrive/Genesis, Mega CD/Sega CD and 32X emulator running on Maemo-Leste.
(Note: Maemo 5 Picodrive version didn't support 32X emulation)
It works only on Nokia N900 and Motorola Droid 4 at the moment (thanks to their physical keyboards).
The emulator uses the generic GTK UI: This version of Picodrive is based on a well working raspberry version and not the old maemo one.
== Status ==
[[File:2024-06-06-000341_800x480_scrot.png|500px|center]]
* Megadrive games are playable, with sound and input, running at 30 fps on N900 with frameskip=1.
Without frameskip and sound, games run at 60 fps with default CPU frequencies.
* 32X games are only playable without sound on N900 and run at around 40-50 fps. Some games work better with frameskip=1.
Default configuration is already optimised for Megadrive/Genesis games (with sound and 30 fps). Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N.
Keymapping and all other parameters can be modified directly in the user config file available in /home/user/.picodrive/config2.cfg
WARNING: on N900 in the GUI, 'enter menu' is associated to 'escape' key.
'back' is associated to 'e' key (hardcoded).
Almost all configuration parameters are available from the GUI.
=== Tested Megadrive/Genesis games ===
Aladdin, , Behind Oasis, Desert Strike, Psycho Pinball, Phantasy Star 4, Sonic 2, Sonic 3, Street Fighter II CE, Strider, James Pond, Landstalker, Monster World, Quack Shot, Road Rash, Street Of Rage 2.
[[File:2024-06-06-000430 800x480 scrot.png|500px|center]]
=== Tested 32X games ===
After Burner Complete, Knuckles Chaotix, Mortal Kombat 2, NBA Jam, Star Wars Arcade, Virtua Racing Deluxe.
[[File:2024-06-06-001745 800x480 scrot.png|500px|center]]
== Tips ==
If (for some reason) the GUI is not working, it is possible to directly launch a game from command line:
/usr/games/picodrive/picodrive /game_dir/your_game.zip
Default keymap is visible in /home/user/.picodrive/config2.cfg
On N900, it is recommended to activate boost mode (720MHz or 805MHz) while playing 32X games.
As root:
echo 1 > /sys/devices/system/cpu/cpufreq/boost
echo 720 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
== TODO ==
* Implement sane default keys for the devices
* Try to implement Maemo 5 -touch- UI
* Find a way to get a proper fullscreen mode
[[Category:Extras]]
59ebef1f3357d357bf352e257fabf1c453408a7b
1666
1665
2024-06-06T08:16:50Z
Arno11
61
/* Status */
wikitext
text/x-wiki
{{Infobox Package
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]
|date_in_repo=2024-05-27
|maemo_leste_repo=https://github.com/maemo-leste-extras/picodrive
|category=Games
|packager=[[User:Arno11]]
}}
Picodrive is a Master System, Megadrive/Genesis, Mega CD/Sega CD and 32X emulator running on Maemo-Leste.
(Note: Maemo 5 Picodrive version didn't support 32X emulation)
It works only on Nokia N900 and Motorola Droid 4 at the moment (thanks to their physical keyboards).
The emulator uses the generic GTK UI: This version of Picodrive is based on a well working raspberry version and not the old maemo one.
== Status ==
[[File:2024-06-06-000341_800x480_scrot.png|500px|center]]
* Megadrive games are playable, with sound and input, running at 30 fps on N900 with frameskip=1.
Without frameskip and sound, games run at 60 fps with default CPU frequencies.
* 32X games are only playable without sound on N900 and run at around 40-50 fps. Some games work better with frameskip=1.
Default configuration is already optimised for Megadrive/Genesis games (with sound and 30 fps). Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N.
Keymapping and all other parameters can be modified directly in the user config file available in /home/user/.picodrive/config2.cfg
WARNING: on N900 in the GUI, 'enter menu' is associated to 'escape' key.
'back' is associated to 'e' key (hardcoded).
Almost all configuration parameters are available from the GUI.
=== Tested Megadrive/Genesis games ===
Aladdin, , Behind Oasis, Desert Strike, Psycho Pinball, Phantasy Star 4, Sonic 2, Sonic 3, Street Fighter II CE, Strider, James Pond, Landstalker, Monster World, Quack Shot, Road Rash, Street Of Rage 2.
[[File:2024-06-06-000430 800x480 scrot.png|500px|center]]
=== Tested 32X games ===
After Burner Complete, Knuckles Chaotix, Mortal Kombat 2, NBA Jam, Star Wars Arcade, Virtua Racing Deluxe.
[[File:2024-06-06-001745 800x480 scrot.png|500px|center]]
== Tips ==
If (for some reason) the GUI is not working, it is possible to directly launch a game from command line:
/usr/games/picodrive/picodrive /game_dir/your_game.zip
Default keymap is visible in /home/user/.picodrive/config2.cfg
On N900, it is recommended to activate boost mode (720MHz or 805MHz) while playing 32X games.
As root:
echo 1 > /sys/devices/system/cpu/cpufreq/boost
echo 720 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
== TODO ==
* Implement sane default keys for the devices
* Try to implement Maemo 5 -touch- UI
* Find a way to get a proper fullscreen mode
[[Category:Extras]]
056f5070ccffb049bb0efa82e6f5c3aea5942e65
1668
1666
2024-06-06T20:43:47Z
Arno11
61
/* Tips */
wikitext
text/x-wiki
{{Infobox Package
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]
|date_in_repo=2024-05-27
|maemo_leste_repo=https://github.com/maemo-leste-extras/picodrive
|category=Games
|packager=[[User:Arno11]]
}}
Picodrive is a Master System, Megadrive/Genesis, Mega CD/Sega CD and 32X emulator running on Maemo-Leste.
(Note: Maemo 5 Picodrive version didn't support 32X emulation)
It works only on Nokia N900 and Motorola Droid 4 at the moment (thanks to their physical keyboards).
The emulator uses the generic GTK UI: This version of Picodrive is based on a well working raspberry version and not the old maemo one.
== Status ==
[[File:2024-06-06-000341_800x480_scrot.png|500px|center]]
* Megadrive games are playable, with sound and input, running at 30 fps on N900 with frameskip=1.
Without frameskip and sound, games run at 60 fps with default CPU frequencies.
* 32X games are only playable without sound on N900 and run at around 40-50 fps. Some games work better with frameskip=1.
Default configuration is already optimised for Megadrive/Genesis games (with sound and 30 fps). Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N.
Keymapping and all other parameters can be modified directly in the user config file available in /home/user/.picodrive/config2.cfg
WARNING: on N900 in the GUI, 'enter menu' is associated to 'escape' key.
'back' is associated to 'e' key (hardcoded).
Almost all configuration parameters are available from the GUI.
=== Tested Megadrive/Genesis games ===
Aladdin, , Behind Oasis, Desert Strike, Psycho Pinball, Phantasy Star 4, Sonic 2, Sonic 3, Street Fighter II CE, Strider, James Pond, Landstalker, Monster World, Quack Shot, Road Rash, Street Of Rage 2.
[[File:2024-06-06-000430 800x480 scrot.png|500px|center]]
=== Tested 32X games ===
After Burner Complete, Knuckles Chaotix, Mortal Kombat 2, NBA Jam, Star Wars Arcade, Virtua Racing Deluxe.
[[File:2024-06-06-001745 800x480 scrot.png|500px|center]]
== Tips ==
If (for some reason) the GUI is not working, it is possible to directly launch a game from command line:
/usr/games/picodrive/picodrive /game_dir/your_game.zip
Default keymap is visible in /home/user/.picodrive/config2.cfg
On N900, it is recommended to activate boost mode (720MHz or 805MHz) while playing 32X games.
As root:
echo 1 > /sys/devices/system/cpu/cpufreq/boost
echo 720000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
== TODO ==
* Implement sane default keys for the devices
* Try to implement Maemo 5 -touch- UI
* Find a way to get a proper fullscreen mode
[[Category:Extras]]
14c7fd7b3c8cad079b414b30fa0d0c33433e033f
File:Picodrive2 GUI.png
6
229
1648
2024-06-05T22:33:31Z
Arno11
61
Pico
wikitext
text/x-wiki
== Summary ==
Pico
91d2c9749a180cde3b429aeb1da7f5a235b95877
File:2024-06-06-000430 800x480 scrot.png
6
230
1651
2024-06-06T05:53:15Z
Arno11
61
wikitext
text/x-wiki
Sonic 2
aad1ecb63b2d8b37488d1aada8d26e860a3b447a
File:2024-06-06-001745 800x480 scrot.png
6
231
1653
2024-06-06T05:56:08Z
Arno11
61
wikitext
text/x-wiki
VRD
a716a0c7b83eb569cd9e875c9829acdf7079000c
Wishlist
0
89
1667
1295
2024-06-06T09:22:51Z
Arno11
61
/* Applications */
wikitext
text/x-wiki
If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.
We do not promise that we can port it right away, but we will try, as far as our resources allow.
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information.
== Applications ==
{| class="wikitable"http://maemo.org/packages/view/orecchiette/
! Package name
! Done
! Reason
! User
! URL
! Notes
|-
| osso-notes || Yes (quicknote) || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Quicknote currently packaged. Usage notes - http://wiki.maemo.org/Quicknote
|-
| pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or http://linball.sourceforge.net/|| any implementation.
|-
| scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please
|-
| [[Games/Brainparty|brainparty]] || Yes || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ ||
|-
| Picodrive || Yes || Sega emulator, fun || [[User:Maemish]] [[User:Arno11]]|| http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ and https://github.com/maemo-leste-extras/picodrive || https://leste.maemo.org/Extras/picodrive
|-
| Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||http://maemo.org/packages/view/orecchiette/
|-
| Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend
|-
| PDF reader || Yes || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || libhildonfm has bugs regarding file opening dialogs that need to be fixed
|-
| Calendar app || Yes || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port.
|-
| Alarm clock || Yes || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI
|-
| Word processor / Abiword || Yes || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/ || in Devuan repos
|-
| Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel
|-
|Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0
|-
| Camera App: BlessN900|| No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ ||
|-
| Image viewer/editor || Yes || || [[User:Maemish]] || https://github.com/maemo-leste-extras/mihphoto ||
|-
| Mail with imap support || No || || [[User:Maemish]] || ||
|-
| RSS Feed Reader: Who knows a good one? || No || Reading/Media || [[User:Maemish]] || ||
|-
| Browser: Dooble || No || internet || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/ ||
|-
| OpenMediaPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer ||
|-
| SMPlayer || Yes || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net || in Devuan repos; "maemo5" UI style is currently broken
|-
| Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ ||
|-
| D-Theme SimpleBlackGreen || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ ||
|-
| Bootscreen: Don't Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/ ||
|-
| MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms ||
|-
| Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/ ||
|-
| Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed.
|-
| Firewall || No || || [[User:Maemish]] || || Something with easy configuration.
|-
| Swappolube || No || || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ ||
|-
|bnf- Battery information at glance || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ ||
|-
| cardioalert || No || || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ ||
|-
| gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ ||
|-|-
| alarmed (or cron?) || No || utilities || [[User:ric9k]] || http://maemo.org/packages/view/alarmed/ ||
|-|-
| user friendly tracker || No || utilities? || [[User:ric9k]] || n/a :-) ||
|-|-
| Maps (offline) || Yes || Navigation || [[User:Sicelo]] || || (maep, modrana, cloudgps are all packaged). Ideally something like https://f-droid.org/en/packages/com.github.axet.maps/ from Android, but Modrana, https://github.com/M4rtinK/modrana may be easier as a start. [https://www.foxtrotgps.org FoxtrotGPS] might be the easiest to adapt, it is already packaged in Devuan and works well on the Pinephone at least.
|-
| Orecchiette || No || calls recording || [[User:capitannemo]] || http://maemo.org/packages/view/orecchiette/ ||
|-
| Panucci || No || audiobook || [[User:capitannemo]] || http://maemo.org/packages/view/panucci/ ||
|-
| gPodder || No || podcast || [[User:capitannemo]] || http://maemo.org/packages/view/gpodder/ ||
|-
| Symfonie || No || directory-based audioplayer || [[User:capitannemo]] || http://maemo.org/packages/view/symfonie/ ||
|-
| osso-clock || Yes (clock-ui) || clock and alarms application || pavel || ||
|-
| freecell4maemo || No || freecell game || pavel || ||
|-
| [http://festvox.org/index.html CMU Flite] || In Repo || Accessibility (TTS) || [[User:Buffer|Buffer]] ([[User talk:Buffer|talk]]) 21:48, 2 March 2020 (UTC) || https://github.com/festvox/flite ||
|-
| Cooktimer || No || feature-rich timers || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cooktimer/0.0.4-24/ || latest from extras-devel
|-
| OpenSSH Status Widget || No || openSSH monitor and config. || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/openssh-status-widget/2.2-12/ || Installing this package is the only step required on a fresh n900 to have openssh working
|-
| Recaller || No || record with one tap || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/recaller/2.1.0-5/ ||
|-
| NecroPlayer2 || No || directory-based audioplayer, easy playlist edit, multiple directories, very useful with recaller widget || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/necroplayer2/0.2.3/ ||
|-
| Simpler Brightness Applet || Yes || simple brightness applet with single tap for backlight and long tap for settings || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/simpler-brightness-applet/1.0/ ||
|-
| telepathy-signal || No || The best open source alternative to WhatsApp should be ready for use with Maemo Leste || [[User:Derby]] || https://github.com/signalapp/Signal-Desktop ; https://github.com/AsamK/signal-cli || This is a suggestion to create a Telepathy connection manager for Signal. Although the Signal [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=842943 Desktop] and [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=926807 CLI] can be installed, they are not yet available in Debian. In any case, it would be great to have a Telepathy connection manager for Signal to provide seamless integration with Maemo.
de3964647ca6875ed48fee000bc4dc0cd67b5caf
File:2024-06-07-064926 800x480 scrot.png
6
232
1669
2024-06-07T20:59:36Z
Arno11
61
wikitext
text/x-wiki
GUI
75ebc687f6257857cd417c34b00fa35ec1f0c809
File:2024-06-07-100831 800x480 scrot.png
6
233
1670
2024-06-07T21:22:56Z
Arno11
61
wikitext
text/x-wiki
AceCombat3
49837eef872b7aff1492bcfb11ea4f9eac69aacb
File:2024-06-07-065424 800x480 scrot.png
6
234
1671
2024-06-07T21:24:06Z
Arno11
61
wikitext
text/x-wiki
Tekken3
a5295e3bb731a895c3e7c7572bd0780d6c06663c
File:2024-06-07-065751 800x480 scrot.png
6
235
1672
2024-06-07T21:25:00Z
Arno11
61
wikitext
text/x-wiki
GT1
77a68fd54e8bbd88c91f6a5a4b64b39500c07bd3
File:2024-06-07-070020 800x480 scrot.png
6
236
1673
2024-06-07T21:25:58Z
Arno11
61
wikitext
text/x-wiki
Mana
1eab2e77896772f19030f55f716eb8eb35d3dcde
Extras/pcsx rearmed
0
237
1674
2024-06-07T21:30:59Z
Arno11
61
Created page with "{{Infobox Package |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2024-05-27 |maemo_leste_repo=https://github.com/maemo-leste-extras/pcsx_rearmed |c..."
wikitext
text/x-wiki
{{Infobox Package
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]
|date_in_repo=2024-05-27
|maemo_leste_repo=https://github.com/maemo-leste-extras/pcsx_rearmed
|category=Games
|packager=[[User:Arno11]]
}}
Pcsx_rearmed is a Playstation 1 emulator running on Maemo-Leste.
It works only on Nokia N900 and Motorola Droid 4 at the moment (thanks to their physical keyboards).
The emulator uses a generic GTK UI: The old maemo 5 touch GUI is not working at the moment.
== Status ==
[[File:2024-06-07-064926 800x480 scrot.png|500px|center]]
* Playstation games are playable, with sound and input, running at 25-30 fps on N900 with frameskip=1 usually but really depending of the game and if it is a NSCT or PAL version.
Without frameskip and sound, games run usually at 50 or 60 fps with default CPU frequencies and buildin_gpu. But again, it is really depending of the game: some of them are 'locked' at 24 fps (PAL) or 30 fps (NSCT).
On N900, boost mode (overclock) is recommended if you play with sound. Otherwise it works well with stock frequencies, specially with the buildin_gpu.
Default configuration is already optimised without sound and 25-30 fps. Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N.
Keymapping and all other parameters can be modified directly in the user config file available in /usr/games/pcsx/.pcsx/pcsx.cfg
Only buildin_gpu and gpu_unai are working (but really well.
It is possible (not all games) to speed up and increase framerate using the 'fast forward' option.
WARNING: on N900 in the GUI, 'enter menu' is associated to 'escape' key.
'back' is associated to 'e' key (hardcoded).
Almost all configuration parameters are available from the GUI.
=== Tested Playstation/Psx/PsOne games===
Driver, MetalSlugX, Ace Combat 3, Spyro the Dragon, Final Fantasy 8, Legend of Mana, Medal of Honor, Metal Gear Solid, Gran Turismo, Tekken 3, V-Rally, Moto Racer 2, ISS Pro Evolution.
[[File:2024-06-07-100831 800x480 scrot.png|500px|center]]
[[File:2024-06-07-065424 800x480 scrot.png|500px|center]]
[[File:2024-06-07-065751 800x480 scrot.png|500px|center]]
[[File:2024-06-07-070020 800x480 scrot.png|500px|center]]
== Tips ==
If (for some reason) the GUI is not working, it is possible to directly launch a game from command line:
/usr/games/pcsx/pcsx /game_dir/your_game.zip
Default keymap is visible in /usr/games/pcsx/.pcsx/pcsx.cfg
On N900, to activate boost mode (720MHz or 805MHz):
As root:
echo 1 > /sys/devices/system/cpu/cpufreq/boost
echo 720000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
== TODO ==
* Implement sane default keys for the devices
* Try to implement Maemo 5 -touch- UI
[[Category:Extras]]
cf2b903c6907b5d99788068dd9610a29dde8f9a8
1675
1674
2024-06-07T21:37:40Z
Arno11
61
wikitext
text/x-wiki
{{Infobox Package
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]
|date_in_repo=2024-05-27
|maemo_leste_repo=https://github.com/maemo-leste-extras/pcsx_rearmed
|category=Games
|packager=[[User:Arno11]]
}}
Pcsx_rearmed is a Playstation 1 emulator running on Maemo-Leste.
It works only on Nokia N900 and Motorola Droid 4 at the moment (thanks to their physical keyboards).
The emulator uses a generic GTK UI: The old maemo 5 touch GUI is not working at the moment.
== Status ==
[[File:2024-06-07-064926 800x480 scrot.png|500px|center]]
* Playstation games are playable, with sound and input, running at 25-30 fps on N900 with frameskip=1 usually but really depending of the game and if it is a NSCT or PAL version.
[[File:2024-06-07-065751 800x480 scrot.png|500px|center]]
Without frameskip and sound, games run usually at 50 or 60 fps with default CPU frequencies and buildin_gpu. But again, it is really depending of the game: some of them are 'locked' at 24 fps (PAL) or 30 fps (NSCT).
On N900, boost mode (overclock) is recommended if you play with sound. Otherwise it works well with stock frequencies, specially with the buildin_gpu.
[[File:2024-06-07-065424 800x480 scrot.png|500px|center]]
Default configuration is already optimised without sound and 25-30 fps. Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N.
Keymapping and all other parameters can be modified directly in the user config file available in /usr/games/pcsx/.pcsx/pcsx.cfg
Only buildin_gpu and gpu_unai are working (but really well.
It is possible (not all games) to speed up and increase framerate using the 'fast forward' option.
[[File:2024-06-07-100831 800x480 scrot.png|500px|center]]
WARNING: on N900 in the GUI, 'enter menu' is associated to 'escape' key.
'back' is associated to 'e' key (hardcoded).
Almost all configuration parameters are available from the GUI.
=== Tested Playstation/Psx/PsOne games===
Driver, MetalSlugX, Ace Combat 3, Spyro the Dragon, Final Fantasy 8, Legend of Mana, Medal of Honor, Metal Gear Solid, Gran Turismo, Tekken 3, V-Rally, Moto Racer 2, ISS Pro Evolution.
[[File:2024-06-07-065424 800x480 scrot.png|500px|center]]
[[File:2024-06-07-070020 800x480 scrot.png|500px|center]]
== Tips ==
If (for some reason) the GUI is not working, it is possible to directly launch a game from command line:
/usr/games/pcsx/pcsx /game_dir/your_game.zip
Default keymap is visible in /usr/games/pcsx/.pcsx/pcsx.cfg
On N900, to activate boost mode (720MHz or 805MHz):
As root:
echo 1 > /sys/devices/system/cpu/cpufreq/boost
echo 720000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
== TODO ==
* Implement sane default keys for the devices
* Try to implement Maemo 5 -touch- UI
[[Category:Extras]]
21cb0354e4c073ac0f1dcfa7b83ddcb804372a11
1676
1675
2024-06-07T21:43:02Z
Arno11
61
wikitext
text/x-wiki
{{Infobox Package
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]
|date_in_repo=2024-05-27
|maemo_leste_repo=https://github.com/maemo-leste-extras/pcsx_rearmed
|category=Games
|packager=[[User:Arno11]]
}}
Pcsx_rearmed is a Playstation 1 emulator running on Maemo-Leste.
It works only on Nokia N900 and Motorola Droid 4 at the moment (thanks to their physical keyboards).
The emulator uses a generic GTK UI: The old maemo 5 touch GUI is not working at the moment.
== Status ==
WARNING: on N900 in the GUI, 'enter menu' is associated to 'escape' key.
'back' is associated to 'e' key (hardcoded).
[[File:2024-06-07-064926 800x480 scrot.png|500px|center]]
* Playstation games are playable, with sound and input, running at 25-30 fps on N900 with frameskip=1 usually but really depending of the game and if it is a NSCT or PAL version.
[[File:2024-06-07-065751 800x480 scrot.png|500px|center]]
Without frameskip and sound, games run usually at 50 or 60 fps with default CPU frequencies and buildin_gpu. But again, it is really depending of the game: some of them are 'locked' at 24 fps (PAL) or 30 fps (NSCT).
On N900, boost mode (overclock) is recommended if you play with sound. Otherwise it works well with stock frequencies, specially with the buildin_gpu.
[[File:2024-06-07-065424 800x480 scrot.png|500px|center]]
Default configuration is already optimised without sound and 25-30 fps. Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N.
Keymapping and all other parameters can be modified directly in the user config file available in /usr/games/pcsx/.pcsx/pcsx.cfg
Only buildin_gpu and gpu_unai are working (but really well.
It is possible (not all games) to speed up and increase framerate using the 'fast forward' option.
[[File:2024-06-07-100831 800x480 scrot.png|500px|center]]
Fullscreen mode can be activated with 'F' key by default.
Almost all configuration parameters are available from the GUI.
=== Tested Playstation/Psx/PsOne games===
Driver, MetalSlugX, Ace Combat 3, Spyro the Dragon, Final Fantasy 8, Legend of Mana, Medal of Honor, Metal Gear Solid, Gran Turismo, Tekken 3, V-Rally, Moto Racer 2, ISS Pro Evolution.
[[File:2024-06-07-070020 800x480 scrot.png|500px|center]]
== Tips ==
If (for some reason) the GUI is not working, it is possible to directly launch a game from command line:
/usr/games/pcsx/pcsx /game_dir/your_game.zip
Default keymap is visible in /usr/games/pcsx/.pcsx/pcsx.cfg
On N900, to activate boost mode (720MHz or 805MHz):
As root:
echo 1 > /sys/devices/system/cpu/cpufreq/boost
echo 720000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
== TODO ==
* Implement sane default keys for the devices
* Try to implement Maemo 5 -touch- UI
[[Category:Extras]]
b4e2f0e9032cc0b1d8e6c361216a1078741c3b3b
1677
1676
2024-06-07T21:51:44Z
Arno11
61
wikitext
text/x-wiki
{{Infobox Package
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]
|date_in_repo=2024-05-27
|maemo_leste_repo=https://github.com/maemo-leste-extras/pcsx_rearmed
|category=Games
|packager=[[User:Arno11]]
}}
Pcsx_rearmed is a Playstation 1 emulator running on Maemo-Leste.
It works only on Nokia N900 and Motorola Droid 4 at the moment (thanks to their physical keyboards).
The emulator uses a generic GTK UI: The old maemo 5 touch GUI is not working at the moment.
== Status ==
WARNING: on N900 in the GUI, 'enter menu' is associated to 'escape' key.
'back' is associated to 'e' key (hardcoded).
[[File:2024-06-07-064926 800x480 scrot.png|500px|center]]
* Playstation games are playable, with sound and input, running at 25-30 fps on N900 with frameskip=1 usually but really depending of the game and if it is a NSCT or PAL version.
[[File:2024-06-07-065751 800x480 scrot.png|500px|center]]
Without frameskip and sound, games run usually at 50 or 60 fps with default CPU frequencies and buildin_gpu. But again, it is really depending of the game: some of them are 'locked' at 24 fps (PAL) or 30 fps (NSCT).
On N900, boost mode (overclock) is recommended if you play with sound. Otherwise it works well with stock frequencies, specially with the buildin_gpu.
[[File:2024-06-07-065424 800x480 scrot.png|500px|center]]
Default configuration is already optimised without sound and 25-30 fps. Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N.
Keymapping and all other parameters can be modified directly in the user config file available in /usr/games/pcsx/.pcsx/pcsx.cfg
Only buildin_gpu and gpu_unai are working (but really well).
It is possible (not all games) to speed up and increase framerate using the 'fast forward' option.
[[File:2024-06-07-100831 800x480 scrot.png|500px|center]]
Fullscreen mode can be activated with 'F' key by default.
Almost all configuration parameters are available from the GUI.
=== Tested Playstation/Psx/PsOne games===
Driver, MetalSlugX, Ace Combat 3, Spyro the Dragon, Final Fantasy 8, Legend of Mana, Medal of Honor, Metal Gear Solid, Gran Turismo, Tekken 3, V-Rally, Moto Racer 2, ISS Pro Evolution.
[[File:2024-06-07-070020 800x480 scrot.png|500px|center]]
== Configuration ==
Original Bios file can't be provided. The emulator use HLE bios by default which works with some games. For a full working emulation, a real pcsx bios is needed and must be added in '/usr/games/pcsx/bios' directory.
== Tips ==
If (for some reason) the GUI is not working, it is possible to directly launch a game from command line:
/usr/games/pcsx/pcsx /game_dir/your_game.zip
Default keymap is visible in /usr/games/pcsx/.pcsx/pcsx.cfg
On N900, to activate boost mode (720MHz or 805MHz):
As root:
echo 1 > /sys/devices/system/cpu/cpufreq/boost
echo 720000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
== TODO ==
* Implement sane default keys for the devices
* Try to implement Maemo 5 -touch- UI
[[Category:Extras]]
195ce19730c30af44e141ae7048208ad046b5833
1678
1677
2024-06-08T10:28:27Z
Arno11
61
/* Status */
wikitext
text/x-wiki
{{Infobox Package
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]
|date_in_repo=2024-05-27
|maemo_leste_repo=https://github.com/maemo-leste-extras/pcsx_rearmed
|category=Games
|packager=[[User:Arno11]]
}}
Pcsx_rearmed is a Playstation 1 emulator running on Maemo-Leste.
It works only on Nokia N900 and Motorola Droid 4 at the moment (thanks to their physical keyboards).
The emulator uses a generic GTK UI: The old maemo 5 touch GUI is not working at the moment.
== Status ==
WARNING: on N900 in the GUI, 'enter menu' is associated to 'escape' key.
'back' is associated to 'e' key (hardcoded).
[[File:2024-06-07-064926 800x480 scrot.png|500px|center]]
* Playstation games are playable, with sound and input, running at 25-30 fps on N900 with frameskip=1 usually but really depending of the game and if it is a NTSC or PAL version.
[[File:2024-06-07-065751 800x480 scrot.png|500px|center]]
Without frameskip and sound, games run usually at 50 or 60 fps with default CPU frequencies and buildin_gpu. But again, it is really depending of the game: some of them are 'locked' at 24 fps (PAL) or 30 fps (NTSC).
On N900, boost mode (overclock) is recommended if you play with sound. Otherwise it works well with stock frequencies, specially with the buildin_gpu.
[[File:2024-06-07-065424 800x480 scrot.png|500px|center]]
Default configuration is already optimised without sound and 25-30 fps. Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N.
Keymapping and all other parameters can be modified directly in the user config file available in /usr/games/pcsx/.pcsx/pcsx.cfg
Only buildin_gpu and gpu_unai are working (but really well).
It is possible (not all games) to speed up and increase framerate using the 'fast forward' option.
[[File:2024-06-07-100831 800x480 scrot.png|500px|center]]
Fullscreen mode can be activated with 'F' key by default.
Almost all configuration parameters are available from the GUI.
=== Tested Playstation/Psx/PsOne games===
Driver, MetalSlugX, Ace Combat 3, Spyro the Dragon, Final Fantasy 8, Legend of Mana, Medal of Honor, Metal Gear Solid, Gran Turismo, Tekken 3, V-Rally, Moto Racer 2, ISS Pro Evolution.
[[File:2024-06-07-070020 800x480 scrot.png|500px|center]]
== Configuration ==
Original Bios file can't be provided. The emulator use HLE bios by default which works with some games. For a full working emulation, a real pcsx bios is needed and must be added in '/usr/games/pcsx/bios' directory.
== Tips ==
If (for some reason) the GUI is not working, it is possible to directly launch a game from command line:
/usr/games/pcsx/pcsx /game_dir/your_game.zip
Default keymap is visible in /usr/games/pcsx/.pcsx/pcsx.cfg
On N900, to activate boost mode (720MHz or 805MHz):
As root:
echo 1 > /sys/devices/system/cpu/cpufreq/boost
echo 720000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
== TODO ==
* Implement sane default keys for the devices
* Try to implement Maemo 5 -touch- UI
[[Category:Extras]]
1eed84217b5bfcd14c511f7baf6e9fc929fb1272
1679
1678
2024-06-08T10:33:37Z
Arno11
61
/* Configuration */
wikitext
text/x-wiki
{{Infobox Package
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]
|date_in_repo=2024-05-27
|maemo_leste_repo=https://github.com/maemo-leste-extras/pcsx_rearmed
|category=Games
|packager=[[User:Arno11]]
}}
Pcsx_rearmed is a Playstation 1 emulator running on Maemo-Leste.
It works only on Nokia N900 and Motorola Droid 4 at the moment (thanks to their physical keyboards).
The emulator uses a generic GTK UI: The old maemo 5 touch GUI is not working at the moment.
== Status ==
WARNING: on N900 in the GUI, 'enter menu' is associated to 'escape' key.
'back' is associated to 'e' key (hardcoded).
[[File:2024-06-07-064926 800x480 scrot.png|500px|center]]
* Playstation games are playable, with sound and input, running at 25-30 fps on N900 with frameskip=1 usually but really depending of the game and if it is a NTSC or PAL version.
[[File:2024-06-07-065751 800x480 scrot.png|500px|center]]
Without frameskip and sound, games run usually at 50 or 60 fps with default CPU frequencies and buildin_gpu. But again, it is really depending of the game: some of them are 'locked' at 24 fps (PAL) or 30 fps (NTSC).
On N900, boost mode (overclock) is recommended if you play with sound. Otherwise it works well with stock frequencies, specially with the buildin_gpu.
[[File:2024-06-07-065424 800x480 scrot.png|500px|center]]
Default configuration is already optimised without sound and 25-30 fps. Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N.
Keymapping and all other parameters can be modified directly in the user config file available in /usr/games/pcsx/.pcsx/pcsx.cfg
Only buildin_gpu and gpu_unai are working (but really well).
It is possible (not all games) to speed up and increase framerate using the 'fast forward' option.
[[File:2024-06-07-100831 800x480 scrot.png|500px|center]]
Fullscreen mode can be activated with 'F' key by default.
Almost all configuration parameters are available from the GUI.
=== Tested Playstation/Psx/PsOne games===
Driver, MetalSlugX, Ace Combat 3, Spyro the Dragon, Final Fantasy 8, Legend of Mana, Medal of Honor, Metal Gear Solid, Gran Turismo, Tekken 3, V-Rally, Moto Racer 2, ISS Pro Evolution.
[[File:2024-06-07-070020 800x480 scrot.png|500px|center]]
== Configuration ==
Original Bios file can't be provided. The emulator use HLE bios by default which works with some games. For a full working emulation, a real pcsx bios is needed and must be added in '/usr/games/pcsx/bios' directory.
(The correct typo is for example scph7502.bin)
== Tips ==
If (for some reason) the GUI is not working, it is possible to directly launch a game from command line:
/usr/games/pcsx/pcsx /game_dir/your_game.zip
Default keymap is visible in /usr/games/pcsx/.pcsx/pcsx.cfg
On N900, to activate boost mode (720MHz or 805MHz):
As root:
echo 1 > /sys/devices/system/cpu/cpufreq/boost
echo 720000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
== TODO ==
* Implement sane default keys for the devices
* Try to implement Maemo 5 -touch- UI
[[Category:Extras]]
89608c72ec8686b8c2142a82165ec379a0ff188e
1680
1679
2024-06-08T10:34:08Z
Arno11
61
/* Configuration */
wikitext
text/x-wiki
{{Infobox Package
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]
|date_in_repo=2024-05-27
|maemo_leste_repo=https://github.com/maemo-leste-extras/pcsx_rearmed
|category=Games
|packager=[[User:Arno11]]
}}
Pcsx_rearmed is a Playstation 1 emulator running on Maemo-Leste.
It works only on Nokia N900 and Motorola Droid 4 at the moment (thanks to their physical keyboards).
The emulator uses a generic GTK UI: The old maemo 5 touch GUI is not working at the moment.
== Status ==
WARNING: on N900 in the GUI, 'enter menu' is associated to 'escape' key.
'back' is associated to 'e' key (hardcoded).
[[File:2024-06-07-064926 800x480 scrot.png|500px|center]]
* Playstation games are playable, with sound and input, running at 25-30 fps on N900 with frameskip=1 usually but really depending of the game and if it is a NTSC or PAL version.
[[File:2024-06-07-065751 800x480 scrot.png|500px|center]]
Without frameskip and sound, games run usually at 50 or 60 fps with default CPU frequencies and buildin_gpu. But again, it is really depending of the game: some of them are 'locked' at 24 fps (PAL) or 30 fps (NTSC).
On N900, boost mode (overclock) is recommended if you play with sound. Otherwise it works well with stock frequencies, specially with the buildin_gpu.
[[File:2024-06-07-065424 800x480 scrot.png|500px|center]]
Default configuration is already optimised without sound and 25-30 fps. Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N.
Keymapping and all other parameters can be modified directly in the user config file available in /usr/games/pcsx/.pcsx/pcsx.cfg
Only buildin_gpu and gpu_unai are working (but really well).
It is possible (not all games) to speed up and increase framerate using the 'fast forward' option.
[[File:2024-06-07-100831 800x480 scrot.png|500px|center]]
Fullscreen mode can be activated with 'F' key by default.
Almost all configuration parameters are available from the GUI.
=== Tested Playstation/Psx/PsOne games===
Driver, MetalSlugX, Ace Combat 3, Spyro the Dragon, Final Fantasy 8, Legend of Mana, Medal of Honor, Metal Gear Solid, Gran Turismo, Tekken 3, V-Rally, Moto Racer 2, ISS Pro Evolution.
[[File:2024-06-07-070020 800x480 scrot.png|500px|center]]
== Configuration ==
Original Bios file can't be provided. The emulator use HLE bios by default which works with some games. For a full working emulation, a real pcsx bios is needed and must be added in '/usr/games/pcsx/bios' directory.
(The correct typo is for example 'scph7502.bin')
== Tips ==
If (for some reason) the GUI is not working, it is possible to directly launch a game from command line:
/usr/games/pcsx/pcsx /game_dir/your_game.zip
Default keymap is visible in /usr/games/pcsx/.pcsx/pcsx.cfg
On N900, to activate boost mode (720MHz or 805MHz):
As root:
echo 1 > /sys/devices/system/cpu/cpufreq/boost
echo 720000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
== TODO ==
* Implement sane default keys for the devices
* Try to implement Maemo 5 -touch- UI
[[Category:Extras]]
6e13e50d8944be6cf79527dcfb9e841341d527fc
1681
1680
2024-06-08T10:42:43Z
Arno11
61
/* Status */
wikitext
text/x-wiki
{{Infobox Package
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]
|date_in_repo=2024-05-27
|maemo_leste_repo=https://github.com/maemo-leste-extras/pcsx_rearmed
|category=Games
|packager=[[User:Arno11]]
}}
Pcsx_rearmed is a Playstation 1 emulator running on Maemo-Leste.
It works only on Nokia N900 and Motorola Droid 4 at the moment (thanks to their physical keyboards).
The emulator uses a generic GTK UI: The old maemo 5 touch GUI is not working at the moment.
== Status ==
WARNING: on N900 in the GUI, 'enter menu' is associated to 'escape' key.
'back' is associated to 'e' key (hardcoded).
[[File:2024-06-07-064926 800x480 scrot.png|500px|center]]
* Playstation games are playable, with sound and input, running at 25-30 fps on N900 with frameskip=1 usually but really depending of the game and if it is a NTSC or PAL version.
[[File:2024-06-07-065751 800x480 scrot.png|500px|center]]
Without frameskip and sound, games run usually at full speed with default CPU frequencies and buildin_gpu. But again, it is really depending of the game: some of them are 'locked' at 24 fps (PAL) or 30 fps (NTSC).
On N900, boost mode (overclock) is recommended if you play with sound. Otherwise it works well with stock frequencies, specially with the buildin_gpu.
[[File:2024-06-07-065424 800x480 scrot.png|500px|center]]
Default configuration is already optimised without sound and 25-30 fps. Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N.
Keymapping and all other parameters can be modified directly in the user config file available in /usr/games/pcsx/.pcsx/pcsx.cfg
Only buildin_gpu and gpu_unai are working (but really well).
It is possible (not all games) to speed up and increase framerate using the 'fast forward' option.
[[File:2024-06-07-100831 800x480 scrot.png|500px|center]]
Fullscreen mode can be activated with 'F' key by default.
Almost all configuration parameters are available from the GUI.
=== Tested Playstation/Psx/PsOne games===
Driver, MetalSlugX, Ace Combat 3, Spyro the Dragon, Final Fantasy 8, Legend of Mana, Medal of Honor, Metal Gear Solid, Gran Turismo, Tekken 3, V-Rally, Moto Racer 2, ISS Pro Evolution.
[[File:2024-06-07-070020 800x480 scrot.png|500px|center]]
== Configuration ==
Original Bios file can't be provided. The emulator use HLE bios by default which works with some games. For a full working emulation, a real pcsx bios is needed and must be added in '/usr/games/pcsx/bios' directory.
(The correct typo is for example 'scph7502.bin')
== Tips ==
If (for some reason) the GUI is not working, it is possible to directly launch a game from command line:
/usr/games/pcsx/pcsx /game_dir/your_game.zip
Default keymap is visible in /usr/games/pcsx/.pcsx/pcsx.cfg
On N900, to activate boost mode (720MHz or 805MHz):
As root:
echo 1 > /sys/devices/system/cpu/cpufreq/boost
echo 720000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
== TODO ==
* Implement sane default keys for the devices
* Try to implement Maemo 5 -touch- UI
[[Category:Extras]]
2bdff3f2620cd1c4c343a8bfecafbfa3f3cdb04c
1682
1681
2024-06-08T11:10:45Z
Arno11
61
wikitext
text/x-wiki
{{Infobox Package
|status=Working / Debian packaging is WIP
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]
|date_in_repo=2024-05-27
|maemo_leste_repo=https://github.com/maemo-leste-extras/pcsx_rearmed
|category=Games
|packager=[[User:Arno11]]
}}
Pcsx_rearmed is a Playstation 1 emulator running on Maemo-Leste.
It works only on Nokia N900 and Motorola Droid 4 at the moment (thanks to their physical keyboards).
The emulator uses a generic GTK UI: The old maemo 5 touch GUI is not working at the moment.
== Status ==
WARNING: on N900 in the GUI, 'enter menu' is associated to 'escape' key.
'back' is associated to 'e' key (hardcoded).
[[File:2024-06-07-064926 800x480 scrot.png|500px|center]]
* Playstation games are playable, with sound and input, running at 25-30 fps on N900 with frameskip=1 usually but really depending of the game and if it is a NTSC or PAL version.
[[File:2024-06-07-065751 800x480 scrot.png|500px|center]]
Without frameskip and sound, games run usually at full speed with default CPU frequencies and buildin_gpu. But again, it is really depending of the game: some of them are 'locked' at 24 fps (PAL) or 30 fps (NTSC).
On N900, boost mode (overclock) is recommended if you play with sound. Otherwise it works well with stock frequencies, specially with the buildin_gpu.
[[File:2024-06-07-065424 800x480 scrot.png|500px|center]]
Default configuration is already optimised without sound and 25-30 fps. Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N.
Keymapping and all other parameters can be modified directly in the user config file available in /usr/games/pcsx/.pcsx/pcsx.cfg
Only buildin_gpu and gpu_unai are working (but really well).
It is possible (not all games) to speed up and increase framerate using the 'fast forward' option.
[[File:2024-06-07-100831 800x480 scrot.png|500px|center]]
Fullscreen mode can be activated with 'F' key by default.
Almost all configuration parameters are available from the GUI.
=== Tested Playstation/Psx/PsOne games===
Driver, MetalSlugX, Ace Combat 3, Spyro the Dragon, Final Fantasy 8, Legend of Mana, Medal of Honor, Metal Gear Solid, Gran Turismo, Tekken 3, V-Rally, Moto Racer 2, ISS Pro Evolution.
[[File:2024-06-07-070020 800x480 scrot.png|500px|center]]
== Configuration ==
Original Bios file can't be provided. The emulator use HLE bios by default which works with some games. For a full working emulation, a real pcsx bios is needed and must be added in '/usr/games/pcsx/bios' directory.
(The correct typo is for example 'scph7502.bin')
== Tips ==
If (for some reason) the GUI is not working, it is possible to directly launch a game from command line:
/usr/games/pcsx/pcsx /game_dir/your_game.zip
Default keymap is visible in /usr/games/pcsx/.pcsx/pcsx.cfg
On N900, to activate boost mode (720MHz or 805MHz):
As root:
echo 1 > /sys/devices/system/cpu/cpufreq/boost
echo 720000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
== TODO ==
* Implement sane default keys for the devices
* Try to implement Maemo 5 -touch- UI
[[Category:Extras]]
17e3631ed50efd9d2493f1621bf3f58d9dbc112c
1685
1682
2024-06-29T20:15:14Z
Arno11
61
wikitext
text/x-wiki
{{Infobox Package
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]
|date_in_repo=2024-05-27
|maemo_leste_repo=https://github.com/maemo-leste-extras/pcsx_rearmed
|category=Games
|packager=[[User:Arno11]]
}}
Pcsx_rearmed is a Playstation 1 emulator running on Maemo-Leste.
It works only on Nokia N900 and Motorola Droid 4 at the moment (thanks to their physical keyboards).
The emulator uses a generic GTK UI: The old maemo 5 touch GUI is not working at the moment.
== Status ==
WARNING: on N900 in the GUI, 'enter menu' is associated to 'backspace' key.
'back' is associated to 'e' key (hardcoded).
[[File:2024-06-07-064926 800x480 scrot.png|500px|center]]
* Playstation games are playable, with sound and input, running at 25-30 fps on N900 with frameskip=1 usually but really depending of the game and if it is a NTSC or PAL version.
[[File:2024-06-07-065751 800x480 scrot.png|500px|center]]
Without frameskip and sound, games run usually at full speed with default CPU frequencies and buildin_gpu. But again, it is really depending of the game: some of them are 'locked' at 24 fps (PAL) or 30 fps (NTSC).
On N900, boost mode (overclock) is recommended if you play with sound. Otherwise it works well with stock frequencies, specially with the buildin_gpu.
[[File:2024-06-07-065424 800x480 scrot.png|500px|center]]
Default configuration is already optimised without sound and 25-30 fps. Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N.
Keymapping and all other parameters can be modified directly in the user config file available in /usr/games/pcsx/.pcsx/pcsx.cfg
Only buildin_gpu and gpu_unai are working (but really well).
It is possible (not all games) to speed up and increase framerate using the 'fast forward' option.
[[File:2024-06-07-100831 800x480 scrot.png|500px|center]]
Fullscreen mode can be activated with 'F' key by default.
Almost all configuration parameters are available from the GUI.
=== Tested Playstation/Psx/PsOne games===
Driver, MetalSlugX, Ace Combat 3, Spyro the Dragon, Final Fantasy 8, Legend of Mana, Medal of Honor, Metal Gear Solid, Gran Turismo, Tekken 3, V-Rally, Moto Racer 2, ISS Pro Evolution.
[[File:2024-06-07-070020 800x480 scrot.png|500px|center]]
== Configuration ==
Original Bios file can't be provided. The emulator use HLE bios by default which works with some games. For a full working emulation, a real pcsx bios is needed and must be added in '/usr/games/pcsx/bios' directory.
(The correct typo is for example 'scph7502.bin')
== Tips ==
If (for some reason) the GUI is not working, it is possible to directly launch a game from command line:
/usr/games/pcsx/pcsx /game_dir/your_game.zip
Default keymap is visible in /usr/games/pcsx/.pcsx/pcsx.cfg
On N900, to activate boost mode (720MHz or 805MHz):
As root:
echo 1 > /sys/devices/system/cpu/cpufreq/boost
echo 720000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
== TODO ==
* Implement sane default keys for the devices
* Try to implement Maemo 5 -touch- UI
[[Category:Extras]]
9a397ff9ca6f6d4121cbf75ceea3a4a5cf434a18
Development/Tasks
0
92
1683
1429
2024-06-26T09:54:19Z
Wizzup
4
/* Applications */
wikitext
text/x-wiki
== Applications ==
This page lists some of the more important open issues for Maemo Leste. We have a complete list here, on github, but it's a bit hard to navigate: https://github.com/maemo-leste/bugtracker/issues
{| class="wikitable"
! Task
! Description
! Task Status
! User(s) working on task
! GH Bug
! URLs
! Notes
|-
| Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. <b>Funding is available for this task</b> || WIP || || https://github.com/maemo-leste/bugtracker/issues/261 || || Parayzd is working on this
|-
| Qt5 of theme and hildon widgets || Significant task || MOSTLY || [[User:freemangordon]] made a start, [[User:Wizzup]] picked up some of the work || || https://github.com/maemo-leste/qtstyleplugins/ + https://github.com/maemo-leste/qt-platform-maemo/tree/qmenu || Mainly usable already!
|-
| libicd-network-ofono should set up ipv4 upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || DONE || || || ||
|-
| Extend ofono droid4 modem support || This is done and should be stable. || DONE || Tony, Pavel, [[User:freemangordon]] and [[User:Wizzup]] are working on this || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 ||
|-
| Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || https://github.com/maemo-leste/bugtracker/issues/256 || https://github.com/maemo-leste/connui-cellular ||
|-
| Test phone calls on the N900 || Figure out cmtspeechdata magic || WORKS || [[User:Wizzup]], [[User:Sicelo]], Pavel || || ||
|-
| Create simple phone UI to test dialing/accepting phone calls using Telepathy || Can use sphone, which works for calls right now, just not using Telepathy. || WORKS || ? || || ||
|-
|"hildonize" surf2 or create a simple "hildonized" gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || WIP || [[User:Parazyd]] || || ||
|-
| Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || WIP || [[User:Wizzup]], tmlind || || || Actually works quite well on the droid4. Let's do the same for Droid4. :)
|-
| osso-abook || We need osso-abook in place for all applications that need contacts (phone ui, sms ui, email ui, more) || DONE || [[User:freemangordon]] || ||https://github.com/maemo-leste/osso-abook || Making good progress
|-
| Port all packages for maemo-leste to debhelper 9 or higher || Requires for us to migrate to a newer Debian (Buster) / Devuan (Beowulf) || DONE || [[User:Parazyd]], [[User:Wizzup]], [[User:meridion]], [[User:Spinal84]] || https://github.com/maemo-leste/bugtracker/issues/234 || ||
|-
| Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || DONE || [[User:ThomasAH]], Spinal84 || https://github.com/maemo-leste/ke-recv/pull/2 ; https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || ke-recv part for slide monitoring is in place, we just need live keyboard-attached monitoring now. https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda). mer-core (sailfish/nemomobile) has keyboard monitoring integrated into mce, so we could also look at (using) that
|-
| Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 ? || *MAYBE* Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || DONE (by staying at clutter 0.8) || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches ||
|-
| Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || DONE || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ ||
|-
| hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || DONE || [[User:minicom]], [[User:Wizzup]], [[User:Parazyd]] || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc.
|-
| Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || DONE || || || ||
|-
| Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || DONE || [[User:freemangordon]] || || ||
|-
| Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || DONE || [[User:Wizzup]], [[User:Sicelo]] || || ||
|-
|}
84246bf20ef5df31f110ba6568841f06eb695c85
1684
1683
2024-06-26T11:24:10Z
Wizzup
4
/* Applications */
wikitext
text/x-wiki
== Applications ==
This page lists some of the more important open issues for Maemo Leste. We have a complete list here, on github, but it's a bit hard to navigate: https://github.com/maemo-leste/bugtracker/issues
{| class="wikitable"
! Task
! Description
! Task Status
! User(s) working on task
! GH Bug
! URLs
! Notes
|-
| Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. <b>Funding is available for this task</b> || WIP || || https://github.com/maemo-leste/bugtracker/issues/261 || || Parayzd is working on this
|-
| Qt5 of theme and hildon widgets || Significant task || MOSTLY || [[User:freemangordon]] made a start, [[User:Wizzup]] picked up some of the work || || https://github.com/maemo-leste/qtstyleplugins/ + https://github.com/maemo-leste/qt-platform-maemo/tree/qmenu || Mainly usable already!
|-
| libicd-network-ofono should set up ipv4 upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || DONE || || || ||
|-
| Extend ofono droid4 modem support || This is done and should be stable. || DONE || Tony, Pavel, [[User:freemangordon]] and [[User:Wizzup]] are working on this || || https://github.com/pavelmachek/ofono/commits/d4-v1.29 ||
|-
| Finish connui-cellular port to ofono || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || https://github.com/maemo-leste/bugtracker/issues/256 || https://github.com/maemo-leste/connui-cellular ||
|-
| Test phone calls on the N900 || Figure out cmtspeechdata magic || WORKS || [[User:Wizzup]], [[User:Sicelo]], Pavel || || ||
|-
| Create simple phone UI to test dialing/accepting phone calls using Telepathy || Can use sphone, which works for calls right now, just not using Telepathy. || WORKS || ? || || ||
|-
|"hildonize" surf2 or create a simple "hildonized" webkit browser || See "Jib" || DONE || [[User:Wizzup]], dsc || || ||
|-
| Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || WIP || [[User:Wizzup]], tmlind || || || Actually works quite well on the droid4. Let's do the same for Droid4. :)
|-
| osso-abook || We need osso-abook in place for all applications that need contacts (phone ui, sms ui, email ui, more) || DONE || [[User:freemangordon]] || ||https://github.com/maemo-leste/osso-abook || Making good progress
|-
| Port all packages for maemo-leste to debhelper 9 or higher || Requires for us to migrate to a newer Debian (Buster) / Devuan (Beowulf) || DONE || [[User:Parazyd]], [[User:Wizzup]], [[User:meridion]], [[User:Spinal84]] || https://github.com/maemo-leste/bugtracker/issues/234 || ||
|-
| Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || DONE || [[User:ThomasAH]], Spinal84 || https://github.com/maemo-leste/ke-recv/pull/2 ; https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || ke-recv part for slide monitoring is in place, we just need live keyboard-attached monitoring now. https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda). mer-core (sailfish/nemomobile) has keyboard monitoring integrated into mce, so we could also look at (using) that
|-
| Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 ? || *MAYBE* Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || DONE (by staying at clutter 0.8) || || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches ||
|-
| Set up leste "extras" repository || A repository with non-core applications, games, etc would be very welcome || DONE || [[User:Wizzup]], [[User:Parazyd]] || || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/ ||
|-
| hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || DONE || [[User:minicom]], [[User:Wizzup]], [[User:Parazyd]] || || || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc.
|-
| Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || DONE || || || ||
|-
| Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || DONE || [[User:freemangordon]] || || ||
|-
| Test phone calls on the droid4 || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || DONE || [[User:Wizzup]], [[User:Sicelo]] || || ||
|-
|}
c09eb71cb234fc134c92e88d7cda07f0bc48ea14
Nokia N900
0
48
1686
1639
2024-07-12T21:05:50Z
Arno11
61
/* Status table */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly (dual boot mode):
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ save it in a subfolder called test.
3. Turn off Nokia N900, issue the following command on PC <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> you will get a message similar to the following:
<code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher
Not a local device
Waiting for USB device... </code>
and the connect Nokia N900 to the PC. you will then get a message like so:
<code>Found USB device: RX-51/RM-680/RM-696 (0x421:0x106) in Cold flashing mode
USB device product string: Nokia USB ROM
USB device serial number string: (not detected)
Detected USB device: (not detected)
Waiting for ASIC ID...
Detected OMAP3430 chip (revision 87)
Device: (not detected)
HW revision: (not detected)
NOLO version: (not detected)
Kernel version: (not detected)
Initfs version: (not detected)
Software release version: (not detected)
Content eMMC version: (not detected)
Root device: (not detected)
USB host mode: (not detected)
R&D mode: (not detected)
Switching to NOLO mode...
Sending OMAP memory boot message...
Waiting for USB device...
Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode
USB device product string: Nokia N900 (Update mode)
USB device serial number string: MUN233033
Detected USB device: RX-51
Initializing NOLO...
Device: RX-51
HW revision: 2204
NOLO version: 1.4.14
Kernel version: 2.6.28-20101501+0m5
Initfs version: (not detected)
Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203
Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND
Root device: flash
USB host mode: disabled
R&D mode: disabled
Load image:
File: test/u-boot-2013.04-2.bin
Image type: kernel
Image size: 212864 bytes
Sending image header...
Sending image...
100% [#################################################################]
Done
</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> you will get an output such as:
<code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher
Not a local device
Waiting for USB device...
Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode
USB device product string: Nokia N900 (Update mode)
USB device serial number string: MUN233033
Detected USB device: RX-51
Initializing NOLO...
Device: RX-51
HW revision: 2204
NOLO version: 1.4.14
Kernel version: 2.6.28-20101501+0m5
Initfs version: (not detected)
Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203
Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND
Root device: flash
USB host mode: disabled
R&D mode: disabled
Booting kernel with default cmdline...
</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. The screen might not be backlit so it will be difficult to read. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. The screen might be very dim and look off. So it might be difficult to see. Boot up the first time will take a long time full 2 min on test. Some text will show and will then go back to black screen but eventually you will see the splash screen and later the icons will show.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
'''Overclocking is now available in -devel using cpufreq boost.'''
It uses 250-500-550-600-720-805-850MHz frequencies
To enable it, edit:
<code>/sys/devices/system/cpu/cpufreq/boost</code>
And replace 0 by 1.
It is possible to customise max/min/available frequencies editing files in:
<code>/sys/devices/system/cpu/cpu0/cpufreq/</code>
'''No other steps are needed and updates/upgrades work with boost mode.'''
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
'''WARNING: some devices can't run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor'''
== Overclocking - Old method for testing purpose ==
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table for example:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, SDXC U3 microSD card is a must. Class10 U1 cards are usually too slow to run Leste on N900 unfortunately, most probably because of their lower build quality.
'''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
('''Note:''' it is recommended to dist-upgrade to -devel to enable more features)
=== Gnome-tracker in $HOME ===
By default trackers are indexing the entire $HOME folder, causing severe slowdown.
To avoid this issue, the solution (until a proper fix) is to add a .nomedia file in /home/user folder:
<pre>touch /home/user/.nomedia</pre>
=== Deactivating apt-worker ===
Run:
<pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre>
=== Removing 250MHz CPU frequency (example) ===
Install cpufrequtils.
Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre>
=== More SWAP / SWAP activation ===
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot)
(Note: eMMC swap is '''highly recommended''' and faster than SD card swap)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
'''Note: like Fremantle, blur effect can cause lags and slowness.''' It is possible to deactivate it through the transitions.ini file:
<pre>[HOME]
radius = 0
radius_more = 0
</pre>
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv (0 - OMAP Textured Video)
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse (or User defined)
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: Auto
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Voice Calls / SIP Calls ===
- Dist-upgrade to -devel (not working without)
Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol)
Voice calls are now working out of the box as well.
If sound is distorted, run:
<code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code>
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.76 / 6.6 LTS (experimental) || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 805MHz (stable), 850MHz is not working with all devices, Turbo mode works.
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer.
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with Sphone or ofono scripts. Works with Conversations in -devel.
|-
| Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone.
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
6e3f4e5eeea66ac055a326c65f59cb254ed08e5b
Development/Porting Packages
0
82
1687
1467
2024-07-14T21:31:21Z
Norayr
36
wikitext
text/x-wiki
= Porting / Creating packages =
If you're looking at creating your own package, or porting software, the first things to do are:
# Check if someone already ported the package (if it in the repository? Is there an issue for it?)
# Check if there already are Debian packaging scripts/files. Debian packages a LOT of software, so it's likely that the software is already in the Maemo repository, or someone at least has build scripts for it.
# (TODO)
= Porting existing Maemo Fremantle packages =
Maemo Fremantle ("Nokia Maemo for the N900") contains a lot of packages that are open source. Most of them should run with very few changes on Maemo Leste, the main changes you will need to make will be:
# Check if someone already ported the package (if it in the repository? Is there an issue for it?)
# Updating of the Debian packaging files/scripts.
# Porting to newer libraries if old libraries are used (OpenSSL 0.9.8 -> OpenSSL 1.1.x, Qt4 -> Qt5, etc)
# Fixing any compile errors/warnings due to more strict compile flags
Source of the packages can be found at one of these places:
* http://maemo.org/packages/
* https://garage.maemo.org/
* http://repository.maemo.org/extras/pool/fremantle/free/source/
* http://repository.maemo.org/extras-devel/pool/fremantle-1.2/free/source/
* http://repository.maemo.org/extras-devel/pool/fremantle-1.3/free/source/
* http://repository.maemo.org/extras-devel/pool/fremantle-1.2/free/source/
* http://repository.maemo.org/extras-testing/pool/fremantle-1.3/free/source/
= Example =
== Getting the source package ==
Let's say we'd like to port a package "msid".
it's here: <pre>http://repository.maemo.org/extras/pool/fremantle/free/source/m/msid/</pre>
get the latest version:
<pre>
wget http://repository.maemo.org/extras/pool/fremantle/free/source/m/msid/msid_0.4.8-2.tar.gz
</pre>
<pre>
tar zxvf msid_0.4.8-2.tar.gz
cd msid-0.4.8
</pre>
== Creating new repo ==
init a git repo:
<pre>
git init
git add *
git commit -a -m "initial commit from fremantle sources"
</pre>
change content of `debian/compat` to `9`.
edit <pre>debian/changelog</pre>.
let's say the last release was:
<pre>
msid (0.4.8-2) unstable; urgency=low
</pre>
now the release should be:
<pre>
msid (0.4.8-2+leste1) unstable; urgency=low
</pre>
record your changes, add your name.
look if <pre>debian/control</pre> dependency versions should be changed.
== installing build dependencies==
<pre>
sudo apt build-dep .
</pre>
== building ==
<pre>
dpkg-buildpackage -b -uc
</pre>
add <pre>gbp.conf</pre> file in <pre>debian</pre> directory with the following content:
<pre>
[DEFAULT]
upstream-tag=%(version)s
</pre>
in <pre>debian/control</pre> file add (if not added)
<pre>
XSBC-Bugtracker: mailto:yourname@yourserver.am
</pre>
== icon ==
and the icon (this is not necessary if you port existing maemo5 package).
it is done [http://wiki.maemo.org/Maemo_packaging#Displaying_an_icon_in_the_Application_Manager_next_to_your_package this] way.
you need to have `sharutils` installed. (media-gfx/optipng in gentoo).
* prepare a `48x48` png file.
* optimize it: <pre>optipng -strip all</pre>
* base64 encode it
<pre>
uuencode -m maeFat.png maeFat.png > maeFat.png.base64
</pre>
* Add the field <pre>XB-Maemo-Icon-26</pre> to your <pre>debian/control</pre> (in Maemo 4 the size of the icons was 26×26 pixels, hence the name of the field, which has not changed in Maemo 5)
* Open the <pre>base64</pre> version of your image and copy from the line under <pre>begin-base64 644 <name of 48×48 image></pre> to the line above the <pre>===</pre>.
* Add this to the XB-Maemo-Icon-26 field
* Add a space in front of every line of the encoded icon. You can do that automatically using sed when you base64 encode the image:
<pre>
uuencode -m <name of 48×48 image> <name of 48×48 image> | sed -e s,^,\ , > <name of 48×48 image>.base64
</pre>
== cli apps ==
if the program that is being ported is a <code>cli</code> application, then <code>cli icon</code> can be used.
[http://lists.maemo.org/pipermail/maemo-community/2010-January/003870.html cli icon announcement]
[http://n900.tannerlab.com/tools/cli.icon.txt old unexistent in archive.org too, txt file]
[http://samoff.com/random/maemo/cli_icon/ icons as images]
this is how the icon looks in <code>ham</code>:
[[File:Maemo-cli_icon_appman_sample_v002.png]]
and this is the <code>48x48</code> size icon:
[[File:Maemo-term_icon_v002_a001_48p.png]]
its <code>base64</code> encoded and shifted for <code>maemo</code> <code>text file</code> is [http://norayr.am/tips/port_maemo_package_to_leste/maemo-term_icon_v002_a001_48p.png.base64 here]
or here:
<pre> begin-base64 644 maemo-term_icon_v002_a001_48p.png
iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAGXRFWHRTb2Z0
d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAACYtJREFUeNrUWkurZUcVXvXY
59zbtyXpICEiaFrJQFDo6CDOHAi2UQdOFBw4CAqCDhU0DuIPEBtCRupIBxk4
MBMHgpIMnChE1OAD2uADEkFpUM9z710vv7Wq6ty6u09f0+nb3Tcb6u7Hqb33
96361qq1al/1vscfp+Ac3fjH6+S9v3owP/iYMfqyMaabz2ax62wwtnPDOPgY
ok8pxpQoKKW9UhRC8IFI+UQ4ds7HFKLW1mujffDexRi9MXiGMQG34uborbEO
515pckopZ7RxuN8RyflgtBrxfKeNGlNMY0ppxItGUnowSm3Rr7ezubfdnCwe
SuMw2EsPPvi9x957+SlrNAXvCCTIWkMKvQP6JEYdorQoG6gkUIpo+SgkStyV
SQb0RwOolACOQdBIlAaQ7XGtT4q2lGhDDCjRGsZYg8Qa71sR75WSPe5Z411o
doPfN1rrDs/q8MaVVt5Z5T1dnM++8sEPXHnqXzduxOuv/iVutlsGKeCxJbyE
jxN2uJc3FfkcJzHviBlG5sq/kUq8D4qvyzWKpQ/fzn94H/Mzub88L0hfJc/w
OPc8Ijh3is8xUhqIMZr+woULscMwRmjCwoDdY+959xcXiwX9/KVfRAyV0gYD
xTBVeY2mjJuvAR3+aMrgjPRQKtVzrRSDwE1Kl1uEuBADKCX34g5VzKLk/ihk
lQBl8CKt3IQA5MMEICttPIY5XDw6glSVspv15tGLRxcu/+rl3/D4q9lsJtjl
1WyTA7TxBKRYfjZEO2IMTufRosxdVcoCPvEIQTaBrYlLjuWFH0Z0Y433LC3Y
occ5a3ybz7EvmjdaD9IfvudG57d6G4E12fmse+d6tT76z38XcC6TwcOdEtvj
EGL7jif/fU3x1yaDmWejNuCpEI4ilZT3AFPAwifgA9gPuGMIFAESfqDUBpw2
inWuVNY+6z4l7NkX1ApWgI/QlvuD/qDZoWMEeRskaODBlmJ4oB9HGoYxycCy
1R9OavYtT92nweIRotnn4ZkvBhqfRvc/oM8MUJIQqC00zeemWL/FutRnq8Jp
uam0BtA1yC5x8xLHS7xa9sREEjsy+ogTg4CiASQGpZVDjBMJcTDEEajEeDSM
DjxCHm/s5s96mn0W0ekF3PZ2eSR1n0qk3+/U5koXaQU9G6q6nwCXcMgWF/CF
QAVfQHGESSsmQHTcUiYi0QfH6K8YfF8iGEASnBjagPGgp4SoTdra7tAhEnFc
ZIdVhxD3h3GI1/afgcV/B/pfsnG4plP8pU7q0s76twTPsbyAL3quwKUJUIBa
4HiBvrLHNd6DFI9MqpbvAWsANifPR2iGUnA6JDiwRAcLz547FwQThihxpE5/
Bol3YSS+G0g/iuuPQLxftUHEb9HRngDvmv0O/EQ2FfyqtTg3oBGrcyvgNzje
8nMYKT8XGANvmGhzGG68DzIKc4fJNAmDHC+Gr1kKf1Q0/0Kk7qOJDl/y+vAn
mDyfwOj5E1av4MVJG/CnAW8tn7XfWL6A7xvwwO134GmycUye8+y6+9FCG7/V
kbW+eRJzxcsYlb+q1H0yqQs/852+Ehm2b2QzNpavkmkJTMHv9F4IrCqBBvzY
gOe5aS94IYDOMw7R0oH/HqRkPhJJfyiS+yl+/j3i2FXr+meQ+7wN/J5MWlKE
4xFgy/eNbE61fNF7Bc9EBDzA7sDnWRfx3rlTwYu9Met2nNmIvj1m0YeSPXzR
6fRPIHiii3LrDO49pzyNDSecdtij+XUhsdqneb7GwIvmN9wYPPb8nLHMwCyZ
WHCdull0xghIHgPBk0l/V3H8tlHzrwd9dN1ZhmA/Hg/0OyD26xTdj2Eplo1T
rNFW8xm8Bngrx8tCYNGCLwR2Dgvw/RQ8W/6NgBcCmH2ZgJd8RkmESeM3kW+8
orS9GpX9RNTxFRXG57RzP9Tr9Lra6IcxIg8kg/s4XYXXgHqNSivI6QZAqx34
VRvjJ5bvS7gdVc6Dbgt8HgEE1JRvyK2kYP55ONDzOsyv+QN3zazia5KbsIV6
+zn/UPflcKmZiVPJg8i9oF8dv2H/pDqRUXXYKhukxVFi/EQ2bwq8EAB4Sfkl
rc0kJLNRs2zR8Rm7gKs6nDN4KS7cD8xr/kf6b6mJOJK3ECzb078xV6xvBb5G
GgbPDssZprxn5Een2wIvBJgxW6CkxabMEqk4aYBrSk7DecjOWVe0TQu1Po44
kAVxZEFMZ+mYYwKtbJhkBY/mKni2fDoxPd0mAS73mqSspgmZgJYYz+YZdpGG
HVW3sT6tbxE6V8XyN4Fnh71T8DmMah13TpzTYt0QqOBrmGzj/KbG8X2hskab
Ap5lw5rnRGbkephLzjsFn30AD2IHypUThJJ9IRTnOmn5mg4XSxfwiwJ20ZCR
jHKqebZ8BQ/Nx9MmqDdMQAoOPLg+rJRSgXaVEg3T3KZoejVNhat8JrKpSRk7
rMxObPmzAL8jUPKZpgTMs+wey68ay7fpwLLR/qa1fMlr7gr4EwSK5WNOV2VE
hgJ6O3HQ3ew6Ab8rRKrm26SMl18APp0l+ErAFZ2rov3YyGczyWv2WX65J5c/
kVEiIYu3SofvmECxds/1sKQGx/l967DLKfg9hQjLpm9yeV/Ah7sFvh2BPvuv
LJz4Rj7VYZdTy59SRY37qii6S5tNOaPcFgkxCY5KbMl1ydX3hsry+02yKRnl
/y1Ezm4EkqzZMAj2Xl0WWLcFaAt+57CTdJjJD/cDfK0HhryEsdvGMiInnHYP
+Dq79jU1aMBHukebLbPkuoTRVB24AbwsSx7rPYVIXzPKJh1OdA83Wxx4nYNQ
DqGs7zJhtaFyva+KmoCPdI83duKq91iW0nn9vs0qV00hcqsSMNxry7cFzaaA
5HqA1/T71KyiVctPqig3qV/vC/hcD2QJLWsWWvKfOgKbAn5qeV+qqPhmqqiz
deJs8WVd6yyzabU6E7jJ8qUQSfcbfIlCPOuqKiH+gtKu72wby0sJWAqRcwH+
mECCD+yqMLVbpGoKEUmHzxv4UlIalEZhjVosmKT5i2OtA1rLn2kVdbYE+IOS
0uyknEp7HfUYVeQlQ65fRTZ3oxA5w2xUeaNpw18tEf99UFHWf/iLSLH8uQVf
RyBARltrDaaEEPhbbI408jURmh/TeQWf10ZtF9iRu86mAAImSi4WeLklr5ad
X/BCoOsMf/cdZ11HKJ/4HwdiMHyg0/2cYW8nG+X1IDefzxUI8P9ySP2KITj3
4PMnpqT4ozZrP3bWxq7rUlmle0tsVv6xgWkg/Bg7IxPr/2K8Nbb/CTAAF12f
5l7y6xMAAAAASUVORK5CYII=
====</pre>
Also add the field:
<pre>XSBC-Maemo-Display-Name: Photo light meter</pre>
== pushing to maemo-leste-extras ==
go to [https://github.com/maemo-leste-extras/ maemo-leste-extras] and [https://github.com/maemo-leste-extras/bugtracker/issues/new/choose open an issue] in the [https://github.com/maemo-leste-extras/bugtracker extras bugtracker] repo to request a repository.
ping <code>Wizzup</code> on <code>#maemo-leste@irc.libera.chat</code> to open you repo[s]. then try to be attentive to emails, because you may get github invite which you need to accept, otherwise it’ll time out(not sure when).
push your code to the newly opened repo in <code>maemo/beowulf</code> branch.
<code>beowulf</code> is the codename of the <code>devuan</code> release on which <code>maemo</code> is based.
<pre>$ git remote -v
origin git@github.com:norayr/msid.git (fetch)
origin git@github.com:norayr/msid.git (push)
$ git remote add maemo git@github.com:maemo-leste-extras/msid
$ git remote -v
maemo git@github.com:maemo-leste-extras/msid (fetch)
maemo git@github.com:maemo-leste-extras/msid (push)
origin git@github.com:norayr/msid.git (fetch)
origin git@github.com:norayr/msid.git (push)
$ git push maemo main
Enumerating objects: 176, done.
Counting objects: 100% (176/176), done.
Delta compression using up to 4 threads
Compressing objects: 100% (86/86), done.
Writing objects: 100% (176/176), 578.92 KiB | 4.71 MiB/s, done.
Total 176 (delta 105), reused 141 (delta 85)
remote: Resolving deltas: 100% (105/105), done.
To github.com:maemo-leste-extras/msid
* [new branch] main -> main
$ git checkout -b maemo/beowulf
Switched to a new branch 'maemo/beowulf'
$ git push maemo maemo/beowulf
Total 0 (delta 0), reused 0 (delta 0)
remote:
remote: Create a pull request for 'maemo/beowulf' on GitHub by visiting:
remote: https://github.com/maemo-leste-extras/msid/pull/new/maemo/beowulf
remote:
To github.com:maemo-leste-extras/msid
* [new branch] maemo/beowulf -> maemo/beowulf
$
</pre>
the repo needs to be tagged.
<pre>git tag 0.0.1</pre>
and then the tag has to be pushed:
<pre>git push maemo 0.0.1</pre>
in case you did some changes but don’t want to bump a tag/changelog version, you need to delete the tag locally:
<pre>git tag -d 0.0.1
git push maemo :refs/tags/0.0.1</pre>
== phoenix ==
login https://phoenix.maemo.org/
the build sequence is:
* source
* binaries
* repos
find your project. let’s say https://phoenix.maemo.org/job/msid-source/
it has to have ‘build with parameters’ button on the left.
if everything is right it’ll trigger build of binaries https://phoenix.maemo.org/job/msid-binaries/
that link, for instance, will contain <code>arm64</code> build console output: https://phoenix.maemo.org/job/msid-binaries/architecture=arm64,label=arm64/1/console
== wiki ==
add a wiki page about the package [https://leste.maemo.org/Category:Extras here].
links:
https://leste.maemo.org/Development https://leste.maemo.org/Development/Porting_Packages https://leste.maemo.org/Development/Building_Packages https://leste.maemo.org/Development/Modified_Software
If you import a package, please try to preserve history if possible (converting from svn -> git is not too hard)
= Forking Debian/Devuan packages =
(TODO - Describe what branches need to be set up, Jenkins integration, etc)
= Preparing package for the repositories =
See https://leste.maemo.org/Development/Building_Packages
0e0b765cc05571078bd635c3ed37b0739d6e84ef
1688
1687
2024-07-14T21:31:59Z
Norayr
36
wikitext
text/x-wiki
= Porting / Creating packages =
If you're looking at creating your own package, or porting software, the first things to do are:
# Check if someone already ported the package (if it in the repository? Is there an issue for it?)
# Check if there already are Debian packaging scripts/files. Debian packages a LOT of software, so it's likely that the software is already in the Maemo repository, or someone at least has build scripts for it.
# (TODO)
= Porting existing Maemo Fremantle packages =
Maemo Fremantle ("Nokia Maemo for the N900") contains a lot of packages that are open source. Most of them should run with very few changes on Maemo Leste, the main changes you will need to make will be:
# Check if someone already ported the package (if it in the repository? Is there an issue for it?)
# Updating of the Debian packaging files/scripts.
# Porting to newer libraries if old libraries are used (OpenSSL 0.9.8 -> OpenSSL 1.1.x, Qt4 -> Qt5, etc)
# Fixing any compile errors/warnings due to more strict compile flags
Source of the packages can be found at one of these places:
* http://maemo.org/packages/
* https://garage.maemo.org/
* http://repository.maemo.org/extras/pool/fremantle/free/source/
* http://repository.maemo.org/extras-devel/pool/fremantle-1.2/free/source/
* http://repository.maemo.org/extras-devel/pool/fremantle-1.3/free/source/
* http://repository.maemo.org/extras-devel/pool/fremantle-1.2/free/source/
* http://repository.maemo.org/extras-testing/pool/fremantle-1.3/free/source/
= Example =
== Getting the source package ==
Let's say we'd like to port a package "msid".
it's here: <pre>http://repository.maemo.org/extras/pool/fremantle/free/source/m/msid/</pre>
get the latest version:
<pre>
wget http://repository.maemo.org/extras/pool/fremantle/free/source/m/msid/msid_0.4.8-2.tar.gz
</pre>
<pre>
tar zxvf msid_0.4.8-2.tar.gz
cd msid-0.4.8
</pre>
== Creating new repo ==
init a git repo:
<pre>
git init
git add *
git commit -a -m "initial commit from fremantle sources"
</pre>
change content of `debian/compat` to `9`.
edit <pre>debian/changelog</pre>.
let's say the last release was:
<pre>
msid (0.4.8-2) unstable; urgency=low
</pre>
now the release should be:
<pre>
msid (0.4.8-2+leste1) unstable; urgency=low
</pre>
record your changes, add your name.
look if <pre>debian/control</pre> dependency versions should be changed.
== installing build dependencies==
<pre>
sudo apt build-dep .
</pre>
== building ==
<pre>
dpkg-buildpackage -b -uc
</pre>
add <pre>gbp.conf</pre> file in <pre>debian</pre> directory with the following content:
<pre>
[DEFAULT]
upstream-tag=%(version)s
</pre>
in <pre>debian/control</pre> file add (if not added)
<pre>
XSBC-Bugtracker: mailto:yourname@yourserver.am
</pre>
== icon ==
and the icon (this is not necessary if you port existing maemo5 package).
it is done [http://wiki.maemo.org/Maemo_packaging#Displaying_an_icon_in_the_Application_Manager_next_to_your_package this] way.
you need to have `optipng` installed. (media-gfx/optipng in gentoo).
* prepare a `48x48` png file.
* optimize it: <pre>optipng -strip all</pre>
* base64 encode it
<pre>
uuencode -m maeFat.png maeFat.png > maeFat.png.base64
</pre>
* Add the field <pre>XB-Maemo-Icon-26</pre> to your <pre>debian/control</pre> (in Maemo 4 the size of the icons was 26×26 pixels, hence the name of the field, which has not changed in Maemo 5)
* Open the <pre>base64</pre> version of your image and copy from the line under <pre>begin-base64 644 <name of 48×48 image></pre> to the line above the <pre>===</pre>.
* Add this to the XB-Maemo-Icon-26 field
* Add a space in front of every line of the encoded icon. You can do that automatically using sed when you base64 encode the image:
<pre>
uuencode -m <name of 48×48 image> <name of 48×48 image> | sed -e s,^,\ , > <name of 48×48 image>.base64
</pre>
== cli apps ==
if the program that is being ported is a <code>cli</code> application, then <code>cli icon</code> can be used.
[http://lists.maemo.org/pipermail/maemo-community/2010-January/003870.html cli icon announcement]
[http://n900.tannerlab.com/tools/cli.icon.txt old unexistent in archive.org too, txt file]
[http://samoff.com/random/maemo/cli_icon/ icons as images]
this is how the icon looks in <code>ham</code>:
[[File:Maemo-cli_icon_appman_sample_v002.png]]
and this is the <code>48x48</code> size icon:
[[File:Maemo-term_icon_v002_a001_48p.png]]
its <code>base64</code> encoded and shifted for <code>maemo</code> <code>text file</code> is [http://norayr.am/tips/port_maemo_package_to_leste/maemo-term_icon_v002_a001_48p.png.base64 here]
or here:
<pre> begin-base64 644 maemo-term_icon_v002_a001_48p.png
iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAGXRFWHRTb2Z0
d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAACYtJREFUeNrUWkurZUcVXvXY
59zbtyXpICEiaFrJQFDo6CDOHAi2UQdOFBw4CAqCDhU0DuIPEBtCRupIBxk4
MBMHgpIMnChE1OAD2uADEkFpUM9z710vv7Wq6ty6u09f0+nb3Tcb6u7Hqb33
96361qq1al/1vscfp+Ac3fjH6+S9v3owP/iYMfqyMaabz2ax62wwtnPDOPgY
ok8pxpQoKKW9UhRC8IFI+UQ4ds7HFKLW1mujffDexRi9MXiGMQG34uborbEO
515pckopZ7RxuN8RyflgtBrxfKeNGlNMY0ppxItGUnowSm3Rr7ezubfdnCwe
SuMw2EsPPvi9x957+SlrNAXvCCTIWkMKvQP6JEYdorQoG6gkUIpo+SgkStyV
SQb0RwOolACOQdBIlAaQ7XGtT4q2lGhDDCjRGsZYg8Qa71sR75WSPe5Z411o
doPfN1rrDs/q8MaVVt5Z5T1dnM++8sEPXHnqXzduxOuv/iVutlsGKeCxJbyE
jxN2uJc3FfkcJzHviBlG5sq/kUq8D4qvyzWKpQ/fzn94H/Mzub88L0hfJc/w
OPc8Ijh3is8xUhqIMZr+woULscMwRmjCwoDdY+959xcXiwX9/KVfRAyV0gYD
xTBVeY2mjJuvAR3+aMrgjPRQKtVzrRSDwE1Kl1uEuBADKCX34g5VzKLk/ihk
lQBl8CKt3IQA5MMEICttPIY5XDw6glSVspv15tGLRxcu/+rl3/D4q9lsJtjl
1WyTA7TxBKRYfjZEO2IMTufRosxdVcoCPvEIQTaBrYlLjuWFH0Z0Y433LC3Y
occ5a3ybz7EvmjdaD9IfvudG57d6G4E12fmse+d6tT76z38XcC6TwcOdEtvj
EGL7jif/fU3x1yaDmWejNuCpEI4ilZT3AFPAwifgA9gPuGMIFAESfqDUBpw2
inWuVNY+6z4l7NkX1ApWgI/QlvuD/qDZoWMEeRskaODBlmJ4oB9HGoYxycCy
1R9OavYtT92nweIRotnn4ZkvBhqfRvc/oM8MUJIQqC00zeemWL/FutRnq8Jp
uam0BtA1yC5x8xLHS7xa9sREEjsy+ogTg4CiASQGpZVDjBMJcTDEEajEeDSM
DjxCHm/s5s96mn0W0ekF3PZ2eSR1n0qk3+/U5koXaQU9G6q6nwCXcMgWF/CF
QAVfQHGESSsmQHTcUiYi0QfH6K8YfF8iGEASnBjagPGgp4SoTdra7tAhEnFc
ZIdVhxD3h3GI1/afgcV/B/pfsnG4plP8pU7q0s76twTPsbyAL3quwKUJUIBa
4HiBvrLHNd6DFI9MqpbvAWsANifPR2iGUnA6JDiwRAcLz547FwQThihxpE5/
Bol3YSS+G0g/iuuPQLxftUHEb9HRngDvmv0O/EQ2FfyqtTg3oBGrcyvgNzje
8nMYKT8XGANvmGhzGG68DzIKc4fJNAmDHC+Gr1kKf1Q0/0Kk7qOJDl/y+vAn
mDyfwOj5E1av4MVJG/CnAW8tn7XfWL6A7xvwwO134GmycUye8+y6+9FCG7/V
kbW+eRJzxcsYlb+q1H0yqQs/852+Ehm2b2QzNpavkmkJTMHv9F4IrCqBBvzY
gOe5aS94IYDOMw7R0oH/HqRkPhJJfyiS+yl+/j3i2FXr+meQ+7wN/J5MWlKE
4xFgy/eNbE61fNF7Bc9EBDzA7sDnWRfx3rlTwYu9Met2nNmIvj1m0YeSPXzR
6fRPIHiii3LrDO49pzyNDSecdtij+XUhsdqneb7GwIvmN9wYPPb8nLHMwCyZ
WHCdull0xghIHgPBk0l/V3H8tlHzrwd9dN1ZhmA/Hg/0OyD26xTdj2Eplo1T
rNFW8xm8Bngrx8tCYNGCLwR2Dgvw/RQ8W/6NgBcCmH2ZgJd8RkmESeM3kW+8
orS9GpX9RNTxFRXG57RzP9Tr9Lra6IcxIg8kg/s4XYXXgHqNSivI6QZAqx34
VRvjJ5bvS7gdVc6Dbgt8HgEE1JRvyK2kYP55ONDzOsyv+QN3zazia5KbsIV6
+zn/UPflcKmZiVPJg8i9oF8dv2H/pDqRUXXYKhukxVFi/EQ2bwq8EAB4Sfkl
rc0kJLNRs2zR8Rm7gKs6nDN4KS7cD8xr/kf6b6mJOJK3ECzb078xV6xvBb5G
GgbPDssZprxn5Een2wIvBJgxW6CkxabMEqk4aYBrSk7DecjOWVe0TQu1Po44
kAVxZEFMZ+mYYwKtbJhkBY/mKni2fDoxPd0mAS73mqSspgmZgJYYz+YZdpGG
HVW3sT6tbxE6V8XyN4Fnh71T8DmMah13TpzTYt0QqOBrmGzj/KbG8X2hskab
Ap5lw5rnRGbkephLzjsFn30AD2IHypUThJJ9IRTnOmn5mg4XSxfwiwJ20ZCR
jHKqebZ8BQ/Nx9MmqDdMQAoOPLg+rJRSgXaVEg3T3KZoejVNhat8JrKpSRk7
rMxObPmzAL8jUPKZpgTMs+wey68ay7fpwLLR/qa1fMlr7gr4EwSK5WNOV2VE
hgJ6O3HQ3ew6Ab8rRKrm26SMl18APp0l+ErAFZ2rov3YyGczyWv2WX65J5c/
kVEiIYu3SofvmECxds/1sKQGx/l967DLKfg9hQjLpm9yeV/Ah7sFvh2BPvuv
LJz4Rj7VYZdTy59SRY37qii6S5tNOaPcFgkxCY5KbMl1ydX3hsry+02yKRnl
/y1Ezm4EkqzZMAj2Xl0WWLcFaAt+57CTdJjJD/cDfK0HhryEsdvGMiInnHYP
+Dq79jU1aMBHukebLbPkuoTRVB24AbwsSx7rPYVIXzPKJh1OdA83Wxx4nYNQ
DqGs7zJhtaFyva+KmoCPdI83duKq91iW0nn9vs0qV00hcqsSMNxry7cFzaaA
5HqA1/T71KyiVctPqig3qV/vC/hcD2QJLWsWWvKfOgKbAn5qeV+qqPhmqqiz
deJs8WVd6yyzabU6E7jJ8qUQSfcbfIlCPOuqKiH+gtKu72wby0sJWAqRcwH+
mECCD+yqMLVbpGoKEUmHzxv4UlIalEZhjVosmKT5i2OtA1rLn2kVdbYE+IOS
0uyknEp7HfUYVeQlQ65fRTZ3oxA5w2xUeaNpw18tEf99UFHWf/iLSLH8uQVf
RyBARltrDaaEEPhbbI408jURmh/TeQWf10ZtF9iRu86mAAImSi4WeLklr5ad
X/BCoOsMf/cdZ11HKJ/4HwdiMHyg0/2cYW8nG+X1IDefzxUI8P9ySP2KITj3
4PMnpqT4ozZrP3bWxq7rUlmle0tsVv6xgWkg/Bg7IxPr/2K8Nbb/CTAAF12f
5l7y6xMAAAAASUVORK5CYII=
====</pre>
Also add the field:
<pre>XSBC-Maemo-Display-Name: Photo light meter</pre>
== pushing to maemo-leste-extras ==
go to [https://github.com/maemo-leste-extras/ maemo-leste-extras] and [https://github.com/maemo-leste-extras/bugtracker/issues/new/choose open an issue] in the [https://github.com/maemo-leste-extras/bugtracker extras bugtracker] repo to request a repository.
ping <code>Wizzup</code> on <code>#maemo-leste@irc.libera.chat</code> to open you repo[s]. then try to be attentive to emails, because you may get github invite which you need to accept, otherwise it’ll time out(not sure when).
push your code to the newly opened repo in <code>maemo/beowulf</code> branch.
<code>beowulf</code> is the codename of the <code>devuan</code> release on which <code>maemo</code> is based.
<pre>$ git remote -v
origin git@github.com:norayr/msid.git (fetch)
origin git@github.com:norayr/msid.git (push)
$ git remote add maemo git@github.com:maemo-leste-extras/msid
$ git remote -v
maemo git@github.com:maemo-leste-extras/msid (fetch)
maemo git@github.com:maemo-leste-extras/msid (push)
origin git@github.com:norayr/msid.git (fetch)
origin git@github.com:norayr/msid.git (push)
$ git push maemo main
Enumerating objects: 176, done.
Counting objects: 100% (176/176), done.
Delta compression using up to 4 threads
Compressing objects: 100% (86/86), done.
Writing objects: 100% (176/176), 578.92 KiB | 4.71 MiB/s, done.
Total 176 (delta 105), reused 141 (delta 85)
remote: Resolving deltas: 100% (105/105), done.
To github.com:maemo-leste-extras/msid
* [new branch] main -> main
$ git checkout -b maemo/beowulf
Switched to a new branch 'maemo/beowulf'
$ git push maemo maemo/beowulf
Total 0 (delta 0), reused 0 (delta 0)
remote:
remote: Create a pull request for 'maemo/beowulf' on GitHub by visiting:
remote: https://github.com/maemo-leste-extras/msid/pull/new/maemo/beowulf
remote:
To github.com:maemo-leste-extras/msid
* [new branch] maemo/beowulf -> maemo/beowulf
$
</pre>
the repo needs to be tagged.
<pre>git tag 0.0.1</pre>
and then the tag has to be pushed:
<pre>git push maemo 0.0.1</pre>
in case you did some changes but don’t want to bump a tag/changelog version, you need to delete the tag locally:
<pre>git tag -d 0.0.1
git push maemo :refs/tags/0.0.1</pre>
== phoenix ==
login https://phoenix.maemo.org/
the build sequence is:
* source
* binaries
* repos
find your project. let’s say https://phoenix.maemo.org/job/msid-source/
it has to have ‘build with parameters’ button on the left.
if everything is right it’ll trigger build of binaries https://phoenix.maemo.org/job/msid-binaries/
that link, for instance, will contain <code>arm64</code> build console output: https://phoenix.maemo.org/job/msid-binaries/architecture=arm64,label=arm64/1/console
== wiki ==
add a wiki page about the package [https://leste.maemo.org/Category:Extras here].
links:
https://leste.maemo.org/Development https://leste.maemo.org/Development/Porting_Packages https://leste.maemo.org/Development/Building_Packages https://leste.maemo.org/Development/Modified_Software
If you import a package, please try to preserve history if possible (converting from svn -> git is not too hard)
= Forking Debian/Devuan packages =
(TODO - Describe what branches need to be set up, Jenkins integration, etc)
= Preparing package for the repositories =
See https://leste.maemo.org/Development/Building_Packages
b0c974ebb0aad08968445dc40841c529d839eb03
Extras/drnoksnes
0
238
1689
2024-07-15T11:20:45Z
Arno11
61
Created page with "{{Infobox Package |status=Working |devices=[[Nokia_N900]],[[Motorola_Droid_4]] |date_in_repo=2024-07-14 |maemo_leste_repo=https://github.com/maemo-leste-extras/drnoksnes |cate..."
wikitext
text/x-wiki
{{Infobox Package
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]
|date_in_repo=2024-07-14
|maemo_leste_repo=https://github.com/maemo-leste-extras/drnoksnes
|category=Games
|packager=[[User:Arno11]]
}}
DrNokSnes is a Super Nintendo / SNES emulator running on Maemo-Leste.
It works only on armhf architecture devices at the moment like Nokia N900 and Motorola Droid.
The emulator uses the original maemo 5 GUI: This version of DrnokSnes is a clone of the old maemo one.
== Status ==
* SNES games are playable, with sound and input, running at 50-60 fps on N900.
Default configuration is already optimised. Like other emulators it is recommended to disable hildon compositing while playing, using Ctl+Shift+N.
Keymapping and all other parameters can be modified directly from the GUI.
=== Tested Super Nintendo/ SNES games ===
Donkey Kong Country 1 & 2, FF VI , ISS, Killer Instinct, Zelda a Link to the Past, John Madden Football, Mickey Magical Quest, Secret of Mana, Street Fighter II Turbo, Super Mario Allstars, Super Mario World, Super Mario Kart, Mega Man X, NHLPA Hockey 93, Pinball Fantasy, Puzzle Bubble, R-Type 3, Samurai Showdown, Super Probotector, Super Tennis, Workd Heroes.
== Tips ==
If (for some reason) the GUI is not working, it is possible to directly launch a game from command line:
/usr/bin/drnoksnes -c /usr/games/drnoksnes.conf /game_path
Default keymap is visible in /usr/games/drnoksnes.conf
On N900, it could be useful to activate boost mode (720MHz or 805MHz).
As root:
echo 1 > /sys/devices/system/cpu/cpufreq/boost
echo 720000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
== TODO ==
* Try to improve sound in some games
[[Category:Extras]]
dc78a06a744dae98c1fd4eee932dcf1173556898
1691
1689
2024-07-15T11:27:33Z
Arno11
61
/* Status */
wikitext
text/x-wiki
{{Infobox Package
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]
|date_in_repo=2024-07-14
|maemo_leste_repo=https://github.com/maemo-leste-extras/drnoksnes
|category=Games
|packager=[[User:Arno11]]
}}
DrNokSnes is a Super Nintendo / SNES emulator running on Maemo-Leste.
It works only on armhf architecture devices at the moment like Nokia N900 and Motorola Droid.
The emulator uses the original maemo 5 GUI: This version of DrnokSnes is a clone of the old maemo one.
== Status ==
[[File:2024-07-15-124249 800x480 scrot.png]]
* SNES games are playable, with sound and input, running at 50-60 fps on N900.
Default configuration is already optimised. Like other emulators it is recommended to disable hildon compositing while playing, using Ctl+Shift+N.
Keymapping and all other parameters can be modified directly from the GUI.
=== Tested Super Nintendo/ SNES games ===
Donkey Kong Country 1 & 2, FF VI , ISS, Killer Instinct, Zelda a Link to the Past, John Madden Football, Mickey Magical Quest, Secret of Mana, Street Fighter II Turbo, Super Mario Allstars, Super Mario World, Super Mario Kart, Mega Man X, NHLPA Hockey 93, Pinball Fantasy, Puzzle Bubble, R-Type 3, Samurai Showdown, Super Probotector, Super Tennis, Workd Heroes.
== Tips ==
If (for some reason) the GUI is not working, it is possible to directly launch a game from command line:
/usr/bin/drnoksnes -c /usr/games/drnoksnes.conf /game_path
Default keymap is visible in /usr/games/drnoksnes.conf
On N900, it could be useful to activate boost mode (720MHz or 805MHz).
As root:
echo 1 > /sys/devices/system/cpu/cpufreq/boost
echo 720000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
== TODO ==
* Try to improve sound in some games
[[Category:Extras]]
1e63899b85b231434d3ca926f135f378c5a104e0
1693
1691
2024-07-15T11:30:01Z
Arno11
61
/* Status */
wikitext
text/x-wiki
{{Infobox Package
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]
|date_in_repo=2024-07-14
|maemo_leste_repo=https://github.com/maemo-leste-extras/drnoksnes
|category=Games
|packager=[[User:Arno11]]
}}
DrNokSnes is a Super Nintendo / SNES emulator running on Maemo-Leste.
It works only on armhf architecture devices at the moment like Nokia N900 and Motorola Droid.
The emulator uses the original maemo 5 GUI: This version of DrnokSnes is a clone of the old maemo one.
== Status ==
[[File:2024-07-15-124249 800x480 scrot.png]]
* SNES games are playable, with sound and input, running at 50-60 fps on N900.
Default configuration is already optimised. Like other emulators it is recommended to disable hildon compositing while playing, using Ctl+Shift+N.
Keymapping and all other parameters can be modified directly from the GUI.
[[File:2024-06-07-223207 800x480 scrot.png]]
=== Tested Super Nintendo/ SNES games ===
Donkey Kong Country 1 & 2, FF VI , ISS, Killer Instinct, Zelda a Link to the Past, John Madden Football, Mickey Magical Quest, Secret of Mana, Street Fighter II Turbo, Super Mario Allstars, Super Mario World, Super Mario Kart, Mega Man X, NHLPA Hockey 93, Pinball Fantasy, Puzzle Bubble, R-Type 3, Samurai Showdown, Super Probotector, Super Tennis, Workd Heroes.
== Tips ==
If (for some reason) the GUI is not working, it is possible to directly launch a game from command line:
/usr/bin/drnoksnes -c /usr/games/drnoksnes.conf /game_path
Default keymap is visible in /usr/games/drnoksnes.conf
On N900, it could be useful to activate boost mode (720MHz or 805MHz).
As root:
echo 1 > /sys/devices/system/cpu/cpufreq/boost
echo 720000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
== TODO ==
* Try to improve sound in some games
[[Category:Extras]]
09e187bda151f7c6b027459852e52a375b852562
1695
1693
2024-07-15T11:31:32Z
Arno11
61
/* Tested Super Nintendo/ SNES games */
wikitext
text/x-wiki
{{Infobox Package
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]
|date_in_repo=2024-07-14
|maemo_leste_repo=https://github.com/maemo-leste-extras/drnoksnes
|category=Games
|packager=[[User:Arno11]]
}}
DrNokSnes is a Super Nintendo / SNES emulator running on Maemo-Leste.
It works only on armhf architecture devices at the moment like Nokia N900 and Motorola Droid.
The emulator uses the original maemo 5 GUI: This version of DrnokSnes is a clone of the old maemo one.
== Status ==
[[File:2024-07-15-124249 800x480 scrot.png]]
* SNES games are playable, with sound and input, running at 50-60 fps on N900.
Default configuration is already optimised. Like other emulators it is recommended to disable hildon compositing while playing, using Ctl+Shift+N.
Keymapping and all other parameters can be modified directly from the GUI.
[[File:2024-06-07-223207 800x480 scrot.png]]
=== Tested Super Nintendo/ SNES games ===
Donkey Kong Country 1 & 2, FF VI , ISS, Killer Instinct, Zelda a Link to the Past, John Madden Football, Mickey Magical Quest, Secret of Mana, Street Fighter II Turbo, Super Mario Allstars, Super Mario World, Super Mario Kart, Mega Man X, NHLPA Hockey 93, Pinball Fantasy, Puzzle Bubble, R-Type 3, Samurai Showdown, Super Probotector, Super Tennis, Workd Heroes.
[[File:2024-06-07-223735 800x480 scrot.png]]
== Tips ==
If (for some reason) the GUI is not working, it is possible to directly launch a game from command line:
/usr/bin/drnoksnes -c /usr/games/drnoksnes.conf /game_path
Default keymap is visible in /usr/games/drnoksnes.conf
On N900, it could be useful to activate boost mode (720MHz or 805MHz).
As root:
echo 1 > /sys/devices/system/cpu/cpufreq/boost
echo 720000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
== TODO ==
* Try to improve sound in some games
[[Category:Extras]]
b2d34ceadd677d3276b432a6ef0d96c670301f54
File:2024-07-15-124249 800x480 scrot.png
6
239
1690
2024-07-15T11:26:50Z
Arno11
61
wikitext
text/x-wiki
Drnoksnes GUI
5380fa2bd0a58f0b47be73eba658c0dfc667b842
File:2024-06-07-223207 800x480 scrot.png
6
240
1692
2024-07-15T11:29:16Z
Arno11
61
wikitext
text/x-wiki
Mario
8e7d820ad9d3323edb541a72da4912148cb9c0c2
File:2024-06-07-223735 800x480 scrot.png
6
241
1694
2024-07-15T11:30:59Z
Arno11
61
wikitext
text/x-wiki
Kong
8b5ba650878f448abc739972e12b805971c1f3fb
File:2024-06-07-224020 800x480 scrot.png
6
242
1696
2024-07-15T11:32:44Z
Arno11
61
wikitext
text/x-wiki
Streetfighter
cbb8863789bd9b3bb7d8dc2dfdcec197d54e9f02
Extras/drnoksnes
0
238
1697
1695
2024-07-15T11:33:14Z
Arno11
61
/* Tips */
wikitext
text/x-wiki
{{Infobox Package
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]
|date_in_repo=2024-07-14
|maemo_leste_repo=https://github.com/maemo-leste-extras/drnoksnes
|category=Games
|packager=[[User:Arno11]]
}}
DrNokSnes is a Super Nintendo / SNES emulator running on Maemo-Leste.
It works only on armhf architecture devices at the moment like Nokia N900 and Motorola Droid.
The emulator uses the original maemo 5 GUI: This version of DrnokSnes is a clone of the old maemo one.
== Status ==
[[File:2024-07-15-124249 800x480 scrot.png]]
* SNES games are playable, with sound and input, running at 50-60 fps on N900.
Default configuration is already optimised. Like other emulators it is recommended to disable hildon compositing while playing, using Ctl+Shift+N.
Keymapping and all other parameters can be modified directly from the GUI.
[[File:2024-06-07-223207 800x480 scrot.png]]
=== Tested Super Nintendo/ SNES games ===
Donkey Kong Country 1 & 2, FF VI , ISS, Killer Instinct, Zelda a Link to the Past, John Madden Football, Mickey Magical Quest, Secret of Mana, Street Fighter II Turbo, Super Mario Allstars, Super Mario World, Super Mario Kart, Mega Man X, NHLPA Hockey 93, Pinball Fantasy, Puzzle Bubble, R-Type 3, Samurai Showdown, Super Probotector, Super Tennis, Workd Heroes.
[[File:2024-06-07-223735 800x480 scrot.png]]
== Tips ==
If (for some reason) the GUI is not working, it is possible to directly launch a game from command line:
/usr/bin/drnoksnes -c /usr/games/drnoksnes.conf /game_path
Default keymap is visible in /usr/games/drnoksnes.conf
On N900, it could be useful to activate boost mode (720MHz or 805MHz).
As root:
echo 1 > /sys/devices/system/cpu/cpufreq/boost
echo 720000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
[[File:2024-06-07-224020 800x480 scrot.png]]
== TODO ==
* Try to improve sound in some games
[[Category:Extras]]
d1fccb1105a81ad6af21ffd6332eda4c2b52cb59
1698
1697
2024-07-15T14:52:49Z
Arno11
61
wikitext
text/x-wiki
{{Infobox Package
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]
|date_in_repo=2024-07-14
|maemo_leste_repo=https://github.com/maemo-leste-extras/drnoksnes
|category=Games
|packager=[[User:Arno11]]
}}
DrNokSnes is a Super Nintendo / SNES emulator running on Maemo-Leste.
It works only on armhf architecture devices at the moment like Nokia N900 and Motorola Droid.
The emulator uses the original maemo 5 GUI: This version of DrNokSnes is a clone of the old maemo one.
== Status ==
[[File:2024-07-15-124249 800x480 scrot.png]]
* SNES games are playable, with sound and input, running at 50-60 fps on N900.
Default configuration is already optimised. Like other emulators it is recommended to disable hildon compositing while playing, using Ctl+Shift+N.
Keymapping and all other parameters can be modified directly from the GUI.
[[File:2024-06-07-223207 800x480 scrot.png]]
=== Tested Super Nintendo/ SNES games ===
Donkey Kong Country 1 & 2, FF VI , ISS, Killer Instinct, Zelda a Link to the Past, John Madden Football, Mickey Magical Quest, Secret of Mana, Street Fighter II Turbo, Super Mario Allstars, Super Mario World, Super Mario Kart, Mega Man X, NHLPA Hockey 93, Pinball Fantasy, Puzzle Bubble, R-Type 3, Samurai Showdown, Super Probotector, Super Tennis, Workd Heroes.
[[File:2024-06-07-223735 800x480 scrot.png]]
== Tips ==
If (for some reason) the GUI is not working, it is possible to directly launch a game from command line:
/usr/bin/drnoksnes -c /usr/games/drnoksnes.conf /game_path
Default keymap is visible in /usr/games/drnoksnes.conf
On N900, it could be useful to activate boost mode (720MHz or 805MHz).
As root:
echo 1 > /sys/devices/system/cpu/cpufreq/boost
echo 720000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
[[File:2024-06-07-224020 800x480 scrot.png]]
== TODO ==
* Try to improve sound in some games
[[Category:Extras]]
4f2d8df711740a7a1e452576caaa7bb23376ac18
1699
1698
2024-07-15T15:01:57Z
Arno11
61
wikitext
text/x-wiki
{{Infobox Package
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]
|date_in_repo=2024-07-14
|maemo_leste_repo=https://github.com/maemo-leste-extras/drnoksnes
|category=Games
|packager=[[User:Arno11]]
}}
DrNokSnes is a Super Nintendo / SNES emulator running on Maemo-Leste.
It works only with armhf architecture at the moment (Nokia N900 and Motorola Droid 4).
The emulator uses the original maemo 5 GUI: This version of DrNokSnes is a clone of the old maemo one.
== Status ==
[[File:2024-07-15-124249 800x480 scrot.png]]
* SNES games are playable, with sound and input, running at 50-60 fps on N900.
Default configuration is already optimised. Like other emulators it is recommended to disable hildon compositing while playing, using Ctl+Shift+N.
Keymapping and all other parameters can be modified directly from the GUI.
In settings/Zoom, 'Scale to fit' is recommended to be able to switch between fullscreen and window mode easely.
[[File:2024-06-07-223207 800x480 scrot.png]]
=== Tested Super Nintendo/ SNES games ===
Donkey Kong Country 1 & 2, FF VI , ISS, Killer Instinct, Zelda a Link to the Past, John Madden Football, Mickey Magical Quest, Secret of Mana, Street Fighter II Turbo, Super Mario Allstars, Super Mario World, Super Mario Kart, Mega Man X, NHLPA Hockey 93, Pinball Fantasy, Puzzle Bubble, R-Type 3, Samurai Showdown, Super Probotector, Super Tennis, Workd Heroes.
[[File:2024-06-07-223735 800x480 scrot.png]]
== Tips ==
If (for some reason) the GUI is not working, it is possible to directly launch a game from command line:
/usr/bin/drnoksnes -c /usr/games/drnoksnes.conf /game_path
Default keymap is visible in /usr/games/drnoksnes.conf
On N900, it could be useful to activate boost mode (720MHz or 805MHz).
As root:
echo 1 > /sys/devices/system/cpu/cpufreq/boost
echo 720000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
[[File:2024-06-07-224020 800x480 scrot.png]]
== TODO ==
* Try to improve sound in some games
[[Category:Extras]]
eacc2ac5d5fbdc4c1d4450ade1cefeba6d30201f
1700
1699
2024-07-15T15:21:09Z
Arno11
61
/* Status */
wikitext
text/x-wiki
{{Infobox Package
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]
|date_in_repo=2024-07-14
|maemo_leste_repo=https://github.com/maemo-leste-extras/drnoksnes
|category=Games
|packager=[[User:Arno11]]
}}
DrNokSnes is a Super Nintendo / SNES emulator running on Maemo-Leste.
It works only with armhf architecture at the moment (Nokia N900 and Motorola Droid 4).
The emulator uses the original maemo 5 GUI: This version of DrNokSnes is a clone of the old maemo one.
== Status ==
[[File:2024-07-15-124249 800x480 scrot.png]]
* SNES games are playable, with sound and input, running at 50-60 fps on N900.
Default configuration is already optimised. Like other emulators it is recommended to disable hildon compositing while playing, using Ctl+Shift+N.
Keymapping and all other parameters can be modified directly from the GUI.
In settings/Zoom, 'Scale to fit' is recommended to be able to switch between fullscreen and window mode easely.
On N900 target framerate at '50-60 fps' works better than 'auto'.
[[File:2024-06-07-223207 800x480 scrot.png]]
=== Tested Super Nintendo/ SNES games ===
Donkey Kong Country 1 & 2, FF VI , ISS, Killer Instinct, Zelda a Link to the Past, John Madden Football, Mickey Magical Quest, Secret of Mana, Street Fighter II Turbo, Super Mario Allstars, Super Mario World, Super Mario Kart, Mega Man X, NHLPA Hockey 93, Pinball Fantasy, Puzzle Bubble, R-Type 3, Samurai Showdown, Super Probotector, Super Tennis, Workd Heroes.
[[File:2024-06-07-223735 800x480 scrot.png]]
== Tips ==
If (for some reason) the GUI is not working, it is possible to directly launch a game from command line:
/usr/bin/drnoksnes -c /usr/games/drnoksnes.conf /game_path
Default keymap is visible in /usr/games/drnoksnes.conf
On N900, it could be useful to activate boost mode (720MHz or 805MHz).
As root:
echo 1 > /sys/devices/system/cpu/cpufreq/boost
echo 720000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
[[File:2024-06-07-224020 800x480 scrot.png]]
== TODO ==
* Try to improve sound in some games
[[Category:Extras]]
86bf6fe8d8a567de0d687d0129e002ed0e37fe5d
1701
1700
2024-07-15T15:58:59Z
Arno11
61
/* Tested Super Nintendo/ SNES games */
wikitext
text/x-wiki
{{Infobox Package
|status=Working
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]
|date_in_repo=2024-07-14
|maemo_leste_repo=https://github.com/maemo-leste-extras/drnoksnes
|category=Games
|packager=[[User:Arno11]]
}}
DrNokSnes is a Super Nintendo / SNES emulator running on Maemo-Leste.
It works only with armhf architecture at the moment (Nokia N900 and Motorola Droid 4).
The emulator uses the original maemo 5 GUI: This version of DrNokSnes is a clone of the old maemo one.
== Status ==
[[File:2024-07-15-124249 800x480 scrot.png]]
* SNES games are playable, with sound and input, running at 50-60 fps on N900.
Default configuration is already optimised. Like other emulators it is recommended to disable hildon compositing while playing, using Ctl+Shift+N.
Keymapping and all other parameters can be modified directly from the GUI.
In settings/Zoom, 'Scale to fit' is recommended to be able to switch between fullscreen and window mode easely.
On N900 target framerate at '50-60 fps' works better than 'auto'.
[[File:2024-06-07-223207 800x480 scrot.png]]
=== Tested Super Nintendo/ SNES games ===
Donkey Kong Country 1 & 2, FF VI , ISS, Killer Instinct, Zelda a Link to the Past, John Madden Football, Mickey Magical Quest, Secret of Mana, Street Fighter II Turbo, Super Mario Allstars, Super Mario World, Super Mario Kart, Mega Man X, NHLPA Hockey 93, Pinball Fantasy, Puzzle Bubble, R-Type 3, Samurai Showdown, Super Probotector, Super Tennis, World Heroes.
[[File:2024-06-07-223735 800x480 scrot.png]]
== Tips ==
If (for some reason) the GUI is not working, it is possible to directly launch a game from command line:
/usr/bin/drnoksnes -c /usr/games/drnoksnes.conf /game_path
Default keymap is visible in /usr/games/drnoksnes.conf
On N900, it could be useful to activate boost mode (720MHz or 805MHz).
As root:
echo 1 > /sys/devices/system/cpu/cpufreq/boost
echo 720000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
[[File:2024-06-07-224020 800x480 scrot.png]]
== TODO ==
* Try to improve sound in some games
[[Category:Extras]]
ff1b96635227dad0f28a4970c77fb4b89ea91803
Nokia N900
0
48
1702
1686
2024-07-17T10:21:08Z
Arno11
61
/* More SWAP / SWAP activation */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly (dual boot mode):
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ save it in a subfolder called test.
3. Turn off Nokia N900, issue the following command on PC <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> you will get a message similar to the following:
<code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher
Not a local device
Waiting for USB device... </code>
and the connect Nokia N900 to the PC. you will then get a message like so:
<code>Found USB device: RX-51/RM-680/RM-696 (0x421:0x106) in Cold flashing mode
USB device product string: Nokia USB ROM
USB device serial number string: (not detected)
Detected USB device: (not detected)
Waiting for ASIC ID...
Detected OMAP3430 chip (revision 87)
Device: (not detected)
HW revision: (not detected)
NOLO version: (not detected)
Kernel version: (not detected)
Initfs version: (not detected)
Software release version: (not detected)
Content eMMC version: (not detected)
Root device: (not detected)
USB host mode: (not detected)
R&D mode: (not detected)
Switching to NOLO mode...
Sending OMAP memory boot message...
Waiting for USB device...
Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode
USB device product string: Nokia N900 (Update mode)
USB device serial number string: MUN233033
Detected USB device: RX-51
Initializing NOLO...
Device: RX-51
HW revision: 2204
NOLO version: 1.4.14
Kernel version: 2.6.28-20101501+0m5
Initfs version: (not detected)
Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203
Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND
Root device: flash
USB host mode: disabled
R&D mode: disabled
Load image:
File: test/u-boot-2013.04-2.bin
Image type: kernel
Image size: 212864 bytes
Sending image header...
Sending image...
100% [#################################################################]
Done
</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> you will get an output such as:
<code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher
Not a local device
Waiting for USB device...
Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode
USB device product string: Nokia N900 (Update mode)
USB device serial number string: MUN233033
Detected USB device: RX-51
Initializing NOLO...
Device: RX-51
HW revision: 2204
NOLO version: 1.4.14
Kernel version: 2.6.28-20101501+0m5
Initfs version: (not detected)
Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203
Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND
Root device: flash
USB host mode: disabled
R&D mode: disabled
Booting kernel with default cmdline...
</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. The screen might not be backlit so it will be difficult to read. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. The screen might be very dim and look off. So it might be difficult to see. Boot up the first time will take a long time full 2 min on test. Some text will show and will then go back to black screen but eventually you will see the splash screen and later the icons will show.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
'''Overclocking is now available in -devel using cpufreq boost.'''
It uses 250-500-550-600-720-805-850MHz frequencies
To enable it, edit:
<code>/sys/devices/system/cpu/cpufreq/boost</code>
And replace 0 by 1.
It is possible to customise max/min/available frequencies editing files in:
<code>/sys/devices/system/cpu/cpu0/cpufreq/</code>
'''No other steps are needed and updates/upgrades work with boost mode.'''
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
'''WARNING: some devices can't run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor'''
== Overclocking - Old method for testing purpose ==
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table for example:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, SDXC U3 microSD card is a must. Class10 U1 cards are usually too slow to run Leste on N900 unfortunately, most probably because of their lower build quality.
'''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
('''Note:''' it is recommended to dist-upgrade to -devel to enable more features)
=== Gnome-tracker in $HOME ===
By default trackers are indexing the entire $HOME folder, causing severe slowdown.
To avoid this issue, the solution (until a proper fix) is to add a .nomedia file in /home/user folder:
<pre>touch /home/user/.nomedia</pre>
=== Deactivating apt-worker ===
Run:
<pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre>
=== Removing 250MHz CPU frequency (example) ===
Install cpufrequtils.
Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre>
=== More SWAP / SWAP activation ===
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
'''Note: like Fremantle, blur effect can cause lags and slowness.''' It is possible to deactivate it through the transitions.ini file:
<pre>[HOME]
radius = 0
radius_more = 0
</pre>
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv (0 - OMAP Textured Video)
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse (or User defined)
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: Auto
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Voice Calls / SIP Calls ===
- Dist-upgrade to -devel (not working without)
Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol)
Voice calls are now working out of the box as well.
If sound is distorted, run:
<code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code>
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.76 / 6.6 LTS (experimental) || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 805MHz (stable), 850MHz is not working with all devices, Turbo mode works.
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer.
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with Sphone or ofono scripts. Works with Conversations in -devel.
|-
| Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone.
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
08cd2b19b00b2dad70d4b4f8a06ec042650d5436
1703
1702
2024-07-17T10:24:31Z
Arno11
61
/* Status table */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly (dual boot mode):
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ save it in a subfolder called test.
3. Turn off Nokia N900, issue the following command on PC <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> you will get a message similar to the following:
<code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher
Not a local device
Waiting for USB device... </code>
and the connect Nokia N900 to the PC. you will then get a message like so:
<code>Found USB device: RX-51/RM-680/RM-696 (0x421:0x106) in Cold flashing mode
USB device product string: Nokia USB ROM
USB device serial number string: (not detected)
Detected USB device: (not detected)
Waiting for ASIC ID...
Detected OMAP3430 chip (revision 87)
Device: (not detected)
HW revision: (not detected)
NOLO version: (not detected)
Kernel version: (not detected)
Initfs version: (not detected)
Software release version: (not detected)
Content eMMC version: (not detected)
Root device: (not detected)
USB host mode: (not detected)
R&D mode: (not detected)
Switching to NOLO mode...
Sending OMAP memory boot message...
Waiting for USB device...
Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode
USB device product string: Nokia N900 (Update mode)
USB device serial number string: MUN233033
Detected USB device: RX-51
Initializing NOLO...
Device: RX-51
HW revision: 2204
NOLO version: 1.4.14
Kernel version: 2.6.28-20101501+0m5
Initfs version: (not detected)
Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203
Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND
Root device: flash
USB host mode: disabled
R&D mode: disabled
Load image:
File: test/u-boot-2013.04-2.bin
Image type: kernel
Image size: 212864 bytes
Sending image header...
Sending image...
100% [#################################################################]
Done
</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> you will get an output such as:
<code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher
Not a local device
Waiting for USB device...
Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode
USB device product string: Nokia N900 (Update mode)
USB device serial number string: MUN233033
Detected USB device: RX-51
Initializing NOLO...
Device: RX-51
HW revision: 2204
NOLO version: 1.4.14
Kernel version: 2.6.28-20101501+0m5
Initfs version: (not detected)
Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203
Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND
Root device: flash
USB host mode: disabled
R&D mode: disabled
Booting kernel with default cmdline...
</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. The screen might not be backlit so it will be difficult to read. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. The screen might be very dim and look off. So it might be difficult to see. Boot up the first time will take a long time full 2 min on test. Some text will show and will then go back to black screen but eventually you will see the splash screen and later the icons will show.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
'''Overclocking is now available in -devel using cpufreq boost.'''
It uses 250-500-550-600-720-805-850MHz frequencies
To enable it, edit:
<code>/sys/devices/system/cpu/cpufreq/boost</code>
And replace 0 by 1.
It is possible to customise max/min/available frequencies editing files in:
<code>/sys/devices/system/cpu/cpu0/cpufreq/</code>
'''No other steps are needed and updates/upgrades work with boost mode.'''
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
'''WARNING: some devices can't run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor'''
== Overclocking - Old method for testing purpose ==
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table for example:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, SDXC U3 microSD card is a must. Class10 U1 cards are usually too slow to run Leste on N900 unfortunately, most probably because of their lower build quality.
'''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
('''Note:''' it is recommended to dist-upgrade to -devel to enable more features)
=== Gnome-tracker in $HOME ===
By default trackers are indexing the entire $HOME folder, causing severe slowdown.
To avoid this issue, the solution (until a proper fix) is to add a .nomedia file in /home/user folder:
<pre>touch /home/user/.nomedia</pre>
=== Deactivating apt-worker ===
Run:
<pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre>
=== Removing 250MHz CPU frequency (example) ===
Install cpufrequtils.
Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre>
=== More SWAP / SWAP activation ===
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
'''Note: like Fremantle, blur effect can cause lags and slowness.''' It is possible to deactivate it through the transitions.ini file:
<pre>[HOME]
radius = 0
radius_more = 0
</pre>
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv (0 - OMAP Textured Video)
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse (or User defined)
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: Auto
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Voice Calls / SIP Calls ===
- Dist-upgrade to -devel (not working without)
Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol)
Voice calls are now working out of the box as well.
If sound is distorted, run:
<code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code>
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.76 / 6.6 LTS (experimental) || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 805MHz (stable & supported), 850MHz works with some devices (not supported), Turbo mode works.
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection
|-
| Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer.
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with Sphone or ofono scripts. Works with Conversations in -devel.
|-
| Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone.
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>.
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
8b43d566a5e552209acec47bb957d73ec94ed42b
1704
1703
2024-07-17T10:27:41Z
Arno11
61
/* Status table */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly (dual boot mode):
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ save it in a subfolder called test.
3. Turn off Nokia N900, issue the following command on PC <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> you will get a message similar to the following:
<code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher
Not a local device
Waiting for USB device... </code>
and the connect Nokia N900 to the PC. you will then get a message like so:
<code>Found USB device: RX-51/RM-680/RM-696 (0x421:0x106) in Cold flashing mode
USB device product string: Nokia USB ROM
USB device serial number string: (not detected)
Detected USB device: (not detected)
Waiting for ASIC ID...
Detected OMAP3430 chip (revision 87)
Device: (not detected)
HW revision: (not detected)
NOLO version: (not detected)
Kernel version: (not detected)
Initfs version: (not detected)
Software release version: (not detected)
Content eMMC version: (not detected)
Root device: (not detected)
USB host mode: (not detected)
R&D mode: (not detected)
Switching to NOLO mode...
Sending OMAP memory boot message...
Waiting for USB device...
Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode
USB device product string: Nokia N900 (Update mode)
USB device serial number string: MUN233033
Detected USB device: RX-51
Initializing NOLO...
Device: RX-51
HW revision: 2204
NOLO version: 1.4.14
Kernel version: 2.6.28-20101501+0m5
Initfs version: (not detected)
Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203
Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND
Root device: flash
USB host mode: disabled
R&D mode: disabled
Load image:
File: test/u-boot-2013.04-2.bin
Image type: kernel
Image size: 212864 bytes
Sending image header...
Sending image...
100% [#################################################################]
Done
</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> you will get an output such as:
<code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher
Not a local device
Waiting for USB device...
Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode
USB device product string: Nokia N900 (Update mode)
USB device serial number string: MUN233033
Detected USB device: RX-51
Initializing NOLO...
Device: RX-51
HW revision: 2204
NOLO version: 1.4.14
Kernel version: 2.6.28-20101501+0m5
Initfs version: (not detected)
Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203
Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND
Root device: flash
USB host mode: disabled
R&D mode: disabled
Booting kernel with default cmdline...
</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. The screen might not be backlit so it will be difficult to read. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. The screen might be very dim and look off. So it might be difficult to see. Boot up the first time will take a long time full 2 min on test. Some text will show and will then go back to black screen but eventually you will see the splash screen and later the icons will show.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
'''Overclocking is now available in -devel using cpufreq boost.'''
It uses 250-500-550-600-720-805-850MHz frequencies
To enable it, edit:
<code>/sys/devices/system/cpu/cpufreq/boost</code>
And replace 0 by 1.
It is possible to customise max/min/available frequencies editing files in:
<code>/sys/devices/system/cpu/cpu0/cpufreq/</code>
'''No other steps are needed and updates/upgrades work with boost mode.'''
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
'''WARNING: some devices can't run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor'''
== Overclocking - Old method for testing purpose ==
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table for example:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, SDXC U3 microSD card is a must. Class10 U1 cards are usually too slow to run Leste on N900 unfortunately, most probably because of their lower build quality.
'''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
('''Note:''' it is recommended to dist-upgrade to -devel to enable more features)
=== Gnome-tracker in $HOME ===
By default trackers are indexing the entire $HOME folder, causing severe slowdown.
To avoid this issue, the solution (until a proper fix) is to add a .nomedia file in /home/user folder:
<pre>touch /home/user/.nomedia</pre>
=== Deactivating apt-worker ===
Run:
<pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre>
=== Removing 250MHz CPU frequency (example) ===
Install cpufrequtils.
Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre>
=== More SWAP / SWAP activation ===
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
'''Note: like Fremantle, blur effect can cause lags and slowness.''' It is possible to deactivate it through the transitions.ini file:
<pre>[HOME]
radius = 0
radius_more = 0
</pre>
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv (0 - OMAP Textured Video)
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse (or User defined)
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: Auto
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Voice Calls / SIP Calls ===
- Dist-upgrade to -devel (not working without)
Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol)
Voice calls are now working out of the box as well.
If sound is distorted, run:
<code>sudo chrt -f -p 99 $(pgrep pulseaudio)</code>
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.76 / 6.6 LTS (experimental) || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 805MHz (stable & supported), 850MHz works with some devices (not supported), Turbo mode works
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection and FMTX
|-
| Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer.
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with Sphone or ofono scripts. Works with Conversations in -devel.
|-
| Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
5ba9cc806512c6aefd756bbe41b06d05e2409c5a
1705
1704
2024-07-17T10:37:54Z
Arno11
61
/* Voice Calls / SIP Calls */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.1
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly (dual boot mode):
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ save it in a subfolder called test.
3. Turn off Nokia N900, issue the following command on PC <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> you will get a message similar to the following:
<code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher
Not a local device
Waiting for USB device... </code>
and the connect Nokia N900 to the PC. you will then get a message like so:
<code>Found USB device: RX-51/RM-680/RM-696 (0x421:0x106) in Cold flashing mode
USB device product string: Nokia USB ROM
USB device serial number string: (not detected)
Detected USB device: (not detected)
Waiting for ASIC ID...
Detected OMAP3430 chip (revision 87)
Device: (not detected)
HW revision: (not detected)
NOLO version: (not detected)
Kernel version: (not detected)
Initfs version: (not detected)
Software release version: (not detected)
Content eMMC version: (not detected)
Root device: (not detected)
USB host mode: (not detected)
R&D mode: (not detected)
Switching to NOLO mode...
Sending OMAP memory boot message...
Waiting for USB device...
Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode
USB device product string: Nokia N900 (Update mode)
USB device serial number string: MUN233033
Detected USB device: RX-51
Initializing NOLO...
Device: RX-51
HW revision: 2204
NOLO version: 1.4.14
Kernel version: 2.6.28-20101501+0m5
Initfs version: (not detected)
Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203
Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND
Root device: flash
USB host mode: disabled
R&D mode: disabled
Load image:
File: test/u-boot-2013.04-2.bin
Image type: kernel
Image size: 212864 bytes
Sending image header...
Sending image...
100% [#################################################################]
Done
</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> you will get an output such as:
<code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher
Not a local device
Waiting for USB device...
Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode
USB device product string: Nokia N900 (Update mode)
USB device serial number string: MUN233033
Detected USB device: RX-51
Initializing NOLO...
Device: RX-51
HW revision: 2204
NOLO version: 1.4.14
Kernel version: 2.6.28-20101501+0m5
Initfs version: (not detected)
Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203
Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND
Root device: flash
USB host mode: disabled
R&D mode: disabled
Booting kernel with default cmdline...
</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. The screen might not be backlit so it will be difficult to read. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. The screen might be very dim and look off. So it might be difficult to see. Boot up the first time will take a long time full 2 min on test. Some text will show and will then go back to black screen but eventually you will see the splash screen and later the icons will show.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
'''Overclocking is now available in -devel using cpufreq boost.'''
It uses 250-500-550-600-720-805-850MHz frequencies
To enable it, edit:
<code>/sys/devices/system/cpu/cpufreq/boost</code>
And replace 0 by 1.
It is possible to customise max/min/available frequencies editing files in:
<code>/sys/devices/system/cpu/cpu0/cpufreq/</code>
'''No other steps are needed and updates/upgrades work with boost mode.'''
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
'''WARNING: some devices can't run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor'''
== Overclocking - Old method for testing purpose ==
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table for example:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, SDXC U3 microSD card is a must. Class10 U1 cards are usually too slow to run Leste on N900 unfortunately, most probably because of their lower build quality.
'''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
('''Note:''' it is recommended to dist-upgrade to -devel to enable more features)
=== Gnome-tracker in $HOME ===
By default trackers are indexing the entire $HOME folder, causing severe slowdown.
To avoid this issue, the solution (until a proper fix) is to add a .nomedia file in /home/user folder:
<pre>touch /home/user/.nomedia</pre>
=== Deactivating apt-worker ===
Run:
<pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre>
=== Removing 250MHz CPU frequency (example) ===
Install cpufrequtils.
Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre>
=== More SWAP / SWAP activation ===
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
'''Note: like Fremantle, blur effect can cause lags and slowness.''' It is possible to deactivate it through the transitions.ini file:
<pre>[HOME]
radius = 0
radius_more = 0
</pre>
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv (0 - OMAP Textured Video)
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse (or User defined)
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: Auto
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Voice Calls / SIP Calls ===
- Dist-upgrade to -devel (not working without)
Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol)
Voice calls are now working out of the box as well.
If sound is distorted, run:
<code>sudo chrt -a -f -p 99 $(pgrep pulseaudio)</code>
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.1.76 / 6.6 LTS (experimental) || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 805MHz (stable & supported), 850MHz works with some devices (not supported), Turbo mode works
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection and FMTX
|-
| Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer.
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with Sphone or ofono scripts. Works with Conversations in -devel.
|-
| Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
aa56b49605850c6e69dc6ab9a5353c1a75ffdc7f
1707
1705
2024-09-14T19:58:49Z
Arno11
61
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.6
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly (dual boot mode):
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ save it in a subfolder called test.
3. Turn off Nokia N900, issue the following command on PC <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> you will get a message similar to the following:
<code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher
Not a local device
Waiting for USB device... </code>
and the connect Nokia N900 to the PC. you will then get a message like so:
<code>Found USB device: RX-51/RM-680/RM-696 (0x421:0x106) in Cold flashing mode
USB device product string: Nokia USB ROM
USB device serial number string: (not detected)
Detected USB device: (not detected)
Waiting for ASIC ID...
Detected OMAP3430 chip (revision 87)
Device: (not detected)
HW revision: (not detected)
NOLO version: (not detected)
Kernel version: (not detected)
Initfs version: (not detected)
Software release version: (not detected)
Content eMMC version: (not detected)
Root device: (not detected)
USB host mode: (not detected)
R&D mode: (not detected)
Switching to NOLO mode...
Sending OMAP memory boot message...
Waiting for USB device...
Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode
USB device product string: Nokia N900 (Update mode)
USB device serial number string: MUN233033
Detected USB device: RX-51
Initializing NOLO...
Device: RX-51
HW revision: 2204
NOLO version: 1.4.14
Kernel version: 2.6.28-20101501+0m5
Initfs version: (not detected)
Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203
Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND
Root device: flash
USB host mode: disabled
R&D mode: disabled
Load image:
File: test/u-boot-2013.04-2.bin
Image type: kernel
Image size: 212864 bytes
Sending image header...
Sending image...
100% [#################################################################]
Done
</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> you will get an output such as:
<code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher
Not a local device
Waiting for USB device...
Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode
USB device product string: Nokia N900 (Update mode)
USB device serial number string: MUN233033
Detected USB device: RX-51
Initializing NOLO...
Device: RX-51
HW revision: 2204
NOLO version: 1.4.14
Kernel version: 2.6.28-20101501+0m5
Initfs version: (not detected)
Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203
Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND
Root device: flash
USB host mode: disabled
R&D mode: disabled
Booting kernel with default cmdline...
</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. The screen might not be backlit so it will be difficult to read. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. The screen might be very dim and look off. So it might be difficult to see. Boot up the first time will take a long time full 2 min on test. Some text will show and will then go back to black screen but eventually you will see the splash screen and later the icons will show.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
'''Overclocking is now available in -devel using cpufreq boost.'''
It uses 250-500-550-600-720-805-850MHz frequencies
To enable it, edit:
<code>/sys/devices/system/cpu/cpufreq/boost</code>
And replace 0 by 1.
It is possible to customise max/min/available frequencies editing files in:
<code>/sys/devices/system/cpu/cpu0/cpufreq/</code>
'''No other steps are needed and updates/upgrades work with boost mode.'''
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 850MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
'''WARNING: some devices can't run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor'''
== Overclocking - Old method for testing purpose ==
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table for example:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, SDXC U3 microSD card is a must. Class10 U1 cards are usually too slow to run Leste on N900 unfortunately, most probably because of their lower build quality.
'''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
('''Note:''' it is recommended to dist-upgrade to -devel to enable more features)
=== Gnome-tracker in $HOME ===
By default trackers are indexing the entire $HOME folder, causing severe slowdown.
To avoid this issue, the solution (until a proper fix) is to add a .nomedia file in /home/user folder:
<pre>touch /home/user/.nomedia</pre>
=== Deactivating apt-worker ===
Run:
<pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre>
=== Removing 250MHz CPU frequency (example) ===
Install cpufrequtils.
Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre>
=== More SWAP / SWAP activation ===
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
'''Note: like Fremantle, blur effect can cause lags and slowness.''' It is possible to deactivate/modify it through the transitions.ini file:
<pre>[HOME]
radius = 1
radius_more = 2
</pre>
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv (0 - OMAP Textured Video)
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse (or User defined)
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: Auto
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Voice Calls / SIP Calls ===
- Dist-upgrade to -devel (not working without)
Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol)
Voice calls are now working out of the box as well.
If sound is distorted, run:
<code>sudo chrt -a -f -p 99 $(pgrep pulseaudio)</code>
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.6 LTS (experimental) || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 805MHz (stable & supported), 850MHz works with some devices (not supported), Turbo mode works
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection and FMTX
|-
| Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer.
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with Sphone or ofono scripts. Works with Conversations in -devel.
|-
| Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
bd0dd73f477e80e05b8fff475d3776c1ec5d6d55
1708
1707
2024-09-14T20:01:41Z
Arno11
61
/* Overclocking */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.6
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly (dual boot mode):
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ save it in a subfolder called test.
3. Turn off Nokia N900, issue the following command on PC <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> you will get a message similar to the following:
<code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher
Not a local device
Waiting for USB device... </code>
and the connect Nokia N900 to the PC. you will then get a message like so:
<code>Found USB device: RX-51/RM-680/RM-696 (0x421:0x106) in Cold flashing mode
USB device product string: Nokia USB ROM
USB device serial number string: (not detected)
Detected USB device: (not detected)
Waiting for ASIC ID...
Detected OMAP3430 chip (revision 87)
Device: (not detected)
HW revision: (not detected)
NOLO version: (not detected)
Kernel version: (not detected)
Initfs version: (not detected)
Software release version: (not detected)
Content eMMC version: (not detected)
Root device: (not detected)
USB host mode: (not detected)
R&D mode: (not detected)
Switching to NOLO mode...
Sending OMAP memory boot message...
Waiting for USB device...
Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode
USB device product string: Nokia N900 (Update mode)
USB device serial number string: MUN233033
Detected USB device: RX-51
Initializing NOLO...
Device: RX-51
HW revision: 2204
NOLO version: 1.4.14
Kernel version: 2.6.28-20101501+0m5
Initfs version: (not detected)
Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203
Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND
Root device: flash
USB host mode: disabled
R&D mode: disabled
Load image:
File: test/u-boot-2013.04-2.bin
Image type: kernel
Image size: 212864 bytes
Sending image header...
Sending image...
100% [#################################################################]
Done
</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> you will get an output such as:
<code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher
Not a local device
Waiting for USB device...
Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode
USB device product string: Nokia N900 (Update mode)
USB device serial number string: MUN233033
Detected USB device: RX-51
Initializing NOLO...
Device: RX-51
HW revision: 2204
NOLO version: 1.4.14
Kernel version: 2.6.28-20101501+0m5
Initfs version: (not detected)
Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203
Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND
Root device: flash
USB host mode: disabled
R&D mode: disabled
Booting kernel with default cmdline...
</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. The screen might not be backlit so it will be difficult to read. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. The screen might be very dim and look off. So it might be difficult to see. Boot up the first time will take a long time full 2 min on test. Some text will show and will then go back to black screen but eventually you will see the splash screen and later the icons will show.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
'''Overclocking is now available in -devel using cpufreq boost.'''
It uses 250-500-550-600-720-805MHz frequencies
To enable it, edit:
<code>/sys/devices/system/cpu/cpufreq/boost</code>
And replace 0 by 1.
It is possible to customise max/min/available frequencies editing files in:
<code>/sys/devices/system/cpu/cpu0/cpufreq/</code>
'''No other steps are needed and updates/upgrades work with boost mode.'''
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 805MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
'''WARNING: some devices can't run at 805MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 805000 by 720000 in scaling_max_freq file and finally select conservative governor'''
== Overclocking - Old method for testing purpose ==
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table for example:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, SDXC U3 microSD card is a must. Class10 U1 cards are usually too slow to run Leste on N900 unfortunately, most probably because of their lower build quality.
'''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
('''Note:''' it is recommended to dist-upgrade to -devel to enable more features)
=== Gnome-tracker in $HOME ===
By default trackers are indexing the entire $HOME folder, causing severe slowdown.
To avoid this issue, the solution (until a proper fix) is to add a .nomedia file in /home/user folder:
<pre>touch /home/user/.nomedia</pre>
=== Deactivating apt-worker ===
Run:
<pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre>
=== Removing 250MHz CPU frequency (example) ===
Install cpufrequtils.
Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre>
=== More SWAP / SWAP activation ===
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
'''Note: like Fremantle, blur effect can cause lags and slowness.''' It is possible to deactivate/modify it through the transitions.ini file:
<pre>[HOME]
radius = 1
radius_more = 2
</pre>
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv (0 - OMAP Textured Video)
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse (or User defined)
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: Auto
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Voice Calls / SIP Calls ===
- Dist-upgrade to -devel (not working without)
Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol)
Voice calls are now working out of the box as well.
If sound is distorted, run:
<code>sudo chrt -a -f -p 99 $(pgrep pulseaudio)</code>
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.6 LTS (experimental) || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 805MHz (stable & supported), 850MHz works with some devices (not supported), Turbo mode works
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection and FMTX
|-
| Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer.
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with Sphone or ofono scripts. Works with Conversations in -devel.
|-
| Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
f556918fe22c2f19fac09f0f9901070403b12e2c
1709
1708
2024-09-14T20:07:46Z
Arno11
61
/* SD Card and first boot */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.6
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly (dual boot mode):
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ save it in a subfolder called test.
3. Turn off Nokia N900, issue the following command on PC <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> you will get a message similar to the following:
<code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher
Not a local device
Waiting for USB device... </code>
and the connect Nokia N900 to the PC. you will then get a message like so:
<code>Found USB device: RX-51/RM-680/RM-696 (0x421:0x106) in Cold flashing mode
USB device product string: Nokia USB ROM
USB device serial number string: (not detected)
Detected USB device: (not detected)
Waiting for ASIC ID...
Detected OMAP3430 chip (revision 87)
Device: (not detected)
HW revision: (not detected)
NOLO version: (not detected)
Kernel version: (not detected)
Initfs version: (not detected)
Software release version: (not detected)
Content eMMC version: (not detected)
Root device: (not detected)
USB host mode: (not detected)
R&D mode: (not detected)
Switching to NOLO mode...
Sending OMAP memory boot message...
Waiting for USB device...
Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode
USB device product string: Nokia N900 (Update mode)
USB device serial number string: MUN233033
Detected USB device: RX-51
Initializing NOLO...
Device: RX-51
HW revision: 2204
NOLO version: 1.4.14
Kernel version: 2.6.28-20101501+0m5
Initfs version: (not detected)
Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203
Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND
Root device: flash
USB host mode: disabled
R&D mode: disabled
Load image:
File: test/u-boot-2013.04-2.bin
Image type: kernel
Image size: 212864 bytes
Sending image header...
Sending image...
100% [#################################################################]
Done
</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> you will get an output such as:
<code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher
Not a local device
Waiting for USB device...
Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode
USB device product string: Nokia N900 (Update mode)
USB device serial number string: MUN233033
Detected USB device: RX-51
Initializing NOLO...
Device: RX-51
HW revision: 2204
NOLO version: 1.4.14
Kernel version: 2.6.28-20101501+0m5
Initfs version: (not detected)
Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203
Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND
Root device: flash
USB host mode: disabled
R&D mode: disabled
Booting kernel with default cmdline...
</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. The screen might not be backlit so it will be difficult to read. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. The screen might be very dim and look off. So it might be difficult to see. Boot up the first time will take a long time full 2 min on test. Some text will show and will then go back to black screen but eventually you will see the splash screen and later the icons will show.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
'''Overclocking is now available in -devel using cpufreq boost.'''
It uses 250-500-550-600-720-805MHz frequencies
To enable it, edit:
<code>/sys/devices/system/cpu/cpufreq/boost</code>
And replace 0 by 1.
It is possible to customise max/min/available frequencies editing files in:
<code>/sys/devices/system/cpu/cpu0/cpufreq/</code>
'''No other steps are needed and updates/upgrades work with boost mode.'''
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 805MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
'''WARNING: some devices can't run at 805MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 805000 by 720000 in scaling_max_freq file and finally select conservative governor'''
== Overclocking - Old method for testing purpose ==
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table for example:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, SDXC U3 microSD card is a must. Class10 U1 cards are usually too slow to run Leste on N900 unfortunately, most probably because of their lower build quality.
'''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
'''Note:''' it is recommended to dist-upgrade to -devel to enable more features by adding
deb https://maedevu.maemo.org/leste chimaera-devel main contrib non-free n900
in /etc/apt/sources.list
('''Warning:''' don't remove other sources in this file)
=== Gnome-tracker in $HOME ===
By default trackers are indexing the entire $HOME folder, causing severe slowdown.
To avoid this issue, the solution (until a proper fix) is to add a .nomedia file in /home/user folder:
<pre>touch /home/user/.nomedia</pre>
=== Deactivating apt-worker ===
Run:
<pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre>
=== Removing 250MHz CPU frequency (example) ===
Install cpufrequtils.
Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre>
=== More SWAP / SWAP activation ===
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
'''Note: like Fremantle, blur effect can cause lags and slowness.''' It is possible to deactivate/modify it through the transitions.ini file:
<pre>[HOME]
radius = 1
radius_more = 2
</pre>
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv (0 - OMAP Textured Video)
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse (or User defined)
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: Auto
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Voice Calls / SIP Calls ===
- Dist-upgrade to -devel (not working without)
Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol)
Voice calls are now working out of the box as well.
If sound is distorted, run:
<code>sudo chrt -a -f -p 99 $(pgrep pulseaudio)</code>
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.6 LTS (experimental) || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 805MHz (stable & supported), 850MHz works with some devices (not supported), Turbo mode works
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection and FMTX
|-
| Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer.
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with Sphone or ofono scripts. Works with Conversations in -devel.
|-
| Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
6962b4e8fc8882eb80669b498ad2383a9e3c1e78
1710
1709
2024-09-14T20:09:34Z
Arno11
61
/* SD Card and first boot */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.6
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly (dual boot mode):
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ save it in a subfolder called test.
3. Turn off Nokia N900, issue the following command on PC <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> you will get a message similar to the following:
<code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher
Not a local device
Waiting for USB device... </code>
and the connect Nokia N900 to the PC. you will then get a message like so:
<code>Found USB device: RX-51/RM-680/RM-696 (0x421:0x106) in Cold flashing mode
USB device product string: Nokia USB ROM
USB device serial number string: (not detected)
Detected USB device: (not detected)
Waiting for ASIC ID...
Detected OMAP3430 chip (revision 87)
Device: (not detected)
HW revision: (not detected)
NOLO version: (not detected)
Kernel version: (not detected)
Initfs version: (not detected)
Software release version: (not detected)
Content eMMC version: (not detected)
Root device: (not detected)
USB host mode: (not detected)
R&D mode: (not detected)
Switching to NOLO mode...
Sending OMAP memory boot message...
Waiting for USB device...
Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode
USB device product string: Nokia N900 (Update mode)
USB device serial number string: MUN233033
Detected USB device: RX-51
Initializing NOLO...
Device: RX-51
HW revision: 2204
NOLO version: 1.4.14
Kernel version: 2.6.28-20101501+0m5
Initfs version: (not detected)
Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203
Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND
Root device: flash
USB host mode: disabled
R&D mode: disabled
Load image:
File: test/u-boot-2013.04-2.bin
Image type: kernel
Image size: 212864 bytes
Sending image header...
Sending image...
100% [#################################################################]
Done
</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> you will get an output such as:
<code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher
Not a local device
Waiting for USB device...
Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode
USB device product string: Nokia N900 (Update mode)
USB device serial number string: MUN233033
Detected USB device: RX-51
Initializing NOLO...
Device: RX-51
HW revision: 2204
NOLO version: 1.4.14
Kernel version: 2.6.28-20101501+0m5
Initfs version: (not detected)
Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203
Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND
Root device: flash
USB host mode: disabled
R&D mode: disabled
Booting kernel with default cmdline...
</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. The screen might not be backlit so it will be difficult to read. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. The screen might be very dim and look off. So it might be difficult to see. Boot up the first time will take a long time full 2 min on test. Some text will show and will then go back to black screen but eventually you will see the splash screen and later the icons will show.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
'''Overclocking is now available in -devel using cpufreq boost.'''
It uses 250-500-550-600-720-805MHz frequencies
To enable it, edit:
<code>/sys/devices/system/cpu/cpufreq/boost</code>
And replace 0 by 1.
It is possible to customise max/min/available frequencies editing files in:
<code>/sys/devices/system/cpu/cpu0/cpufreq/</code>
'''No other steps are needed and updates/upgrades work with boost mode.'''
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 805MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
'''WARNING: some devices can't run at 805MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 805000 by 720000 in scaling_max_freq file and finally select conservative governor'''
== Overclocking - Old method for testing purpose ==
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table for example:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, SDXC U3 microSD card is a must. Class10 U1 cards are usually too slow to run Leste on N900 unfortunately, most probably because of their lower build quality.
'''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
'''Note:''' it is recommended to dist-upgrade to -devel to enable more features by adding
<pre>deb https://maedevu.maemo.org/leste chimaera-devel main contrib non-free n900</pre>
in <pre>/etc/apt/sources.list</pre>
('''Warning:''' don't remove other sources in this file)
=== Gnome-tracker in $HOME ===
By default trackers are indexing the entire $HOME folder, causing severe slowdown.
To avoid this issue, the solution (until a proper fix) is to add a .nomedia file in /home/user folder:
<pre>touch /home/user/.nomedia</pre>
=== Deactivating apt-worker ===
Run:
<pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre>
=== Removing 250MHz CPU frequency (example) ===
Install cpufrequtils.
Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre>
=== More SWAP / SWAP activation ===
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
'''Note: like Fremantle, blur effect can cause lags and slowness.''' It is possible to deactivate/modify it through the transitions.ini file:
<pre>[HOME]
radius = 1
radius_more = 2
</pre>
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv (0 - OMAP Textured Video)
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse (or User defined)
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: Auto
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Voice Calls / SIP Calls ===
- Dist-upgrade to -devel (not working without)
Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol)
Voice calls are now working out of the box as well.
If sound is distorted, run:
<code>sudo chrt -a -f -p 99 $(pgrep pulseaudio)</code>
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.6 LTS (experimental) || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 805MHz (stable & supported), 850MHz works with some devices (not supported), Turbo mode works
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection and FMTX
|-
| Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer.
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with Sphone or ofono scripts. Works with Conversations in -devel.
|-
| Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
31da2f76f758603ed2314719e454ac8a9bcc94cc
1711
1710
2024-09-14T20:15:29Z
Arno11
61
/* More SWAP / SWAP activation */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.6
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly (dual boot mode):
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ save it in a subfolder called test.
3. Turn off Nokia N900, issue the following command on PC <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> you will get a message similar to the following:
<code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher
Not a local device
Waiting for USB device... </code>
and the connect Nokia N900 to the PC. you will then get a message like so:
<code>Found USB device: RX-51/RM-680/RM-696 (0x421:0x106) in Cold flashing mode
USB device product string: Nokia USB ROM
USB device serial number string: (not detected)
Detected USB device: (not detected)
Waiting for ASIC ID...
Detected OMAP3430 chip (revision 87)
Device: (not detected)
HW revision: (not detected)
NOLO version: (not detected)
Kernel version: (not detected)
Initfs version: (not detected)
Software release version: (not detected)
Content eMMC version: (not detected)
Root device: (not detected)
USB host mode: (not detected)
R&D mode: (not detected)
Switching to NOLO mode...
Sending OMAP memory boot message...
Waiting for USB device...
Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode
USB device product string: Nokia N900 (Update mode)
USB device serial number string: MUN233033
Detected USB device: RX-51
Initializing NOLO...
Device: RX-51
HW revision: 2204
NOLO version: 1.4.14
Kernel version: 2.6.28-20101501+0m5
Initfs version: (not detected)
Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203
Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND
Root device: flash
USB host mode: disabled
R&D mode: disabled
Load image:
File: test/u-boot-2013.04-2.bin
Image type: kernel
Image size: 212864 bytes
Sending image header...
Sending image...
100% [#################################################################]
Done
</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> you will get an output such as:
<code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher
Not a local device
Waiting for USB device...
Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode
USB device product string: Nokia N900 (Update mode)
USB device serial number string: MUN233033
Detected USB device: RX-51
Initializing NOLO...
Device: RX-51
HW revision: 2204
NOLO version: 1.4.14
Kernel version: 2.6.28-20101501+0m5
Initfs version: (not detected)
Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203
Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND
Root device: flash
USB host mode: disabled
R&D mode: disabled
Booting kernel with default cmdline...
</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. The screen might not be backlit so it will be difficult to read. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. The screen might be very dim and look off. So it might be difficult to see. Boot up the first time will take a long time full 2 min on test. Some text will show and will then go back to black screen but eventually you will see the splash screen and later the icons will show.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
'''Overclocking is now available in -devel using cpufreq boost.'''
It uses 250-500-550-600-720-805MHz frequencies
To enable it, edit:
<code>/sys/devices/system/cpu/cpufreq/boost</code>
And replace 0 by 1.
It is possible to customise max/min/available frequencies editing files in:
<code>/sys/devices/system/cpu/cpu0/cpufreq/</code>
'''No other steps are needed and updates/upgrades work with boost mode.'''
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 805MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
'''WARNING: some devices can't run at 805MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 805000 by 720000 in scaling_max_freq file and finally select conservative governor'''
== Overclocking - Old method for testing purpose ==
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table for example:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, SDXC U3 microSD card is a must. Class10 U1 cards are usually too slow to run Leste on N900 unfortunately, most probably because of their lower build quality.
'''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
'''Note:''' it is recommended to dist-upgrade to -devel to enable more features by adding
<pre>deb https://maedevu.maemo.org/leste chimaera-devel main contrib non-free n900</pre>
in <pre>/etc/apt/sources.list</pre>
('''Warning:''' don't remove other sources in this file)
=== Gnome-tracker in $HOME ===
By default trackers are indexing the entire $HOME folder, causing severe slowdown.
To avoid this issue, the solution (until a proper fix) is to add a .nomedia file in /home/user folder:
<pre>touch /home/user/.nomedia</pre>
=== Deactivating apt-worker ===
Run:
<pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre>
=== Removing 250MHz CPU frequency (example) ===
Install cpufrequtils.
Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre>
=== More SWAP / SWAP activation (testing purpose) ===
('''Note: SWAP is already activated by default''')
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
'''Note: like Fremantle, blur effect can cause lags and slowness.''' It is possible to deactivate/modify it through the transitions.ini file:
<pre>[HOME]
radius = 1
radius_more = 2
</pre>
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv (0 - OMAP Textured Video)
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse (or User defined)
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: Auto
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Voice Calls / SIP Calls ===
- Dist-upgrade to -devel (not working without)
Now SIP calls and SIP messages are working out of the box using Twinkle. (select voicecall profile in pavucontrol)
Voice calls are now working out of the box as well.
If sound is distorted, run:
<code>sudo chrt -a -f -p 99 $(pgrep pulseaudio)</code>
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.6 LTS (experimental) || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 805MHz (stable & supported), 850MHz works with some devices (not supported), Turbo mode works
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection and FMTX
|-
| Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer.
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with Sphone or ofono scripts. Works with Conversations in -devel.
|-
| Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
94b05ddf3ff8fd9dd6a105602fd32ec82e177db6
1712
1711
2024-09-14T20:17:23Z
Arno11
61
/* Voice Calls / SIP Calls */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.6
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly (dual boot mode):
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ save it in a subfolder called test.
3. Turn off Nokia N900, issue the following command on PC <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> you will get a message similar to the following:
<code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher
Not a local device
Waiting for USB device... </code>
and the connect Nokia N900 to the PC. you will then get a message like so:
<code>Found USB device: RX-51/RM-680/RM-696 (0x421:0x106) in Cold flashing mode
USB device product string: Nokia USB ROM
USB device serial number string: (not detected)
Detected USB device: (not detected)
Waiting for ASIC ID...
Detected OMAP3430 chip (revision 87)
Device: (not detected)
HW revision: (not detected)
NOLO version: (not detected)
Kernel version: (not detected)
Initfs version: (not detected)
Software release version: (not detected)
Content eMMC version: (not detected)
Root device: (not detected)
USB host mode: (not detected)
R&D mode: (not detected)
Switching to NOLO mode...
Sending OMAP memory boot message...
Waiting for USB device...
Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode
USB device product string: Nokia N900 (Update mode)
USB device serial number string: MUN233033
Detected USB device: RX-51
Initializing NOLO...
Device: RX-51
HW revision: 2204
NOLO version: 1.4.14
Kernel version: 2.6.28-20101501+0m5
Initfs version: (not detected)
Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203
Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND
Root device: flash
USB host mode: disabled
R&D mode: disabled
Load image:
File: test/u-boot-2013.04-2.bin
Image type: kernel
Image size: 212864 bytes
Sending image header...
Sending image...
100% [#################################################################]
Done
</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> you will get an output such as:
<code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher
Not a local device
Waiting for USB device...
Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode
USB device product string: Nokia N900 (Update mode)
USB device serial number string: MUN233033
Detected USB device: RX-51
Initializing NOLO...
Device: RX-51
HW revision: 2204
NOLO version: 1.4.14
Kernel version: 2.6.28-20101501+0m5
Initfs version: (not detected)
Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203
Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND
Root device: flash
USB host mode: disabled
R&D mode: disabled
Booting kernel with default cmdline...
</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. The screen might not be backlit so it will be difficult to read. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. The screen might be very dim and look off. So it might be difficult to see. Boot up the first time will take a long time full 2 min on test. Some text will show and will then go back to black screen but eventually you will see the splash screen and later the icons will show.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
'''Overclocking is now available in -devel using cpufreq boost.'''
It uses 250-500-550-600-720-805MHz frequencies
To enable it, edit:
<code>/sys/devices/system/cpu/cpufreq/boost</code>
And replace 0 by 1.
It is possible to customise max/min/available frequencies editing files in:
<code>/sys/devices/system/cpu/cpu0/cpufreq/</code>
'''No other steps are needed and updates/upgrades work with boost mode.'''
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 805MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
'''WARNING: some devices can't run at 805MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 805000 by 720000 in scaling_max_freq file and finally select conservative governor'''
== Overclocking - Old method for testing purpose ==
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table for example:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, SDXC U3 microSD card is a must. Class10 U1 cards are usually too slow to run Leste on N900 unfortunately, most probably because of their lower build quality.
'''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
'''Note:''' it is recommended to dist-upgrade to -devel to enable more features by adding
<pre>deb https://maedevu.maemo.org/leste chimaera-devel main contrib non-free n900</pre>
in <pre>/etc/apt/sources.list</pre>
('''Warning:''' don't remove other sources in this file)
=== Gnome-tracker in $HOME ===
By default trackers are indexing the entire $HOME folder, causing severe slowdown.
To avoid this issue, the solution (until a proper fix) is to add a .nomedia file in /home/user folder:
<pre>touch /home/user/.nomedia</pre>
=== Deactivating apt-worker ===
Run:
<pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre>
=== Removing 250MHz CPU frequency (example) ===
Install cpufrequtils.
Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre>
=== More SWAP / SWAP activation (testing purpose) ===
('''Note: SWAP is already activated by default''')
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
'''Note: like Fremantle, blur effect can cause lags and slowness.''' It is possible to deactivate/modify it through the transitions.ini file:
<pre>[HOME]
radius = 1
radius_more = 2
</pre>
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv (0 - OMAP Textured Video)
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse (or User defined)
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: Auto
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Voice Calls / SIP Calls ===
- Dist-upgrade to -devel (not working without)
Now SIP calls and SIP messages are working out of the box using Twinkle.
Voice calls are now working out of the box as well.
If sound is distorted, run:
<code>sudo chrt -a -f -p 99 $(pgrep pulseaudio)</code>
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.6 LTS (experimental) || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 805MHz (stable & supported), 850MHz works with some devices (not supported), Turbo mode works
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection and FMTX
|-
| Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer.
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with Sphone or ofono scripts. Works with Conversations in -devel.
|-
| Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
d267c47da22ab8f705709edd39e66e1b5ff1b05c
1713
1712
2024-09-14T20:20:10Z
Arno11
61
/* Status table */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.6
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly (dual boot mode):
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ save it in a subfolder called test.
3. Turn off Nokia N900, issue the following command on PC <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> you will get a message similar to the following:
<code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher
Not a local device
Waiting for USB device... </code>
and the connect Nokia N900 to the PC. you will then get a message like so:
<code>Found USB device: RX-51/RM-680/RM-696 (0x421:0x106) in Cold flashing mode
USB device product string: Nokia USB ROM
USB device serial number string: (not detected)
Detected USB device: (not detected)
Waiting for ASIC ID...
Detected OMAP3430 chip (revision 87)
Device: (not detected)
HW revision: (not detected)
NOLO version: (not detected)
Kernel version: (not detected)
Initfs version: (not detected)
Software release version: (not detected)
Content eMMC version: (not detected)
Root device: (not detected)
USB host mode: (not detected)
R&D mode: (not detected)
Switching to NOLO mode...
Sending OMAP memory boot message...
Waiting for USB device...
Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode
USB device product string: Nokia N900 (Update mode)
USB device serial number string: MUN233033
Detected USB device: RX-51
Initializing NOLO...
Device: RX-51
HW revision: 2204
NOLO version: 1.4.14
Kernel version: 2.6.28-20101501+0m5
Initfs version: (not detected)
Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203
Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND
Root device: flash
USB host mode: disabled
R&D mode: disabled
Load image:
File: test/u-boot-2013.04-2.bin
Image type: kernel
Image size: 212864 bytes
Sending image header...
Sending image...
100% [#################################################################]
Done
</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> you will get an output such as:
<code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher
Not a local device
Waiting for USB device...
Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode
USB device product string: Nokia N900 (Update mode)
USB device serial number string: MUN233033
Detected USB device: RX-51
Initializing NOLO...
Device: RX-51
HW revision: 2204
NOLO version: 1.4.14
Kernel version: 2.6.28-20101501+0m5
Initfs version: (not detected)
Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203
Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND
Root device: flash
USB host mode: disabled
R&D mode: disabled
Booting kernel with default cmdline...
</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. The screen might not be backlit so it will be difficult to read. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. The screen might be very dim and look off. So it might be difficult to see. Boot up the first time will take a long time full 2 min on test. Some text will show and will then go back to black screen but eventually you will see the splash screen and later the icons will show.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking ==
'''Overclocking is now available in -devel using cpufreq boost.'''
It uses 250-500-550-600-720-805MHz frequencies
To enable it, edit:
<code>/sys/devices/system/cpu/cpufreq/boost</code>
And replace 0 by 1.
It is possible to customise max/min/available frequencies editing files in:
<code>/sys/devices/system/cpu/cpu0/cpufreq/</code>
'''No other steps are needed and updates/upgrades work with boost mode.'''
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 805MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
'''WARNING: some devices can't run at 805MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 805000 by 720000 in scaling_max_freq file and finally select conservative governor'''
== Overclocking - Old method for testing purpose ==
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table for example:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, SDXC U3 microSD card is a must. Class10 U1 cards are usually too slow to run Leste on N900 unfortunately, most probably because of their lower build quality.
'''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
'''Note:''' it is recommended to dist-upgrade to -devel to enable more features by adding
<pre>deb https://maedevu.maemo.org/leste chimaera-devel main contrib non-free n900</pre>
in <pre>/etc/apt/sources.list</pre>
('''Warning:''' don't remove other sources in this file)
=== Gnome-tracker in $HOME ===
By default trackers are indexing the entire $HOME folder, causing severe slowdown.
To avoid this issue, the solution (until a proper fix) is to add a .nomedia file in /home/user folder:
<pre>touch /home/user/.nomedia</pre>
=== Deactivating apt-worker ===
Run:
<pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre>
=== Removing 250MHz CPU frequency (example) ===
Install cpufrequtils.
Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre>
=== More SWAP / SWAP activation (testing purpose) ===
('''Note: SWAP is already activated by default''')
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
'''Note: like Fremantle, blur effect can cause lags and slowness.''' It is possible to deactivate/modify it through the transitions.ini file:
<pre>[HOME]
radius = 1
radius_more = 2
</pre>
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv (0 - OMAP Textured Video)
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse (or User defined)
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: Auto
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Voice Calls / SIP Calls ===
- Dist-upgrade to -devel (not working without)
Now SIP calls and SIP messages are working out of the box using Twinkle.
Voice calls are now working out of the box as well.
If sound is distorted, run:
<code>sudo chrt -a -f -p 99 $(pgrep pulseaudio)</code>
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.6 LTS || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 805MHz (stable & supported), 850MHz works with some devices (not supported), Turbo mode works
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection and FMTX
|-
| Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer.
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with Sphone or ofono scripts. Works with Conversations in -devel.
|-
| Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
d1f6c0b58607094838400a01b0c1886b5e46988c
1714
1713
2024-09-14T20:26:57Z
Arno11
61
/* Overclocking */
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.6
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly (dual boot mode):
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ save it in a subfolder called test.
3. Turn off Nokia N900, issue the following command on PC <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> you will get a message similar to the following:
<code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher
Not a local device
Waiting for USB device... </code>
and the connect Nokia N900 to the PC. you will then get a message like so:
<code>Found USB device: RX-51/RM-680/RM-696 (0x421:0x106) in Cold flashing mode
USB device product string: Nokia USB ROM
USB device serial number string: (not detected)
Detected USB device: (not detected)
Waiting for ASIC ID...
Detected OMAP3430 chip (revision 87)
Device: (not detected)
HW revision: (not detected)
NOLO version: (not detected)
Kernel version: (not detected)
Initfs version: (not detected)
Software release version: (not detected)
Content eMMC version: (not detected)
Root device: (not detected)
USB host mode: (not detected)
R&D mode: (not detected)
Switching to NOLO mode...
Sending OMAP memory boot message...
Waiting for USB device...
Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode
USB device product string: Nokia N900 (Update mode)
USB device serial number string: MUN233033
Detected USB device: RX-51
Initializing NOLO...
Device: RX-51
HW revision: 2204
NOLO version: 1.4.14
Kernel version: 2.6.28-20101501+0m5
Initfs version: (not detected)
Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203
Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND
Root device: flash
USB host mode: disabled
R&D mode: disabled
Load image:
File: test/u-boot-2013.04-2.bin
Image type: kernel
Image size: 212864 bytes
Sending image header...
Sending image...
100% [#################################################################]
Done
</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> you will get an output such as:
<code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher
Not a local device
Waiting for USB device...
Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode
USB device product string: Nokia N900 (Update mode)
USB device serial number string: MUN233033
Detected USB device: RX-51
Initializing NOLO...
Device: RX-51
HW revision: 2204
NOLO version: 1.4.14
Kernel version: 2.6.28-20101501+0m5
Initfs version: (not detected)
Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203
Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND
Root device: flash
USB host mode: disabled
R&D mode: disabled
Booting kernel with default cmdline...
</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. The screen might not be backlit so it will be difficult to read. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. The screen might be very dim and look off. So it might be difficult to see. Boot up the first time will take a long time full 2 min on test. Some text will show and will then go back to black screen but eventually you will see the splash screen and later the icons will show.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking (optional) ==
'''Overclocking is now available in -devel using cpufreq boost.'''
It uses 250-500-550-600-720-805MHz frequencies
To enable it, edit:
<code>/sys/devices/system/cpu/cpufreq/boost</code>
And replace 0 by 1.
It is possible to customise max/min/available frequencies editing files in:
<code>/sys/devices/system/cpu/cpu0/cpufreq/</code>
'''No other steps are needed and updates/upgrades work with boost mode.'''
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 805MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
'''WARNING: some devices can't run at 805MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 805000 by 720000 in scaling_max_freq file and finally select conservative governor'''
== Overclocking - Old method for testing purpose ==
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table for example:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, SDXC U3 microSD card is a must. Class10 U1 cards are usually too slow to run Leste on N900 unfortunately, most probably because of their lower build quality.
'''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
'''Note:''' it is recommended to dist-upgrade to -devel to enable more features by adding
<pre>deb https://maedevu.maemo.org/leste chimaera-devel main contrib non-free n900</pre>
in <pre>/etc/apt/sources.list</pre>
('''Warning:''' don't remove other sources in this file)
=== Gnome-tracker in $HOME ===
By default trackers are indexing the entire $HOME folder, causing severe slowdown.
To avoid this issue, the solution (until a proper fix) is to add a .nomedia file in /home/user folder:
<pre>touch /home/user/.nomedia</pre>
=== Deactivating apt-worker ===
Run:
<pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre>
=== Removing 250MHz CPU frequency (example) ===
Install cpufrequtils.
Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre>
=== More SWAP / SWAP activation (testing purpose) ===
('''Note: SWAP is already activated by default''')
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
'''Note: like Fremantle, blur effect can cause lags and slowness.''' It is possible to deactivate/modify it through the transitions.ini file:
<pre>[HOME]
radius = 1
radius_more = 2
</pre>
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv (0 - OMAP Textured Video)
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse (or User defined)
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: Auto
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Voice Calls / SIP Calls ===
- Dist-upgrade to -devel (not working without)
Now SIP calls and SIP messages are working out of the box using Twinkle.
Voice calls are now working out of the box as well.
If sound is distorted, run:
<code>sudo chrt -a -f -p 99 $(pgrep pulseaudio)</code>
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.6 LTS || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 805MHz (stable & supported), 850MHz works with some devices (not supported), Turbo mode works
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection and FMTX
|-
| Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer.
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with Sphone or ofono scripts. Works with Conversations in -devel.
|-
| Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
06490daaedecc4c44dda83b505ccf052e50cad65
1715
1714
2024-09-14T20:36:17Z
Arno11
61
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|media=microSDHC (up to 512GB)
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.6
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly (dual boot mode):
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ save it in a subfolder called test.
3. Turn off Nokia N900, issue the following command on PC <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> you will get a message similar to the following:
<code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher
Not a local device
Waiting for USB device... </code>
and the connect Nokia N900 to the PC. you will then get a message like so:
<code>Found USB device: RX-51/RM-680/RM-696 (0x421:0x106) in Cold flashing mode
USB device product string: Nokia USB ROM
USB device serial number string: (not detected)
Detected USB device: (not detected)
Waiting for ASIC ID...
Detected OMAP3430 chip (revision 87)
Device: (not detected)
HW revision: (not detected)
NOLO version: (not detected)
Kernel version: (not detected)
Initfs version: (not detected)
Software release version: (not detected)
Content eMMC version: (not detected)
Root device: (not detected)
USB host mode: (not detected)
R&D mode: (not detected)
Switching to NOLO mode...
Sending OMAP memory boot message...
Waiting for USB device...
Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode
USB device product string: Nokia N900 (Update mode)
USB device serial number string: MUN233033
Detected USB device: RX-51
Initializing NOLO...
Device: RX-51
HW revision: 2204
NOLO version: 1.4.14
Kernel version: 2.6.28-20101501+0m5
Initfs version: (not detected)
Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203
Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND
Root device: flash
USB host mode: disabled
R&D mode: disabled
Load image:
File: test/u-boot-2013.04-2.bin
Image type: kernel
Image size: 212864 bytes
Sending image header...
Sending image...
100% [#################################################################]
Done
</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> you will get an output such as:
<code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher
Not a local device
Waiting for USB device...
Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode
USB device product string: Nokia N900 (Update mode)
USB device serial number string: MUN233033
Detected USB device: RX-51
Initializing NOLO...
Device: RX-51
HW revision: 2204
NOLO version: 1.4.14
Kernel version: 2.6.28-20101501+0m5
Initfs version: (not detected)
Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203
Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND
Root device: flash
USB host mode: disabled
R&D mode: disabled
Booting kernel with default cmdline...
</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. The screen might not be backlit so it will be difficult to read. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. The screen might be very dim and look off. So it might be difficult to see. Boot up the first time will take a long time full 2 min on test. Some text will show and will then go back to black screen but eventually you will see the splash screen and later the icons will show.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking (optional) ==
'''Overclocking is now available in -devel using cpufreq boost.'''
It uses 250-500-550-600-720-805MHz frequencies
To enable it, edit:
<code>/sys/devices/system/cpu/cpufreq/boost</code>
And replace 0 by 1.
It is possible to customise max/min/available frequencies editing files in:
<code>/sys/devices/system/cpu/cpu0/cpufreq/</code>
'''No other steps are needed and updates/upgrades work with boost mode.'''
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 805MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
'''WARNING: some devices can't run at 805MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 805000 by 720000 in scaling_max_freq file and finally select conservative governor'''
== Overclocking - Old method for testing purpose ==
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table for example:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, SDXC U3 microSD card is a must. Class10 U1 cards are usually too slow to run Leste on N900 unfortunately, most probably because of their lower build quality.
'''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
'''Note:''' it is recommended to dist-upgrade to -devel to enable more features by adding
<pre>deb https://maedevu.maemo.org/leste chimaera-devel main contrib non-free n900</pre>
in <pre>/etc/apt/sources.list</pre>
('''Warning:''' don't remove other sources in this file)
=== Gnome-tracker in $HOME ===
By default trackers are indexing the entire $HOME folder, causing severe slowdown.
To avoid this issue, the solution (until a proper fix) is to add a .nomedia file in /home/user folder:
<pre>touch /home/user/.nomedia</pre>
=== Deactivating apt-worker ===
Run:
<pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre>
=== Removing 250MHz CPU frequency (example) ===
Install cpufrequtils.
Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre>
=== More SWAP / SWAP activation (testing purpose) ===
('''Note: SWAP is already activated by default''')
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
'''Note: like Fremantle, blur effect can cause lags and slowness.''' It is possible to deactivate/modify it through the transitions.ini file:
<pre>[HOME]
radius = 1
radius_more = 2
</pre>
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv (0 - OMAP Textured Video)
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse (or User defined)
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: Auto
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Voice Calls / SIP Calls ===
- Dist-upgrade to -devel (not working without)
Now SIP calls and SIP messages are working out of the box using Twinkle.
Voice calls are now working out of the box as well.
If sound is distorted, run:
<code>sudo chrt -a -f -p 99 $(pgrep pulseaudio)</code>
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.6 LTS || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 805MHz (stable & supported), 850MHz works with some devices (not supported), Turbo mode works
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection and FMTX
|-
| Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer.
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with Sphone or ofono scripts. Works with Conversations in -devel.
|-
| Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
0d7c7bf992f1c14cdd6c334101834735f3f56df8
1716
1715
2024-09-14T20:40:44Z
Arno11
61
wikitext
text/x-wiki
{{Infobox Device
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]
|manufacturer=Nokia
|codename=Rover, RX-51
|dimensions=110.9mm x 59.8mm x 18mm
|release_date=2009-11-11
|category=Supported
|soc=TI OMAP 3430 @600MHz <br>overclock @805MHz <br>Cortex-A8 <br>Armv7‑A
|dram=256 MB Mobile DDR
|power=
|lcd=800x480 3.5" Resistive TFT
|video=PowerVR SGX530
|audio=
|network=WL1251
|storage=32GB
|usb=Micro USB 2.0 Slave
|camera=
|sensors=
|other=
|headers=
|battery=1320mAh
|sw_kernel=6.6
|sw_serial=Yes, UART under battery, 2.7V max!
|sw_charging=Yes
|sw_usb_slave=Gadgets only
|sw_usb_host=With hacks
|sw_touchscreen=Yes, single-touch
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=
|sw_tv=Yes
|sw_3daccel=Yes, closed driver
|sw_vibration=Yes
|sw_audio=Yes (complex, ucm, no speaker protection)
|sw_calls=Yes
|sw_sms=Yes
|sw_wifi=Yes, firmware required
|sw_ethernet=
|sw_irda=Yes, actually CIR, not IrDA
|sw_2g3gdata=Yes
|sw_4gdata=
|sw_bluetooth=No
|sw_fmtx=Yes
|sw_fmrx=No
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=Yes
|sw_agps=No
|sw_frontcam=
|sw_backcam=
|sw_idlepower=160mW (WIP)
|sw_standbytime=
}}
== Installation ==
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.
=== Image installation ===
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/
* Image archive: https://maedevu.maemo.org/images/n900/
dd the image to an sd card.
If using a Windows machine, you can use [https://etcher.io/ Etcher]
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)
=== Bootloader (U-Boot) setup ===
==== Quick ====
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly (dual boot mode):
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ save it in a subfolder called test.
3. Turn off Nokia N900, issue the following command on PC <code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l</code> you will get a message similar to the following:
<code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher
Not a local device
Waiting for USB device... </code>
and the connect Nokia N900 to the PC. you will then get a message like so:
<code>Found USB device: RX-51/RM-680/RM-696 (0x421:0x106) in Cold flashing mode
USB device product string: Nokia USB ROM
USB device serial number string: (not detected)
Detected USB device: (not detected)
Waiting for ASIC ID...
Detected OMAP3430 chip (revision 87)
Device: (not detected)
HW revision: (not detected)
NOLO version: (not detected)
Kernel version: (not detected)
Initfs version: (not detected)
Software release version: (not detected)
Content eMMC version: (not detected)
Root device: (not detected)
USB host mode: (not detected)
R&D mode: (not detected)
Switching to NOLO mode...
Sending OMAP memory boot message...
Waiting for USB device...
Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode
USB device product string: Nokia N900 (Update mode)
USB device serial number string: MUN233033
Detected USB device: RX-51
Initializing NOLO...
Device: RX-51
HW revision: 2204
NOLO version: 1.4.14
Kernel version: 2.6.28-20101501+0m5
Initfs version: (not detected)
Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203
Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND
Root device: flash
USB host mode: disabled
R&D mode: disabled
Load image:
File: test/u-boot-2013.04-2.bin
Image type: kernel
Image size: 212864 bytes
Sending image header...
Sending image...
100% [#################################################################]
Done
</code>
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: <code>./0xFFFF -b</code> you will get an output such as:
<code>0xFFFF v0.8 // Open Free Fiasco Firmware Flasher
Not a local device
Waiting for USB device...
Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode
USB device product string: Nokia N900 (Update mode)
USB device serial number string: MUN233033
Detected USB device: RX-51
Initializing NOLO...
Device: RX-51
HW revision: 2204
NOLO version: 1.4.14
Kernel version: 2.6.28-20101501+0m5
Initfs version: (not detected)
Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203
Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND
Root device: flash
USB host mode: disabled
R&D mode: disabled
Booting kernel with default cmdline...
</code>
This should present u-boot from which you can select external SD card and boot to Maemo Leste. The screen might not be backlit so it will be difficult to read. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type <code>run sdboot</code>. The screen might be very dim and look off. So it might be difficult to see. Boot up the first time will take a long time full 2 min on test. Some text will show and will then go back to black screen but eventually you will see the splash screen and later the icons will show.
To flash u-boot permanently, you can issue the following command
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')
<code>sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f</code>
==== Existing Fremantle ====
If you have a functional Fremantle installation, you can follow these steps instead:
1. Install "U-Boot with kernel 2.6.28-omap1"
2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.
3. Add Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)
=== Increase filesystem size ===
Run the following script: <code>/etc/expandcard.sh</code>
== Serial ==
http://n900.elektranox.org/serial-adapter.html
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports
Use this command line (specifically the part after rootwait):
<pre>
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug
</pre>
== Notes ==
=== Speakers ===
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.
=== Torch ===
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>.
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.
<source lang="shell-session">
Install the prerequisites
$ sudo apk add i2c-tools
Unload the driver in case it is already loaded. We will use i2c manually
$ sudo modprobe -r adp1653
Enable the chip
$ echo 88 | sudo tee /sys/class/gpio/export
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED
Values between 1 and 7 enable the red privacy/recording led, with different intensity
0x8 is the lowest torch intensity, and we do not recommend going above it
$ sudo i2cset -y 2 0x30 0x0 0x8
Turn the torch off
$ sudo i2cset -y 2 0x30 0x0 0x0
Disable the chip
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value
$ echo 88 | sudo tee /sys/class/gpio/unexport
</source>
== Power Management ==
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170
* https://wiki.maemo.org/N900_Hardware_Power_management
* https://wiki.maemo.org/N900_Hardware_Power_Consumption
Run:
modprobe ledtrig-default-on
And:
echo default-on > /sys/class/leds/debug::sleep/trigger
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.
Currently it does not yet reliably reach any sleep modes.
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm
== Battery calibration ==
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called "Gas Gauge Operation" for how the battery calibration is done in a low level.
Here are described the steps necessary to calibrate your battery. This should help if you see "Battery not calibrated" message in the status applet.
* Fully charge Nokia N900. Don't detach the charger immediately, give it some time after you see "Fully charged" message (10 minutes should be enough).
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don't connect the device to a charger or a PC using the USB cable.
* When your Nokia N900 has battery depleted, it will alarm you with the "battery low" sound.
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it's fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.
* If you still see "Battery not calibrated" message, reboot the device.
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.
== Accessing MTD ==
List devices:
cat /proc/mtd
Mount:
apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle
== Overclocking (optional) ==
'''Overclocking is now available in -devel using cpufreq boost.'''
It uses 250-500-550-600-720-805MHz frequencies
To enable it, edit:
<code>/sys/devices/system/cpu/cpufreq/boost</code>
And replace 0 by 1.
It is possible to customise max/min/available frequencies editing files in:
<code>/sys/devices/system/cpu/cpu0/cpufreq/</code>
'''No other steps are needed and updates/upgrades work with boost mode.'''
Installing cpufrequtils is useful to change frequency governors.
Prefer "conservative" instead of "ondemand" governor.
"Performance" governor locks N900 at 805MHz.
As root
<code>cpufreq-set -c 0 -g conservative</code>
'''WARNING: some devices can't run at 805MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 805000 by 720000 in scaling_max_freq file and finally select conservative governor'''
== Overclocking - Old method for testing purpose ==
To be able to overclock two steps are needed:
1) From Fremantle: add new Maemo Leste menu item (run as root):
cat > /etc/bootmenu.d/30-maemo-leste-Overclock.item << "EOF" &&
ITEM_NAME="Maemo Leste Overclock"
ITEM_KERNEL="uImageX"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext2"
EOF
u-boot-update-bootmenu
2) From Maemo Leste (run as root):
<code>cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user</code>
<code>dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts</code>
(wait for a few seconds...)
<code>chmod +w /home/user/omap3-n900.dts</code>
(then the funny part...)
<code>nano /home/user/omap3-n900.dts</code>
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)
Find "opp-table" with <code>ctl+w</code> and Replace all content in "opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };"
New opp-table for example:
<pre>opp-table {
compatible = "operating-points-v2-ti-cpu";
syscon = < 0x05 >;
phandle = < 0x03 >;
opp1-250000000 {
opp-hz = < 0x00 0xee6b280 >;
opp-microvolt = < 0xee098 0xee098 0xee098 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp2-500000000 {
opp-hz = < 0x00 0x1dcd6500 >;
opp-microvolt = < 0x106738 0x106738 0x106738 >;
opp-supported-hw = < 0xffffffff 0x03 >;
opp-suspend;
};
opp3-600000000 {
opp-hz = < 0x00 0x23c34600 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp4-720000000 {
opp-hz = < 0x00 0x2aea5400 >;
opp-microvolt = < 0x124f80 0x124f80 0x124f80 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
opp5-850000000 {
opp-hz = < 0x00 0x32a9f880 >;
opp-microvolt = < 0x149970 0x149970 0x149970 >;
opp-supported-hw = < 0xffffffff 0x03 >;
};
};</pre>
Then <code>ctl+x</code> to save and close.
And still as root:
<code>rm /home/user/omap3-n900.dtb</code>
<code>dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb</code>
Check your kernel version:
<code>uname -r</code>
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30
In the next command, replace "vmlinuz-<version>" by yours (ie vmlinuz-6.1.30)
As root:
<code>cat /boot/vmlinuz-<version> /home/user/omap3-n900.dtb > /tmp/zImage_dtb</code>
<code>mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX</code>
That's it !
Now reboot and select "Maemo Leste Overclock in bootmenu".
('''WARNING with old method:''' always use stock "Maemo Leste" in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))
== Tips / Tweaks ==
=== SD Card and first boot===
To avoid overall slowness, SDXC U3 microSD card is a must. Class10 U1 cards are usually too slow to run Leste on N900 unfortunately, most probably because of their lower build quality.
'''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading.
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere).
Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes).
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.
Then reboot.
'''Note:''' it is recommended to dist-upgrade to -devel to enable more features by adding
<pre>deb https://maedevu.maemo.org/leste chimaera-devel main contrib non-free n900</pre>
in <pre>/etc/apt/sources.list</pre>
('''Warning:''' don't remove other sources in this file)
=== Gnome-tracker in $HOME ===
By default trackers are indexing the entire $HOME folder, causing severe slowdown.
To avoid this issue, the solution (until a proper fix) is to add a .nomedia file in /home/user folder:
<pre>touch /home/user/.nomedia</pre>
=== Deactivating apt-worker ===
Run:
<pre>gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647</pre>
=== Removing 250MHz CPU frequency (example) ===
Install cpufrequtils.
Replace 250000 by 500000 in <pre>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</pre>
=== More SWAP / SWAP activation (testing purpose) ===
('''Note: SWAP is already activated by default''')
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):
<pre>sudo swapon /dev/mmcblk1p3</pre> (editing /etc/fstab/ is not needed and done automatically on next reboot)
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:
<pre>sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576</pre>
(It takes some time...)
<pre>sudo chmod 600 /swapfile</pre>
<pre>sudo mkswap /swapfile</pre>
<pre>sudo swapon /swapfile</pre>
To make the change permanent open:
<pre>sudo nano /etc/fstab</pre>
And add this line:
<pre>/swapfile swap swap defaults 0 0</pre>
To check if the swap is active:
<pre>sudo swapon --show</pre>
=== Tweaking Transitions ===
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.
As root
<code>nano /usr/share/hildon-desktop/transitions.ini</code>
See Fremantle documentation for perfect setup.
'''Note: like Fremantle, blur effect can cause lags and slowness.''' It is possible to deactivate/modify it through the transitions.ini file:
<pre>[HOME]
radius = 1
radius_more = 2
</pre>
=== Web browsing ===
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-
<pre>sudo apt install links2</pre>
To use it in graphical mode, run in terminal:
<pre>links2 -g</pre> or press the hildon desktop icon.
Then press <code>Ctl + Shift + N</code> to disable Hildon composition -links2 performances will increase a lot-
Press <code>Ctl + Shift + N</code> if you want to enable Hildon composition again.
=== Video playing ===
Video playing is working fine using SMPLAYER:
- In Options / Preferences / General:
Media engine: Other: /user/bin/mplayer
- In Options / Preferences / Video:
Output driver: xv (0 - OMAP Textured Video)
Only unable Double buffering and Disable screensaver
- In Options / Preferences / Audio:
Output driver: pulse (or User defined)
Disable everything else
Channel by default: 2 (Stereo)
High speed playback: Auto
- In Options / Preferences / Performance:
Unable Allow frame drop
Hardware decoding: None
Prefer 360p - 480p max video format
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)
=== Voice Calls / SIP Calls ===
- Dist-upgrade to -devel (not working without)
Now SIP calls and SIP messages are working out of the box using Twinkle.
Voice calls are now working out of the box as well.
If sound is distorted, run:
<code>sudo chrt -a -f -p 99 $(pgrep pulseaudio)</code>
== Status table ==
{| class="wikitable"
! Feature
! Leste supported
! Notes
|-
| Kernel version || 6.6 LTS || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux
|-
| Serial || Yes || Requires special hardware
|-
| Charging || Yes ||
|-
| Wireless || Yes || Firmware is non-free
|-
| Ethernet || N/A ||
|-
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible
|-
| Keyboard || Yes ||
|-
| Screen || Yes ||
|-
| 3D Acceleration || Yes || closed PowerVR driver
|-
| Overclock || Yes || up to 805MHz (stable & supported), 850MHz works with some devices (not supported), Turbo mode works
|-
| Touchscreen || Yes || Resistive
|-
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection and FMTX
|-
| Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer.
|-
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/
|-
| 4G data || N/A || no hardware
|-
| SMS || Yes || Works with Sphone or ofono scripts. Works with Conversations in -devel.
|-
| Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone
|-
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP
|-
| Bluetooth || No || Driver needs some work
|-
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol
Install <code>v4l-utils</code> and set frequency using: <code>v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f <freq></code>
|-
| FM Receiver || No || Depends on working Bluetooth stack
|-
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900
|-
| Compass || N/A || No hardware
|-
| Gyro || N/A|| No hardware
|-
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'
|-
| Ambient Light Sensor || Yes ||
|-
| Vibration Motor || Yes ||
|-
| HDMI-out || N/A || No hardware
|-
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with <code>xrandr --output TV --mode 800x480 --same-as LCD</code>. Set PAL/NTSC with <code>xrandr --output TV --set SignalProperties PAL</code>, and scale with <code>xrandr --output TV --set TVScale 90</code>
|-
| GPS || Yes ||
|-
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)
|-
| Camera || No || Needs complex v4l work, no leste integration
|-
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode
|}
[[Category:Device]]
06490daaedecc4c44dda83b505ccf052e50cad65
Development
0
61
1706
1620
2024-08-04T11:21:36Z
Vaino
70
deb.debian.org does not have stretch anymore
wikitext
text/x-wiki
Maemo Leste development is split up in a few different places.
== Communication and organising ==
* Our https://maemo-leste.github.io website is where we post (news) updates, as well as on talk.maemo.org (see this subforum https://talk.maemo.org/forumdisplay.php?f=66 and this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192)
* There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker
* The day-to-day development and user chatter mostly takes place in the [[IRC channel]]
* We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]
* This wiki: for documenting the status of various long-running projects, status per device, etc.
== Task Summary ==
For current (semi) impactful tasks, see
[[Development/Tasks]]
== Codename ==
* Maemo Leste is currently based on Devuan Chimaera, which is based on Debian Bullseye.
== Guides ==
* [[Development/Porting Packages]]
* [[Development/Building Packages]]
* [[Development/Modified Software]]
* [[Development/Device Bringup]]
* https://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide
== Technical ==
All our git repositories can be found here: https://github.com/maemo-leste
=== Jenkins ===
To aid development and provide "continous integration" we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/
=== Developing on a device ===
All development software and tests end up in 'chimaera-devel' apt source. For enabling this edit '/etc/apt/sources.list' and add this line:
deb https://maedevu.maemo.org/leste chimaera-devel main contrib non-free droid4
The exact line might depend on your device; just copy the maemo chimaera line and change chimaera to chimaera-devel - for example, if you're not on a mapphone (droid) device, you probably don't want the droid4 component in the line.
Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a 'scratchbox' type VM)
The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]].
=== Building a Maemo Leste image ===
See https://leste.maemo.org/Image_Builder
=== List of Programs/Daemon specific to Maemo ===
https://leste.maemo.org/Development/Daemons
=== Crossbuilding ===
Multiarch is an ability present on modern Debian systems that allows you to build native packages for different architectures. This is nice because you can build packages for an ARM based phone using the full power of your x86 based PC/Mac/Notebook or a server.
Here we show how you can easily setup a multiarch environment and build a native package for Maemo Leste running on Nokia N900. We are going to make a container (chroot) for this job. It's because we don't want to pollute our main system.
# Make a container for our development system
DIR=/var/lib/container/stretch
sudo apt-get install qemu-user-static debootstrap systemd-container &&
sudo debootstrap --arch=armhf stretch $DIR http://archive.debian.org/debian &&
echo "strech_cross" | sudo tee $DIR/etc/debian_chroot &&
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR
# Setup build environment inside the container
cat >> ~/.bashrc << EOF &&
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
export CC=arm-linux-gnueabihf-gcc
export JOBS=$(grep processor /proc/cpuinfo | wc -l)
EOF
dpkg --add-architecture armhf &&
apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates &&
cat >> /etc/apt/sources.list << "EOF" &&
deb http://maedevu.maemo.org/leste ascii main contrib non-free n900
deb http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900
deb-src http://deb.debian.org/debian stretch main
deb-src http://maedevu.maemo.org/leste ascii main contrib non-free n900
deb-src http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900
EOF
wget --no-check-certificate https://maedevu.maemo.org/testing-key.asc &&
apt-key add testing-key.asc &&
rm -f testing-key.asc &&
rm -f /var/cache/apt/archives/*.deb &&
apt-get update &&
exec bash
# Build Xorg for Nokia N900
apt-get source xserver-xorg-core &&
cd xorg-server-1.19.2 &&
wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch &&
mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches &&
echo -e "# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch" >> debian/patches/series &&
apt-get -y build-dep -a armhf . &&
time dpkg-buildpackage -aarmhf -j$JOBS -b &&
echo OK || echo FAIL
To login the container later:
sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch
To remove the container:
sudo rm -fr /var/lib/container/stretch
=== Cross-distro solution for development inside an ARM/ARM64 chroot on a PC ===
It's possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps. This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64. This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro. This method can similarly be used with images (tarballs) for other devices.
1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]:
$ sudo apt-get install qemu-user-static binfmt-support
The installation should register ARM binaries for automatic execution via QEMU. You can verify this with '''update-binfmts''':
$ sudo update-binfmts --display qemu-arm
qemu-arm (enabled):
package = qemu-user-static
type = magic
offset = 0
magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00
mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff
interpreter = /usr/bin/qemu-arm-static
detector =
2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it:
$ mkdir leste-arm64
$ cd leste-arm64
$ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf -
3. From the same directory, configure the chroot with a few resources from your host system:
$ sudo mount -t proc proc proc
$ sudo mount -o bind /dev dev
$ sudo mount -o bind /dev/pts dev/pts
4. From the same directory, create a symlink for the mount table:
$ sudo ln -s /proc/mounts etc/mtab
5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user:
$ sudo LC_ALL=C chroot . /bin/su - user
You'll now be ready to use your Maemo Leste ARM64 development environment:
$ uname -m
aarch64
Once you have finished with it, you can exit and unmount the resources you previously mounted:
$ exit
$ sudo umount dev/pts dev proc
=== Localization ===
See [[Localization]]
=== TODO ===
* Discuss where people look to pick up issues (clear answer is the bugtracker, but still)
* How people can make changes and how to send them in
237a0d3d30c7de223344fc7ae22ab47999c36b72
File:Motorola Droid 3 Leste Chimera.jpg
6
243
1717
2024-09-17T19:56:49Z
GaryM0101
68
wikitext
text/x-wiki
Motorola Droid 3 Leste
360e9656ad3440b86b437ac1ac88273434488173
Motorola Droid 3
0
151
1718
1540
2024-09-17T20:13:13Z
GaryM0101
68
Added image and modified download link
wikitext
text/x-wiki
{{Infobox Device
|image=
[[File:Motorola Droid 3 Leste Chimera.jpg|thumb]]
|manufacturer=Motorola
|codename=Solana XT862 / XT860
|dimensions=todo
|release_date=todo
|soc=TI OMAP4430
|dram=512MB DDR2
|power=
|lcd=960x540 4"
|video=PowerVR SGX540
|audio=
|network=
|storage=16GB flash
|usb=
|camera=
|sensors=todo
|other=
|category=Supported
|sw_kernel=6.1.9
|sw_serial=Yes, [[#Serial Cable|special cable]]
|sw_charging=Yes
|sw_usb_slave=Yes
|sw_usb_host=Yes
|sw_touchscreen=Yes
|sw_keyboard=Yes
|sw_screen=Yes
|sw_hdmi=No
|sw_tv=
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)
|sw_vibration=Yes
|sw_audio=Yes
|sw_calls=No (needs modem work)
|sw_sms=No (needs modem work)
|sw_wifi=Yes
|sw_ethernet=
|sw_irda=
|sw_2g3gdata=
|sw_4g=No
|sw_bluetooth=todo
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers
|sw_fmrx=
|sw_nfc=
|sw_accelerometer=Yes
|sw_compass=Yes, no integration
|sw_gyro=
|sw_proximity=Yes
|sw_als=Yes
|sw_gps=No (needs modem work)
|sw_agps=No
|sw_frontcam=No
|sw_backcam=No
|sw_idlepower=
|sw_standbytime=
}}
'''This device is called "Motorola Milestone 3" outside of the US.'''
== Installation ==
Hardware requirements:
* Droid 3 with fully charged battery
* MicroUSB cable
* MicroSD card
Software requirements:
* Host Linux system
* Android Tools: fastboot adb
Download latest Chimera release from https://maedevu.maemo.org/images/droid3/
# Latest maemo-leste-1.0-armhf-droid3-20240908.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
# droid4-kexecboot.img
Download or clone https://github.com/MerlijnWajer/bionic-clown-boot/tree/solana (solana branch!)
Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device.
Now, flash the Maemo Leste image to your sdcard.
== Notes ==
IMPORTANT: Set the USB mode to "PC mode" instead of "mass storage mode" on your device before running install.sh
on bionic-clown-boot
Device is still heavy work in the progress. The following is known not to work:
* Brightness control (screen is always max brightness)
* Keyboard backlight
* Modem interrupts, it is visible on USB but other communication with it doesn't work
* pstore (needs figuring out what the reserved memory is on Android)
* See if we can use 512MB ram instead of 509MB (see dts)
* <s>3d shows some frame lag / misdrawing, so probably powervr clock needs adjusting</s> (seems solved on kernel 5.15)
* <s>touchscreen buttons do not work yet</s> (fixed on 5.15)
* keyboard layout in Leste is not faithful to the icons on the keyboard, but rather mostly mimic droid 4
Additionally, the device suffers from random hangs while in use, causing resets. When pstore works, we can hopefully figure this out. <s>(Haven't seen them on 5.15)</s> (Came back on kernel 6.x) It might be a power-management-related issue, or a GPU issue (last log line shows something about OMAP complaining about DRM), or something else. The emergency shell works just fine with no hangs at all.
Also, the device often comes network locked. [[User:Wizzup]] has access to Sigmakey software and can help remotely remove the network lock.
[[Category:Device]]
dddc8d7ad7058ab12384dca3d2620e3f7628b852
Leste FAQ
0
62
1719
1104
2024-09-19T21:12:41Z
Sicelo
5
fix typos; drop systemd vs openrc section since we are somewhat willing to support systemd in future
wikitext
text/x-wiki
{{Stub}}
=== What is Maemo Leste? ===
Maemo Leste is an operating system based on GNU/Linux that is currently in development. It is aimed at mobile devices with touch screens such as smartphones, tablets and PDAs.
It is built on top of '''[https://devuan.org/ Devuan]''', and thus indirectly based on [https://www.debian.org/ Debian]. Essentially, it is a modernised and liberated version of '''[https://en.wikipedia.org/wiki/Maemo#Maemo_5 Maemo 5/Fremantle]'''; the last version of the mobile Linux OS from Nokia that was released in 2009 for the [https://en.wikipedia.org/wiki/Nokia_N900 Nokia N900] internet tablet/smartphone. Unlike its predecessor which only ran on a single device, Maemo Leste runs on a variety of devices. It also uses a '''[[#What_is_mainline_Linux.3F|mainline Linux]]''' kernel.
In Maemo Leste, closed-source packages that originate from Fremantle have been reverse engineered, liberated, updated and rebuilt; whilst open-source Fremantle packages have been updated to newer libraries and APIs, including [https://en.wikipedia.org/wiki/Hildon Hildon], the mobile user interface from Fremantle.
Building on top of an actively developed Linux distribution makes Maemo Leste maintenance sustainable. Fremantle was built on top of Debian packages forked from several versions of Debian, leaving the onus on Nokia to maintain every single package. However Leste utilises Devuan's package repositories, meaning that much of the heavy lifting is already done by upstream; we only have to manage and maintain a limited set of packages. This also gives us the benefit of having access to over 20,000 packages from upstream immediately available for installation in Maemo Leste.
All in all, Maemo Leste aims to provide an unconstrained and free mobile Linux distribution for hackers, developers and even just casual users.
=== Why do we need another mobile operating system? ===
Today's smartphone industry is dominated by the duopoly of Apple and Google with their iOS and Android operating systems. This leaves those of us who value information privacy and software freedoms with virtually no options when it comes to choosing a smartphone. Some pretenders have tried to change this but have ultimately [[#How_about_other_popular_non-Android_mobile_Linux_distributions.3F|fallen short in some areas]]. Maemo Leste aims to put an end to this dire situation. We provide a ''true'' GNU/Linux experience which evolves along with the base Linux distribution from which it is built on top of. We hope that Maemo Leste will help to raise awareness of the [[#Why_is_it_important_to_run_mainline_Linux.3F|importance of running mainline Linux]] which may eventually lead to increased consumer demand for devices that are compatible with mainline Linux, leading to improved options when choosing a smartphone.
=== Why not add/extend new packages to Fremantle instead? ===
Fremantle is ancient, and quite a few packages are [https://wiki.maemo.org/Fremantle_closed_packages closed source] and also outdated.
Many are in dire need of a replacement, either for interoperability sake (browser, closed wifi stack, closed phone stack) or need a lot of updates to be even reasonably secure: ancient (vulnerable) browser, unsupported crypto libraries, ancient Linux kernel are just a few.
Beyond that, Fremantle was never truly "Debian" -- although it used a lot of the Debian ecosystem. We realise that we do not have the time to maintain all kinds of core packages, so it made a lot of sense to base Maemo Leste on a modern and community-run distribution. We can't run an entire distribution without a good base distribution like Debian.
Furthermore, adding lots of updated and new packages mixed together with the old Fremantle packages is likely to become a big hell. Old packages need an older glibc (even though it claims to be backwards compatible, it isn't always), other libraries might depend on other specific libraries). That will also make it very hard to keep track of what old and new packages are in place, we would still be stuck with many other outdated packages - permanently frozen kernel interface, and so forth. This only gets more complicated with the new C++ ABI with newer GCC, and so on. We'd also ideally have all packages be Position Independent Executables (PIE), further complicating mixing with Fremantle.
We went for a distribution based on Debian because it would provide a clean base; and Fremantle already used a large part of the Debian ecosystem. Right now it is very easy to figure out what packages Maemo Leste adds on top of Devuan/Debian, which also makes the life of developers (and even users) easier.
=== Does Maemo Leste use Halium? ===
No. Halium aims to build a common base for mobile GNU/Linux distributions. This is great idea in principle but their choice of components leaves a lot to be desired.
Halium uses kernels from Android. See [[#What.27s_wrong_with_Android_.28vendor.29_kernels.3F|below]] for a description of some of the problems of Android kernels. By embracing the use of Android kernels, Halium can provide working device ports fairly quickly but this may have a negative effect in the long run. A developer who has a fully working device running GNU/Linux with an Android kernel may be less inclined to help get that device running on mainline Linux, thus the reliance on Android continues. The shortage of mainline Linux kernel contributions from the developers of Halium and other libhybris-based Linux distributions is evident.
=== What is mainline Linux? ===
Mainline Linux is pure Linux, taken and built from Linus Torvalds' Git tree (kernel.org). It has an organic development model which provides new releases every two to three months and also less frequent long-term supported stable releases.
=== What's wrong with Android (vendor) kernels? ===
The Android Open Source Project (AOSP) leeches off Linux. Hundreds, if not thousands, of out-of-tree kernel forks are maintained by vendors with almost no effort to contribute back to mainline Linux. This not only hurts the Linux development ecosystem but we as users also suffer as a consequence of this. There are thousands of different Android devices on the market, all with kernels based on Linux; yet only a handful of those devices are able to run on mainline Linux, and most of those that do, have very limited hardware support. Linux kernels are [https://source.android.com/devices/architecture/kernel/android-common#branch-hierarchy forked up to five times by AOSP, before finally being forked once more by the device manufacturer]. This results in kernels that have diverged significantly from mainline. This means that it is likely not possible to install an up-to-date mainline kernel on any given Android device. Also, it often means that kernel updates are not timely, nor frequent. When the device manufacturer decides to stop supporting the device, no further kernel updates are provided. This allow the manufacturers of Android devices to practise [https://en.wikipedia.org/wiki/Planned_obsolescence planned obsolescence]. This practice is a huge contributor to our society's [https://en.wikipedia.org/wiki/Throw-away_society throw-away culture], forcing consumers to replace their devices every year or two and has a [https://www.fastcodesign.com/90165365/smartphones-are-wrecking-the-planet-faster-than-anyone-expected big impact on our planet]. The vast majority of users of Android devices are not even made aware when their kernel has reached end-of-life, leaving them vulnerable to known exploits.
=== Why is it important to run mainline Linux? ===
Using mainline Linux keeps us in touch with [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git cutting-edge kernel development], allows us to provide [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git normal stable releases] which helps to accelerate development, whilst also giving us the option of providing [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git long-term supported stable releases]. Mainline Linux does not suffer from any of the problems associated with Android kernels listed above. The first rule of Linux kernel development is [https://felipec.wordpress.com/2013/10/07/the-linux-way/ "don't break userspace"]. Regressions are not allowed and this ensures kernel-to-userspace API and ABI stability. By running mainline Linux, once a device is supported, we can be sure that it will continue to work and we will receive regular kernel updates for decades to come, just like running Linux on your PC. See also the official explanation on [https://www.kernel.org/doc/html/latest/process/1.Intro.html#the-importance-of-getting-code-into-the-mainline the importance of getting code into the mainline].
=== Does Maemo Leste run with pure mainline Linux? ===
The primary devices that we support can run with a pure mainline Linux kernel. However right now our images use mainline plus a few patches. As we are still in the early phases of development, our current priority is to ensure that our supported devices are as fully functional as they can possibly be, thus the additional patches help to achieve this. We continuously upstream our patches (for the kernel and other software) and our goal is to upstream the remaining ones to be able to switch to using a 100% mainline kernel on our devices.
=== Is Maemo Leste completely free? ===
Unfortunately not. There is still no smartphone available that is fully functional without the use of [https://en.wikipedia.org/wiki/Proprietary_device_driver binary blobs]. Our primary supported devices currently require closed firmware to be able to use Wi-Fi and Bluetooth, and the TI OMAP-based devices have integrated PowerVR video hardware which require closed user space drivers for video acceleration. It's an unfortunate state of affairs, however progress is being made, and the PinePhone is a great example of this as it can have video acceleration with the Lima driver which is 100% free software.
Our current goal is to provide full functionality for our supported devices, however there are plans to additionally provide a blob-free, libre version of Maemo Leste with missing functionality where blobs would be required.
=== How does Maemo Leste compare with postmarketOS? ===
postmarketOS is mobile GNU/Linux distribution which runs mainline Linux kernels and also supports Android kernels. We share several goals in common with postmarketOS, particularly the use of mainline Linux. This presents a great opportunity for collaboration. Both Maemo Leste and postmarketOS have great working relationship and have already benefited from each other's work.
=== How does Maemo Leste compare with PureOS? ===
Purism's PureOS is currently in development for the Librem 5 phone. Purism have stated their plans to upstream all work to parent projects. This naturally presents another opportunity for collaboration, especially with PureOS also being based on Debian. We would welcome any collaborations with Purism. Work on a Maemo Leste port for the Librem 5 phone is in progress ([https://github.com/Daniel-Abrecht/image-builder image-builder], [https://github.com/Daniel-Abrecht/arm-sdk arm-sdk]).
=== How about other popular non-Android mobile Linux distributions? ===
The majority of initiatives to create a mobile Linux distribution as an alternative to Android have often made questionable decisions on the components they have chosen to include in their distributions. Some of these distributions are built for profit which means they often do not have the best interests of the end-user at heart. This has resulted in the inclusion of closed source components where they could have been avoided.
One of the most popular alternatives is the worst offender. It includes a proprietary GUI and a proprietary application framework which means that apps developed for that platform will run only on that platform and nowhere else. Its base distribution, which is actually open source, deliberately uses unsupported/unmaintained GNU General Public License (GPL) version 2 licensed packages (even though they have long since been superseded by newer versions relicensed as GPL v3) for the purpose of [https://en.wikipedia.org/wiki/Tivoization Tivoisation]. This allows a vendor to use hardware restrictions to prevent users from running modified versions of the software on their hardware. This distribution has a counterpart distribution which is open source, however it is unfortunately also based on the same Tivoised base distribution.
Another popular alternative distribution decided that instead of working together with the community on a common display manager, Wayland, to replace X11, they would develop their own. In the process, they heavily criticised Wayland. Some of the criticism was unfounded, and even though other points may have been fair, Wayland could have been adapted to suit their needs. They since retracted that criticism, nevertheless they continue to work on their own display manager in preference of working with the greater community on Wayland.
Finally, the vast majority of alternative distributions have decided to go the route of using [[#What.27s_wrong_with_Android_.28vendor.29_kernels.3F|Android kernels]], which favours device compatibility and ease of device porting, at the expense of software freedoms.
=== Why is Maemo Leste based on Devuan rather than Debian? ===
Convenience for developers, and a little bit of politics (but this is not really noticeable in the project).
Maemo Fremantle uses the ''upstart'' init system. We initially chose Devuan because we figured Devuan might support upstart to some degree as well, so we would not have to deal with rewriting the init scripts (although we ended up rewriting them anyway as Maemo Leste now uses OpenRC). Another reason is that some people who initiated the project are either working on Devuan or are close with people who work on Devuan.
As you may know, the Devuan project focuses on providing a Debian alternative that can be used without systemd. Although Debian can be installed without systemd, Devuan provides a much more stable and tested system in this regard. Key system components such as PolicyKit, UPower and udisks2 have been known to be broken in Debian when it is used without systemd, whereas Devuan provides working replacements.
=== Can Maemo Leste work with a Debian/systemd base? ===
Several users and developers have expressed interest in using Maemo Leste with Debian and systemd. Proof-of-concept work was started to make this possible. We do not want to restrict the reach of Maemo Leste, therefore we welcome contributions for Debian/systemd compatibility and provide assistance with it. It is hoped that eventually we will be able to provide users with a choice of Devuan and Debian bases for Maemo Leste.
=== musl libc kicks arse. Can I use Maemo Leste with musl? ===
We love musl libc too. musl provides a lean, efficient and standards-compliant implementation of libc. What's not to like? Well unfortunately a lot of software built for Linux is glibc-dependent and is not standards-compliant. Rebuilding this software with musl can result in unexpected runtime behaviour or bugs. musl would be an extra hurdle that we don't really need right now. Still, it would be nice to one day see Maemo Leste rebuilt against musl and might make for an interesting future project, but until then, make sure you check out postmarketOS.
=== What devices does Maemo Leste work on? ===
Our current list of (semi) supported devices can be found here: [[:Category:Device]]
Maemo Leste could work on your device, and we'd like to link you to a porting guide here, but we don't have one yet.
Maemo Leste focuses on providing support for devices that can run on mainline Linux, with an emphasis on supporting mobile/cellular phones. There are a limited number of mobile phones supported by mainline Linux at present, all with varying degrees of hardware support. Although you may be disappointed by the lack of devices currently supported by Maemo Leste, we hope this will expand and we strongly believe that running on top of mainline Linux is the right way forward for building a mobile OS that respects software freedoms.
Maemo Leste has also been shown to run on the Gemini PDA which uses an Android kernel with libhybris. It should be possible to run Maemo Leste on other Android devices using this method, however this falls outside of the scope of this project and what we are trying to achieve. As such, only limited support would be provided.
=== Can I run an alternative desktop environment or window manager instead of Hildon? ===
The Devuan base of Maemo Leste provides a variety of desktop environments and window managers. There are some issues at the moment with running these whilst Hildon is installed, however it has been proven that it is possible to run them after making a few minor hacks. For now, if you choose to do this, limited support will be provided, if any. Don't expect any alternatives to provide the same level of device integration and optimisation that Hildon provides.
=== Are ARM packages Thumb-compiled? ===
Yes. This is very useful for N900 since it only has 256MB RAM. https://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb
=== How to translate Maemo Leste into my language? ===
We have our translation source files on Weblate, so anyone can contribute. See our [[Localization]] page for more information.
8a12f140adcdb63ba687b2abbea8607d005e216b
Status
0
64
1720
1533
2024-09-19T21:21:32Z
Sicelo
5
wikitext
text/x-wiki
{{Stub}}
For Device specific status pages, see See [[:Category:Device]]
The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device
{| class="wikitable"
! Feature
! Status
! Leste software
! Notes
|-
| Desktop environment || OK || hildon || hildon home, hildon desktop, .
|-
| [[Terminal]] || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] ||
|-
| [[Status/VirtualKeyboard|Virtual keyboard]] || WIP || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work fine for all devices, GTK2 only.
|-
| [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Works out of the box
|-
| Bluetooth || WIP || Just works if supported in the kernel, but no Maemo UI available to configure it, blueman-manager can be used ||
|-
| [[Status/Browser|Browser]] || WIP || jib || due to CPU/RAM, N900 uses Dillo
|-
| [[Status/Audio|Audio]] || OK || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); will need to import alsa-policy-enforcement, port OHM
|-
| Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste-upstream-forks/upower upower] ||
|-
| [[Status/USB Peripheral|USB Peripheral]] || OK || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv
|-
| LED control || OK || mce || Make sure the notifications are enabled in settings.
|-
| [[Status/Mobile Data|Mobile Data]] || OK || [https://github.com/maemo-leste/connui-cellular connui-cellular] [https://github.com/maemo-leste/libicd-network-ofono libicd-network-ofono] ||
|-
| [[Status/GPS|GPS]] || OK || gpsd, liblocation, location-daemon ||
|-
| [[Status/SMS|SMS]] || OK || sphone, conversations, ofono, telepathy-ring ? ||
|-
| [[Status/Phone Calls|Phone Calls]] || OK || sphone, ofono, telepathy-ring ? ||
|-
| [[Status/Application Manager|Application Manager]] || OK || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || Works fine, theme might look a bit off on higher resolution displays
|-
| [[Status/Media Player|Media Player]] || WIP || OMP (open media player):listening to radio streams and local music/video works || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue]
|-
| [[Status/PDF Viewer|PDF Viewer]] || Mostly works || osso-pdf-viewer || [https://github.com/maemo-leste/osso-pdf-viewer osso-pdf-viewer]
|-
| [[Status/Games|Games & Entertainment]] || OK || Works (available in [[Leste Extras]] || [https://github.com/maemo-leste/bugtracker/issues/18 sdl fullscreen] [https://github.com/maemo-leste/bugtracker/issues/238 game importing]
|-
| [[Status/Theming|Theming]] || OK || Works with themes (available in [[Leste Extras]] ||
|-
| [[Calendar|Calendar]] || OK || Qalendar UI, syncing works. (UI needs some scrolling work) ||
|-
| [[Qt|Qt]] || OK || Qt5 port mostly works || https://github.com/maemo-leste/qtstyleplugins/ + https://github.com/maemo-leste/qt-platform-maemo
|}
6ce668573bab371e03a27079b08079e006205754